diff --git a/.github/workflows/functional-test-cloud.yaml b/.github/workflows/functional-test-cloud.yaml index d33a850c1d..d741089c0b 100644 --- a/.github/workflows/functional-test-cloud.yaml +++ b/.github/workflows/functional-test-cloud.yaml @@ -90,6 +90,8 @@ env: TF_RECIPE_PRIVATE_GIT_SOURCE: "git::https://github.com/radius-project/terraform-private-modules//kubernetes-redis" # The number of failed tests to report. ISSUE_CREATE_THRESHOLD: 2 + # bicep-types ACR url for uploading Radius Bicep types + BICEP_TYPES_REGISTRY: 'biceptypes.azurecr.io' jobs: build: @@ -348,10 +350,49 @@ jobs: append: true message: | :x: Test recipe publishing failed + + publish-test-bicep-types: + name: Publish Radius bicep types to ACR + runs-on: ubuntu-latest + steps: + - name: Check out code + uses: actions/checkout@v4 + - name: Parse release version and set environment variables + run: python ./.github/scripts/get_release_version.py + - name: Set up Go ${{ env.GOVER }} + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GOVER }} + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: '18' + - name: Generate Bicep extensibility types from OpenAPI specs + run: | + make generate-bicep-types VERSION=${{ env.REL_VERSION == 'edge' && 'latest' || env.REL_VERSION }} + - name: Upload Radius Bicep types artifacts + uses: actions/upload-artifact@v4 + with: + name: radius-bicep-types + path: ./hack/bicep-types-radius/generated + if-no-files-found: error + - name: 'Login via Azure CLI' + uses: azure/login@v1 + with: + creds: ${{ secrets.BICEP_TYPES_AZURE_CREDENTIALS }} + - name: Setup and verify bicep CLI + run: | + curl -Lo bicep https://github.com/Azure/bicep/releases/latest/download/bicep-linux-x64 + chmod +x ./bicep + sudo mv ./bicep /usr/local/bin/bicep + bicep --version + - name: Publish bicep types + run: | + bicep publish-extension ./hack/bicep-types-radius/generated/index.json --target br:${{ env.BICEP_TYPES_REGISTRY }}/test/radius:${{ env.REL_VERSION == 'edge' && 'latest' || env.REL_VERSION }} --force tests: name: Run ${{ matrix.name }} functional tests - needs: build + needs: [build, publish-test-bicep-types] if: github.event_name == 'repository_dispatch' || (github.event_name == 'schedule' && github.repository == 'radius-project/radius') || github.event_name == 'workflow_run' strategy: fail-fast: true @@ -593,7 +634,26 @@ jobs: - name: Publish Terraform test recipes run: | make publish-test-terraform-recipes - + - name: Generate test bicepconfig.json + run: | + if [[ "${{ env.REL_VERSION }}" == "edge" ]]; then + RADIUS_VERSION="latest" + else + RADIUS_VERSION="${{ env.REL_VERSION }}" + fi + cat < ./test/bicepconfig.json + { + "experimentalFeaturesEnabled": { + "extensibility": true, + "extensionRegistry": true, + "dynamicTypeLoading": true + }, + "extensions": { + "radius": "br:${{ env.BICEP_TYPES_REGISTRY }}/test/radius:$RADIUS_VERSION", + "aws": "br:${{ env.BICEP_TYPES_REGISTRY }}/aws:latest" + } + } + EOF - name: Run functional tests run: | # Ensure rad cli is in path before running tests. diff --git a/.github/workflows/functional-test-noncloud.yaml b/.github/workflows/functional-test-noncloud.yaml index 2fd8e98e73..d93901e7f4 100644 --- a/.github/workflows/functional-test-noncloud.yaml +++ b/.github/workflows/functional-test-noncloud.yaml @@ -80,6 +80,8 @@ env: LOCAL_REGISTRY_SERVER: "localhost" # Local Docker registry port LOCAL_REGISTRY_PORT: "5000" + # bicep-types ACR url for uploading Radius Bicep types + BICEP_TYPES_REGISTRY: 'biceptypes.azurecr.io' jobs: build: @@ -126,7 +128,7 @@ jobs: echo "REL_VERSION=pr-${UNIQUE_ID}" >> $GITHUB_OUTPUT echo "DE_IMAGE=${{ env.DE_IMAGE }}" >> $GITHUB_OUTPUT echo "DE_TAG=${{ env.DE_TAG }}" >> $GITHUB_OUTPUT - + tests: name: Run ${{ matrix.name }} functional tests needs: build @@ -205,6 +207,25 @@ jobs: restore-keys: | ${{ runner.os }}-go- + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: '18' + + - name: Parse release version and set environment variables + run: python ./.github/scripts/get_release_version.py + + - name: Generate Bicep extensibility types from OpenAPI specs + run: | + make generate-bicep-types VERSION=${{ env.REL_VERSION == 'edge' && 'latest' || env.REL_VERSION }} + + - name: Upload Radius Bicep types artifacts + uses: actions/upload-artifact@v4 + with: + name: radius-bicep-types + path: ./hack/bicep-types-radius/generated + if-no-files-found: error + - name: Create a secure local registry id: create-local-registry uses: ./.github/actions/create-local-registry @@ -310,7 +331,31 @@ jobs: BICEP_RECIPE_TAG_VERSION: ${{ env.REL_VERSION }} TEMP_CERT_DIR: ${{ steps.create-local-registry.outputs.temp-cert-dir }} SSL_CERT_FILE: ${{ steps.create-local-registry.outputs.temp-cert-dir }}/certs/${{ env.LOCAL_REGISTRY_SERVER }}/client.crt + + - name: Publish bicep types + run: | + ./.rad/bin/rad-bicep publish-extension ./hack/bicep-types-radius/generated/index.json --target br:${{ env.LOCAL_REGISTRY_SERVER }}:${{ env.LOCAL_REGISTRY_PORT }}/radius:${{ env.REL_VERSION == 'edge' && 'latest' || env.REL_VERSION }} --force + - name: Generate test bicepconfig.json + run: | + if [[ "${{ env.REL_VERSION }}" == "edge" ]]; then + RADIUS_VERSION="latest" + else + RADIUS_VERSION="${{ env.REL_VERSION }}" + fi + cat < ./test/bicepconfig.json + { + "experimentalFeaturesEnabled": { + "extensibility": true, + "extensionRegistry": true, + "dynamicTypeLoading": true + }, + "extensions": { + "radius": "br:${{ env.LOCAL_REGISTRY_SERVER }}:${{ env.LOCAL_REGISTRY_PORT }}/radius:$RADIUS_VERSION", + "aws": "br:${{ env.BICEP_TYPES_REGISTRY }}/aws:latest" + } + } + EOF - name: Run functional tests run: | # Ensure rad cli is in path before running tests. diff --git a/README.md b/README.md index 3818068cae..95e247604e 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,6 @@ In addition, we have the below repositories. | [Samples](https://github.com/radius-project/samples) | This repository contains the source code for quickstarts, reference apps, and tutorials for Radius. | [Recipes](https://github.com/radius-project/recipes) | This repo contains commonly used Recipe templates for Radius Environments. | [Website](https://github.com/radius-project/website) | This repository contains the source code for the Radius website. -| [Bicep](https://github.com/radius-project/bicep) | This repository contains source code for Bicep, which is a DSL for deploying cloud resources types. | [AWS Bicep Types](https://github.com/radius-project/bicep-types-aws) | This repository contains the tooling for Bicep support for AWS resource types. diff --git a/build/validate-bicep.sh b/build/validate-bicep.sh index 6fe122f18d..c003525606 100755 --- a/build/validate-bicep.sh +++ b/build/validate-bicep.sh @@ -30,7 +30,7 @@ do exec 3>&- fi - if [[ ! $EXITCODE -eq 0 || (! -z $STDERR && ! $STDERR == $WARNING_MSG* ) ]] + if [[ ! $EXITCODE -eq 0 || (! -z $STDERR && ! $STDERR == $WARNING_MSG* && ! $STDERR == *"Error"* ) ]] then echo $STDERR FAILURES+=$F diff --git a/docs/contributing/contributing-code/contributing-code-schema-changes/README.md b/docs/contributing/contributing-code/contributing-code-schema-changes/README.md index 836b47c518..d3cef90199 100644 --- a/docs/contributing/contributing-code/contributing-code-schema-changes/README.md +++ b/docs/contributing/contributing-code/contributing-code-schema-changes/README.md @@ -35,9 +35,7 @@ In order to update or create a new schema follow these steps: 1. Add any necessary changes to the Radius resource provider to support the newly added types. 1. Add any necessary tests, as needed. -1. Open a pull request in the Radius repo. - -Creating a pull request in the Radius repo that contains application model changes triggers an automated pull request in bicep repo with the bicep type changes. You will merge this in step 3. +1. Open a pull request in the Radius repo. ## Step 2: Update docs and samples @@ -45,9 +43,52 @@ Visit the [docs](https://github.com/radius-project/docs/) and [samples](https:// ## Step 3: Merge pull requests in order -⚠️ Make sure you have PRs open and ready to merge within the radius, bicep, docs, and samples repositories. Do not proceed until all the PRs are ready and approved. +⚠️ Make sure you have PRs open and ready to merge within the radius, docs, and samples repositories. Do not proceed until all the PRs are ready and approved. + +1. **Samples Repository**: Merging the PR in samples repo may not be straightforward, as we currently have a cyclic dependency between samples and radius repositories (_i.e "Test Quickstarts" task in samples pipeline run would fail as it runs on the main branch of Radius which doesn't have the latest changes as Radius PR is blocked on the samples PR for bicep files update._) You need to have a repo admin force merge the samples PR. +2. **Radius Repository**: After the PR from the samples repositories are merged, re-run the checks to make sure there are no failures to merge the Radius PR. +3. **Docs Repository**: Rerun any failed checks and merge the PR from docs repo with updated Bicep files changes. + +# Testing schema changes locally + +If you would like to test that your schema changes are compilable in a Bicep template, you can do so by publishing them to an OCI registry using the [Bicep CLI](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/). + +## Step 1: Download the Bicep CLI + +1. Follow the steps in the Bicep [documentation](https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/install) to download Bicep + +## Step 2: Create an OCI compliant registry + +1. Create an OCI compliant registry of your choice. Keep the registry endpoint handy for the next steps. + +## Step 3: Upload the new schema types to an OCI registry +1. Run `make generate` to generate the OpenAPI spec and API clients: -1. **Bicep Repository**: Begin by merging the bicep repo PR. This will update the Bicep types which will allow the other PRs to properly build and be merged. -2. **Docs Repository**: Rerun any failed checks and merge the PR from docs repo with updated Bicep files changes. -3. **Samples Repository**: Merging the PR in samples repo may not be straightforward, as we currently have a cyclic dependency between samples and radius repositories (_i.e "Test Quickstarts" task in samples pipeline run would fail as it runs on the main branch of Radius which doesn't have the latest changes as Radius PR is blocked on the samples PR for bicep files update._) You need to have a repo admin force merge the samples PR. -4. **Radius Repository**: After the PRs from the bicep, docs and samples repositories are merged, re-run the checks to make sure there are no failures to merge the Radius PR. + ```bash + make generate + ``` + +1. `cd` into the `hack/bicep-types-radius/generated` folder +1. Run `bicep publish-provider --target ` to upload the schema changes to your OCI registry. The file uploaded will be the `index.json` file as it contains all references to the types schema. + + ```bash + bicep publish-extension index.json --target + ``` + +## Step 4: Update the `bicepconfig.json` to use your newly published types + +1. Update the `bicepconfig.json` file in the root folder to reference your new published types. + ```json + { + "experimentalFeaturesEnabled": { + "extensibility": true, + "extensionRegistry": true, + "dynamicTypeLoading": true + }, + "extensions": { + "radius": "br:", + "aws": "br:" + } + } + ``` +1. Once Bicep restores the new extensions, you should be able to use the new schema changes in your Bicep templates. \ No newline at end of file diff --git a/docs/contributing/contributing-code/contributing-code-tests/running-functional-tests.md b/docs/contributing/contributing-code/contributing-code-tests/running-functional-tests.md index 80143faa6a..b730e90062 100644 --- a/docs/contributing/contributing-code/contributing-code-tests/running-functional-tests.md +++ b/docs/contributing/contributing-code/contributing-code-tests/running-functional-tests.md @@ -5,7 +5,7 @@ You can find the functional tests under `./test/functional`. A functional test ( These tests verify whether: - That Radius Environment can be created successfully. -- That Bicep templates of sample applications ca be deployed to the Radius Environment. +- That Bicep templates of sample applications can be deployed to the Radius Environment. ## Running via GitHub workflow diff --git a/docs/contributing/contributing-releases/README.md b/docs/contributing/contributing-releases/README.md index 53e1d240a7..df63872945 100644 --- a/docs/contributing/contributing-releases/README.md +++ b/docs/contributing/contributing-releases/README.md @@ -15,7 +15,6 @@ Each release belongs to a *channel* named `.`. Releases will only interact with assets from their channel. For example, the `0.1` `rad` CLI will: -- Download `rad-bicep` from the `0.1` channel - Create an environment using the `0.1` version of the RP and environment setup script > ⚠️ Compatibility ⚠️ diff --git a/hack/bicep-types-radius/generated/applications/applications.core/2023-10-01-preview/types.json b/hack/bicep-types-radius/generated/applications/applications.core/2023-10-01-preview/types.json index 4b57396355..68acb76ad3 100644 --- a/hack/bicep-types-radius/generated/applications/applications.core/2023-10-01-preview/types.json +++ b/hack/bicep-types-radius/generated/applications/applications.core/2023-10-01-preview/types.json @@ -1572,7 +1572,7 @@ }, "tags": { "type": { - "$ref": "#/153" + "$ref": "#/156" }, "flags": 0, "description": "Resource tags." @@ -1641,7 +1641,7 @@ }, "extensions": { "type": { - "$ref": "#/152" + "$ref": "#/155" }, "flags": 0, "description": "The environment extension." @@ -1854,10 +1854,17 @@ }, "env": { "type": { - "$ref": "#/151" + "$ref": "#/153" }, "flags": 0, "description": "The environment variables injected during Terraform Recipe execution for the recipes in the environment." + }, + "envSecrets": { + "type": { + "$ref": "#/154" + }, + "flags": 0, + "description": "Environment variables containing sensitive information can be stored as secrets. The secrets are stored in Applications.Core/SecretStores resource." } } }, @@ -1874,7 +1881,7 @@ }, "providers": { "type": { - "$ref": "#/150" + "$ref": "#/152" }, "flags": 0, "description": "Configuration for Terraform Recipe Providers. Controls how Terraform interacts with cloud providers, SaaS providers, and other APIs. For more information, please see: https://developer.hashicorp.com/terraform/language/providers/configuration." @@ -1931,11 +1938,47 @@ { "$type": "ObjectType", "name": "ProviderConfigProperties", - "properties": {}, + "properties": { + "secrets": { + "type": { + "$ref": "#/150" + }, + "flags": 0, + "description": "Sensitive data in provider configuration can be stored as secrets. The secrets are stored in Applications.Core/SecretStores resource." + } + }, "additionalProperties": { "$ref": "#/116" } }, + { + "$type": "ObjectType", + "name": "SecretReference", + "properties": { + "source": { + "type": { + "$ref": "#/0" + }, + "flags": 1, + "description": "The ID of an Applications.Core/SecretStore resource containing sensitive data required for recipe execution." + }, + "key": { + "type": { + "$ref": "#/0" + }, + "flags": 1, + "description": "The key for the secret in the secret store." + } + } + }, + { + "$type": "ObjectType", + "name": "ProviderConfigPropertiesSecrets", + "properties": {}, + "additionalProperties": { + "$ref": "#/149" + } + }, { "$type": "ArrayType", "itemType": { @@ -1947,7 +1990,7 @@ "name": "TerraformConfigPropertiesProviders", "properties": {}, "additionalProperties": { - "$ref": "#/149" + "$ref": "#/151" } }, { @@ -1958,6 +2001,14 @@ "$ref": "#/0" } }, + { + "$type": "ObjectType", + "name": "RecipeConfigPropertiesEnvSecrets", + "properties": {}, + "additionalProperties": { + "$ref": "#/149" + } + }, { "$type": "ArrayType", "itemType": { @@ -2010,28 +2061,28 @@ }, "type": { "type": { - "$ref": "#/155" + "$ref": "#/158" }, "flags": 10, "description": "The resource type" }, "apiVersion": { "type": { - "$ref": "#/156" + "$ref": "#/159" }, "flags": 10, "description": "The resource api version" }, "properties": { "type": { - "$ref": "#/158" + "$ref": "#/161" }, "flags": 1, "description": "ExtenderResource portable resource properties" }, "tags": { "type": { - "$ref": "#/171" + "$ref": "#/174" }, "flags": 0, "description": "Resource tags." @@ -2072,7 +2123,7 @@ }, "provisioningState": { "type": { - "$ref": "#/166" + "$ref": "#/169" }, "flags": 2, "description": "Provisioning state of the resource at the time the operation was called" @@ -2093,14 +2144,14 @@ }, "recipe": { "type": { - "$ref": "#/167" + "$ref": "#/170" }, "flags": 0, "description": "The recipe used to automatically deploy underlying infrastructure for a portable resource" }, "resourceProvisioning": { "type": { - "$ref": "#/170" + "$ref": "#/173" }, "flags": 0, "description": "Specifies how the underlying service/resource is provisioned and managed. Available values are 'recipe', where Radius manages the lifecycle of the resource through a Recipe, and 'manual', where a user manages the resource and provides the values." @@ -2142,25 +2193,25 @@ "$type": "UnionType", "elements": [ { - "$ref": "#/159" + "$ref": "#/162" }, { - "$ref": "#/160" + "$ref": "#/163" }, { - "$ref": "#/161" + "$ref": "#/164" }, { - "$ref": "#/162" + "$ref": "#/165" }, { - "$ref": "#/163" + "$ref": "#/166" }, { - "$ref": "#/164" + "$ref": "#/167" }, { - "$ref": "#/165" + "$ref": "#/168" } ] }, @@ -2196,10 +2247,10 @@ "$type": "UnionType", "elements": [ { - "$ref": "#/168" + "$ref": "#/171" }, { - "$ref": "#/169" + "$ref": "#/172" } ] }, @@ -2223,13 +2274,13 @@ "name": "Applications.Core/extenders@2023-10-01-preview", "scopeType": 0, "body": { - "$ref": "#/157" + "$ref": "#/160" }, "flags": 0, "functions": { "listSecrets": { "type": { - "$ref": "#/172" + "$ref": "#/175" }, "description": "listSecrets" } @@ -2263,28 +2314,28 @@ }, "type": { "type": { - "$ref": "#/174" + "$ref": "#/177" }, "flags": 10, "description": "The resource type" }, "apiVersion": { "type": { - "$ref": "#/175" + "$ref": "#/178" }, "flags": 10, "description": "The resource api version" }, "properties": { "type": { - "$ref": "#/177" + "$ref": "#/180" }, "flags": 1, "description": "Gateway properties" }, "tags": { "type": { - "$ref": "#/193" + "$ref": "#/196" }, "flags": 0, "description": "Resource tags." @@ -2325,7 +2376,7 @@ }, "provisioningState": { "type": { - "$ref": "#/185" + "$ref": "#/188" }, "flags": 2, "description": "Provisioning state of the resource at the time the operation was called" @@ -2346,21 +2397,21 @@ }, "hostname": { "type": { - "$ref": "#/186" + "$ref": "#/189" }, "flags": 0, "description": "Declare hostname information for the Gateway. Leaving the hostname empty auto-assigns one: mygateway.myapp.PUBLICHOSTNAMEORIP.nip.io." }, "routes": { "type": { - "$ref": "#/188" + "$ref": "#/191" }, "flags": 1, "description": "Routes attached to this Gateway" }, "tls": { "type": { - "$ref": "#/189" + "$ref": "#/192" }, "flags": 0, "description": "TLS configuration definition for Gateway resource." @@ -2406,25 +2457,25 @@ "$type": "UnionType", "elements": [ { - "$ref": "#/178" + "$ref": "#/181" }, { - "$ref": "#/179" + "$ref": "#/182" }, { - "$ref": "#/180" + "$ref": "#/183" }, { - "$ref": "#/181" + "$ref": "#/184" }, { - "$ref": "#/182" + "$ref": "#/185" }, { - "$ref": "#/183" + "$ref": "#/186" }, { - "$ref": "#/184" + "$ref": "#/187" } ] }, @@ -2485,7 +2536,7 @@ { "$type": "ArrayType", "itemType": { - "$ref": "#/187" + "$ref": "#/190" } }, { @@ -2501,7 +2552,7 @@ }, "minimumProtocolVersion": { "type": { - "$ref": "#/192" + "$ref": "#/195" }, "flags": 0, "description": "Tls Minimum versions for Gateway resource." @@ -2527,10 +2578,10 @@ "$type": "UnionType", "elements": [ { - "$ref": "#/190" + "$ref": "#/193" }, { - "$ref": "#/191" + "$ref": "#/194" } ] }, @@ -2547,7 +2598,7 @@ "name": "Applications.Core/gateways@2023-10-01-preview", "scopeType": 0, "body": { - "$ref": "#/176" + "$ref": "#/179" }, "flags": 0, "functions": {} @@ -2580,28 +2631,28 @@ }, "type": { "type": { - "$ref": "#/195" + "$ref": "#/198" }, "flags": 10, "description": "The resource type" }, "apiVersion": { "type": { - "$ref": "#/196" + "$ref": "#/199" }, "flags": 10, "description": "The resource api version" }, "properties": { "type": { - "$ref": "#/198" + "$ref": "#/201" }, "flags": 1, "description": "The properties of SecretStore" }, "tags": { "type": { - "$ref": "#/216" + "$ref": "#/219" }, "flags": 0, "description": "Resource tags." @@ -2642,7 +2693,7 @@ }, "provisioningState": { "type": { - "$ref": "#/206" + "$ref": "#/209" }, "flags": 2, "description": "Provisioning state of the resource at the time the operation was called" @@ -2656,14 +2707,14 @@ }, "type": { "type": { - "$ref": "#/209" + "$ref": "#/212" }, "flags": 0, "description": "The type of SecretStore data" }, "data": { "type": { - "$ref": "#/215" + "$ref": "#/218" }, "flags": 1, "description": "An object to represent key-value type secrets" @@ -2709,25 +2760,25 @@ "$type": "UnionType", "elements": [ { - "$ref": "#/199" + "$ref": "#/202" }, { - "$ref": "#/200" + "$ref": "#/203" }, { - "$ref": "#/201" + "$ref": "#/204" }, { - "$ref": "#/202" + "$ref": "#/205" }, { - "$ref": "#/203" + "$ref": "#/206" }, { - "$ref": "#/204" + "$ref": "#/207" }, { - "$ref": "#/205" + "$ref": "#/208" } ] }, @@ -2743,10 +2794,10 @@ "$type": "UnionType", "elements": [ { - "$ref": "#/207" + "$ref": "#/210" }, { - "$ref": "#/208" + "$ref": "#/211" } ] }, @@ -2756,7 +2807,7 @@ "properties": { "encoding": { "type": { - "$ref": "#/213" + "$ref": "#/216" }, "flags": 0, "description": "The type of SecretValue Encoding" @@ -2770,7 +2821,7 @@ }, "valueFrom": { "type": { - "$ref": "#/214" + "$ref": "#/217" }, "flags": 0, "description": "The Secret value source properties" @@ -2789,10 +2840,10 @@ "$type": "UnionType", "elements": [ { - "$ref": "#/211" + "$ref": "#/214" }, { - "$ref": "#/212" + "$ref": "#/215" } ] }, @@ -2821,7 +2872,7 @@ "name": "SecretStorePropertiesData", "properties": {}, "additionalProperties": { - "$ref": "#/210" + "$ref": "#/213" } }, { @@ -2838,14 +2889,14 @@ "properties": { "type": { "type": { - "$ref": "#/220" + "$ref": "#/223" }, "flags": 2, "description": "The type of SecretStore data" }, "data": { "type": { - "$ref": "#/221" + "$ref": "#/224" }, "flags": 2, "description": "An object to represent key-value type secrets" @@ -2864,10 +2915,10 @@ "$type": "UnionType", "elements": [ { - "$ref": "#/218" + "$ref": "#/221" }, { - "$ref": "#/219" + "$ref": "#/222" } ] }, @@ -2876,14 +2927,14 @@ "name": "SecretStoreListSecretsResultData", "properties": {}, "additionalProperties": { - "$ref": "#/210" + "$ref": "#/213" } }, { "$type": "FunctionType", "parameters": [], "output": { - "$ref": "#/217" + "$ref": "#/220" } }, { @@ -2891,13 +2942,13 @@ "name": "Applications.Core/secretStores@2023-10-01-preview", "scopeType": 0, "body": { - "$ref": "#/197" + "$ref": "#/200" }, "flags": 0, "functions": { "listSecrets": { "type": { - "$ref": "#/222" + "$ref": "#/225" }, "description": "listSecrets" } @@ -2931,28 +2982,28 @@ }, "type": { "type": { - "$ref": "#/224" + "$ref": "#/227" }, "flags": 10, "description": "The resource type" }, "apiVersion": { "type": { - "$ref": "#/225" + "$ref": "#/228" }, "flags": 10, "description": "The resource api version" }, "properties": { "type": { - "$ref": "#/227" + "$ref": "#/230" }, "flags": 1, "description": "Volume properties" }, "tags": { "type": { - "$ref": "#/259" + "$ref": "#/262" }, "flags": 0, "description": "Resource tags." @@ -2994,7 +3045,7 @@ }, "provisioningState": { "type": { - "$ref": "#/235" + "$ref": "#/238" }, "flags": 2, "description": "Provisioning state of the resource at the time the operation was called" @@ -3009,7 +3060,7 @@ }, "elements": { "azure.com.keyvault": { - "$ref": "#/236" + "$ref": "#/239" } } }, @@ -3045,25 +3096,25 @@ "$type": "UnionType", "elements": [ { - "$ref": "#/228" + "$ref": "#/231" }, { - "$ref": "#/229" + "$ref": "#/232" }, { - "$ref": "#/230" + "$ref": "#/233" }, { - "$ref": "#/231" + "$ref": "#/234" }, { - "$ref": "#/232" + "$ref": "#/235" }, { - "$ref": "#/233" + "$ref": "#/236" }, { - "$ref": "#/234" + "$ref": "#/237" } ] }, @@ -3073,14 +3124,14 @@ "properties": { "certificates": { "type": { - "$ref": "#/249" + "$ref": "#/252" }, "flags": 0, "description": "The KeyVault certificates that this volume exposes" }, "keys": { "type": { - "$ref": "#/251" + "$ref": "#/254" }, "flags": 0, "description": "The KeyVault keys that this volume exposes" @@ -3094,14 +3145,14 @@ }, "secrets": { "type": { - "$ref": "#/257" + "$ref": "#/260" }, "flags": 0, "description": "The KeyVault secrets that this volume exposes" }, "kind": { "type": { - "$ref": "#/258" + "$ref": "#/261" }, "flags": 1, "description": "Discriminator property for VolumeProperties." @@ -3121,14 +3172,14 @@ }, "encoding": { "type": { - "$ref": "#/241" + "$ref": "#/244" }, "flags": 0, "description": "Represents secret encodings" }, "format": { "type": { - "$ref": "#/244" + "$ref": "#/247" }, "flags": 0, "description": "Represents certificate formats" @@ -3142,7 +3193,7 @@ }, "certType": { "type": { - "$ref": "#/248" + "$ref": "#/251" }, "flags": 0, "description": "Represents certificate types" @@ -3172,13 +3223,13 @@ "$type": "UnionType", "elements": [ { - "$ref": "#/238" + "$ref": "#/241" }, { - "$ref": "#/239" + "$ref": "#/242" }, { - "$ref": "#/240" + "$ref": "#/243" } ] }, @@ -3194,10 +3245,10 @@ "$type": "UnionType", "elements": [ { - "$ref": "#/242" + "$ref": "#/245" }, { - "$ref": "#/243" + "$ref": "#/246" } ] }, @@ -3217,13 +3268,13 @@ "$type": "UnionType", "elements": [ { - "$ref": "#/245" + "$ref": "#/248" }, { - "$ref": "#/246" + "$ref": "#/249" }, { - "$ref": "#/247" + "$ref": "#/250" } ] }, @@ -3232,7 +3283,7 @@ "name": "AzureKeyVaultVolumePropertiesCertificates", "properties": {}, "additionalProperties": { - "$ref": "#/237" + "$ref": "#/240" } }, { @@ -3267,7 +3318,7 @@ "name": "AzureKeyVaultVolumePropertiesKeys", "properties": {}, "additionalProperties": { - "$ref": "#/250" + "$ref": "#/253" } }, { @@ -3283,7 +3334,7 @@ }, "encoding": { "type": { - "$ref": "#/256" + "$ref": "#/259" }, "flags": 0, "description": "Represents secret encodings" @@ -3320,13 +3371,13 @@ "$type": "UnionType", "elements": [ { - "$ref": "#/253" + "$ref": "#/256" }, { - "$ref": "#/254" + "$ref": "#/257" }, { - "$ref": "#/255" + "$ref": "#/258" } ] }, @@ -3335,7 +3386,7 @@ "name": "AzureKeyVaultVolumePropertiesSecrets", "properties": {}, "additionalProperties": { - "$ref": "#/252" + "$ref": "#/255" } }, { @@ -3355,7 +3406,7 @@ "name": "Applications.Core/volumes@2023-10-01-preview", "scopeType": 0, "body": { - "$ref": "#/226" + "$ref": "#/229" }, "flags": 0, "functions": {} diff --git a/hack/bicep-types-radius/generated/index.json b/hack/bicep-types-radius/generated/index.json index 9d872bf378..9e9032ebcf 100644 --- a/hack/bicep-types-radius/generated/index.json +++ b/hack/bicep-types-radius/generated/index.json @@ -7,19 +7,19 @@ "$ref": "applications/applications.core/2023-10-01-preview/types.json#/119" }, "Applications.Core/environments@2023-10-01-preview": { - "$ref": "applications/applications.core/2023-10-01-preview/types.json#/154" + "$ref": "applications/applications.core/2023-10-01-preview/types.json#/157" }, "Applications.Core/extenders@2023-10-01-preview": { - "$ref": "applications/applications.core/2023-10-01-preview/types.json#/173" + "$ref": "applications/applications.core/2023-10-01-preview/types.json#/176" }, "Applications.Core/gateways@2023-10-01-preview": { - "$ref": "applications/applications.core/2023-10-01-preview/types.json#/194" + "$ref": "applications/applications.core/2023-10-01-preview/types.json#/197" }, "Applications.Core/secretStores@2023-10-01-preview": { - "$ref": "applications/applications.core/2023-10-01-preview/types.json#/223" + "$ref": "applications/applications.core/2023-10-01-preview/types.json#/226" }, "Applications.Core/volumes@2023-10-01-preview": { - "$ref": "applications/applications.core/2023-10-01-preview/types.json#/260" + "$ref": "applications/applications.core/2023-10-01-preview/types.json#/263" }, "Applications.Dapr/pubSubBrokers@2023-10-01-preview": { "$ref": "applications/applications.dapr/2023-10-01-preview/types.json#/44"