diff --git a/.gitattributes b/.gitattributes index 007cfcf0e..e7c8739d4 100644 --- a/.gitattributes +++ b/.gitattributes @@ -120,6 +120,9 @@ /.github/workflows/release-paloaltonetworks-cloudngfw-ngfw.yml linguist-generated /.github/workflows/release-paloaltonetworks-cloudngfw-rulestack.yml linguist-generated /.github/workflows/release-poc-azure-blobstorage.yml linguist-generated +/.github/workflows/release-redis-cloudformation-prodatabase.yml linguist-generated +/.github/workflows/release-redis-cloudformation-prosubscription.yml linguist-generated +/.github/workflows/release-redis-cloudformation-subscriptionpeering.yml linguist-generated /.github/workflows/release-rollbar-notifications-rule.yml linguist-generated /.github/workflows/release-rollbar-projects-accesstoken.yml linguist-generated /.github/workflows/release-rollbar-projects-project.yml linguist-generated diff --git a/.github/workflows/build-individual.yml b/.github/workflows/build-individual.yml index d5eb4bf4f..e22e8ed1e 100644 --- a/.github/workflows/build-individual.yml +++ b/.github/workflows/build-individual.yml @@ -132,6 +132,9 @@ jobs: - paloaltonetworks-cloudngfw-ngfw - paloaltonetworks-cloudngfw-rulestack - poc-azure-blobstorage + - redis-cloudformation-prodatabase + - redis-cloudformation-prosubscription + - redis-cloudformation-subscriptionpeering - rollbar-notifications-rule - rollbar-projects-accesstoken - rollbar-projects-project diff --git a/.github/workflows/release-redis-cloudformation-prodatabase.yml b/.github/workflows/release-redis-cloudformation-prodatabase.yml new file mode 100644 index 000000000..ac138aa5f --- /dev/null +++ b/.github/workflows/release-redis-cloudformation-prodatabase.yml @@ -0,0 +1,201 @@ +# ~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen". + +name: release-redis-cloudformation-prodatabase +on: + push: + branches: + - main + workflow_dispatch: {} +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + outputs: + releasable_commits: ${{ steps.check-commits.outputs.releasable_count }} + tag_exists: ${{ steps.check-tag.outputs.exists }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set git identity + run: |- + git config user.name "github-actions" + git config user.email "github-actions@github.com" + - run: yarn install + - name: build + run: npx projen build + working-directory: packages/@cdk-cloudformation/redis-cloudformation-prodatabase + - name: Create version files + run: |- + echo $(node -p "require('./package.json').version") > dist/version.txt + echo "@cdk-cloudformation/redis-cloudformation-prodatabase@v$(cat dist/version.txt)" > dist/releasetag.txt + echo "Update AWS CloudFormation Registry type Redis::CloudFormation::ProDatabase to v$(cat dist/version.txt)" > dist/changelog.txt + working-directory: packages/@cdk-cloudformation/redis-cloudformation-prodatabase + - name: Check for releasable commits + id: check-commits + run: |- + LATEST_TAG=$(git -c "versionsort.suffix=-" tag --sort="-version:refname" --list "@cdk-cloudformation/redis-cloudformation-prodatabase@v*" | head -n 1) + echo ${LATEST_TAG:=$(git rev-list HEAD -- . | tail -1)^} + COUNT=$(git log --no-merges --oneline $LATEST_TAG..HEAD -E --grep "^(feat|fix){1}(\([^()[:space:]]+\))?(!)?:[[:blank:]]+.+" -- . | wc -l | xargs) + echo "releasable_count=$COUNT" >> $GITHUB_OUTPUT + cat $GITHUB_OUTPUT + working-directory: packages/@cdk-cloudformation/redis-cloudformation-prodatabase + - name: Check if tag exists + id: check-tag + run: |- + TAG=$(cat dist/releasetag.txt) + ([ ! -z "$TAG" ] && git ls-remote -q --exit-code --tags origin $TAG && (echo "exists=true" >> $GITHUB_OUTPUT)) || (echo "exists=false" >> $GITHUB_OUTPUT) + cat $GITHUB_OUTPUT + working-directory: packages/@cdk-cloudformation/redis-cloudformation-prodatabase + - if: always() + run: mv packages/@cdk-cloudformation/redis-cloudformation-prodatabase/dist . + - name: Upload artifact + if: always() + uses: actions/upload-artifact@v4.4.0 + with: + name: build-artifact + path: dist + overwrite: true + container: + image: jsii/superchain:1-bullseye-slim-node20 + release_github: + name: Publish to GitHub Releases + needs: + - build + - release_npm + - release_maven + - release_nuget + - release_pypi + runs-on: ubuntu-latest + permissions: + contents: write + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_REPOSITORY: ${{ github.repository }} + GITHUB_REF: ${{ github.sha }} + run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.txt -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi + release_npm: + name: Publish to npm + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + NPM_DIST_TAG: latest + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx -p publib@latest publib-npm + release_maven: + name: Publish to Maven Central + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-java@v4 + with: + distribution: corretto + java-version: "11" + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + MAVEN_ENDPOINT: https://s01.oss.sonatype.org + MAVEN_GPG_PRIVATE_KEY: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} + MAVEN_GPG_PRIVATE_KEY_PASSPHRASE: ${{ secrets.MAVEN_GPG_PRIVATE_KEY_PASSPHRASE }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_STAGING_PROFILE_ID: ${{ secrets.MAVEN_STAGING_PROFILE_ID }} + run: npx -p publib@latest publib-maven + release_nuget: + name: Publish to NuGet Gallery + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: 6.x + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} + run: npx -p publib@latest publib-nuget + release_pypi: + name: Publish to PyPI + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }} + TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} + run: npx -p publib@latest publib-pypi diff --git a/.github/workflows/release-redis-cloudformation-prosubscription.yml b/.github/workflows/release-redis-cloudformation-prosubscription.yml new file mode 100644 index 000000000..49922248a --- /dev/null +++ b/.github/workflows/release-redis-cloudformation-prosubscription.yml @@ -0,0 +1,201 @@ +# ~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen". + +name: release-redis-cloudformation-prosubscription +on: + push: + branches: + - main + workflow_dispatch: {} +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + outputs: + releasable_commits: ${{ steps.check-commits.outputs.releasable_count }} + tag_exists: ${{ steps.check-tag.outputs.exists }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set git identity + run: |- + git config user.name "github-actions" + git config user.email "github-actions@github.com" + - run: yarn install + - name: build + run: npx projen build + working-directory: packages/@cdk-cloudformation/redis-cloudformation-prosubscription + - name: Create version files + run: |- + echo $(node -p "require('./package.json').version") > dist/version.txt + echo "@cdk-cloudformation/redis-cloudformation-prosubscription@v$(cat dist/version.txt)" > dist/releasetag.txt + echo "Update AWS CloudFormation Registry type Redis::CloudFormation::ProSubscription to v$(cat dist/version.txt)" > dist/changelog.txt + working-directory: packages/@cdk-cloudformation/redis-cloudformation-prosubscription + - name: Check for releasable commits + id: check-commits + run: |- + LATEST_TAG=$(git -c "versionsort.suffix=-" tag --sort="-version:refname" --list "@cdk-cloudformation/redis-cloudformation-prosubscription@v*" | head -n 1) + echo ${LATEST_TAG:=$(git rev-list HEAD -- . | tail -1)^} + COUNT=$(git log --no-merges --oneline $LATEST_TAG..HEAD -E --grep "^(feat|fix){1}(\([^()[:space:]]+\))?(!)?:[[:blank:]]+.+" -- . | wc -l | xargs) + echo "releasable_count=$COUNT" >> $GITHUB_OUTPUT + cat $GITHUB_OUTPUT + working-directory: packages/@cdk-cloudformation/redis-cloudformation-prosubscription + - name: Check if tag exists + id: check-tag + run: |- + TAG=$(cat dist/releasetag.txt) + ([ ! -z "$TAG" ] && git ls-remote -q --exit-code --tags origin $TAG && (echo "exists=true" >> $GITHUB_OUTPUT)) || (echo "exists=false" >> $GITHUB_OUTPUT) + cat $GITHUB_OUTPUT + working-directory: packages/@cdk-cloudformation/redis-cloudformation-prosubscription + - if: always() + run: mv packages/@cdk-cloudformation/redis-cloudformation-prosubscription/dist . + - name: Upload artifact + if: always() + uses: actions/upload-artifact@v4.4.0 + with: + name: build-artifact + path: dist + overwrite: true + container: + image: jsii/superchain:1-bullseye-slim-node20 + release_github: + name: Publish to GitHub Releases + needs: + - build + - release_npm + - release_maven + - release_nuget + - release_pypi + runs-on: ubuntu-latest + permissions: + contents: write + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_REPOSITORY: ${{ github.repository }} + GITHUB_REF: ${{ github.sha }} + run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.txt -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi + release_npm: + name: Publish to npm + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + NPM_DIST_TAG: latest + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx -p publib@latest publib-npm + release_maven: + name: Publish to Maven Central + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-java@v4 + with: + distribution: corretto + java-version: "11" + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + MAVEN_ENDPOINT: https://s01.oss.sonatype.org + MAVEN_GPG_PRIVATE_KEY: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} + MAVEN_GPG_PRIVATE_KEY_PASSPHRASE: ${{ secrets.MAVEN_GPG_PRIVATE_KEY_PASSPHRASE }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_STAGING_PROFILE_ID: ${{ secrets.MAVEN_STAGING_PROFILE_ID }} + run: npx -p publib@latest publib-maven + release_nuget: + name: Publish to NuGet Gallery + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: 6.x + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} + run: npx -p publib@latest publib-nuget + release_pypi: + name: Publish to PyPI + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }} + TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} + run: npx -p publib@latest publib-pypi diff --git a/.github/workflows/release-redis-cloudformation-subscriptionpeering.yml b/.github/workflows/release-redis-cloudformation-subscriptionpeering.yml new file mode 100644 index 000000000..99df91eed --- /dev/null +++ b/.github/workflows/release-redis-cloudformation-subscriptionpeering.yml @@ -0,0 +1,201 @@ +# ~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen". + +name: release-redis-cloudformation-subscriptionpeering +on: + push: + branches: + - main + workflow_dispatch: {} +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + outputs: + releasable_commits: ${{ steps.check-commits.outputs.releasable_count }} + tag_exists: ${{ steps.check-tag.outputs.exists }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Set git identity + run: |- + git config user.name "github-actions" + git config user.email "github-actions@github.com" + - run: yarn install + - name: build + run: npx projen build + working-directory: packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering + - name: Create version files + run: |- + echo $(node -p "require('./package.json').version") > dist/version.txt + echo "@cdk-cloudformation/redis-cloudformation-subscriptionpeering@v$(cat dist/version.txt)" > dist/releasetag.txt + echo "Update AWS CloudFormation Registry type Redis::CloudFormation::SubscriptionPeering to v$(cat dist/version.txt)" > dist/changelog.txt + working-directory: packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering + - name: Check for releasable commits + id: check-commits + run: |- + LATEST_TAG=$(git -c "versionsort.suffix=-" tag --sort="-version:refname" --list "@cdk-cloudformation/redis-cloudformation-subscriptionpeering@v*" | head -n 1) + echo ${LATEST_TAG:=$(git rev-list HEAD -- . | tail -1)^} + COUNT=$(git log --no-merges --oneline $LATEST_TAG..HEAD -E --grep "^(feat|fix){1}(\([^()[:space:]]+\))?(!)?:[[:blank:]]+.+" -- . | wc -l | xargs) + echo "releasable_count=$COUNT" >> $GITHUB_OUTPUT + cat $GITHUB_OUTPUT + working-directory: packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering + - name: Check if tag exists + id: check-tag + run: |- + TAG=$(cat dist/releasetag.txt) + ([ ! -z "$TAG" ] && git ls-remote -q --exit-code --tags origin $TAG && (echo "exists=true" >> $GITHUB_OUTPUT)) || (echo "exists=false" >> $GITHUB_OUTPUT) + cat $GITHUB_OUTPUT + working-directory: packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering + - if: always() + run: mv packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/dist . + - name: Upload artifact + if: always() + uses: actions/upload-artifact@v4.4.0 + with: + name: build-artifact + path: dist + overwrite: true + container: + image: jsii/superchain:1-bullseye-slim-node20 + release_github: + name: Publish to GitHub Releases + needs: + - build + - release_npm + - release_maven + - release_nuget + - release_pypi + runs-on: ubuntu-latest + permissions: + contents: write + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_REPOSITORY: ${{ github.repository }} + GITHUB_REF: ${{ github.sha }} + run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.txt -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi + release_npm: + name: Publish to npm + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + NPM_DIST_TAG: latest + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npx -p publib@latest publib-npm + release_maven: + name: Publish to Maven Central + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-java@v4 + with: + distribution: corretto + java-version: "11" + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + MAVEN_ENDPOINT: https://s01.oss.sonatype.org + MAVEN_GPG_PRIVATE_KEY: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} + MAVEN_GPG_PRIVATE_KEY_PASSPHRASE: ${{ secrets.MAVEN_GPG_PRIVATE_KEY_PASSPHRASE }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} + MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} + MAVEN_STAGING_PROFILE_ID: ${{ secrets.MAVEN_STAGING_PROFILE_ID }} + run: npx -p publib@latest publib-maven + release_nuget: + name: Publish to NuGet Gallery + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - uses: actions/setup-dotnet@v4 + with: + dotnet-version: 6.x + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} + run: npx -p publib@latest publib-nuget + release_pypi: + name: Publish to PyPI + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + if: (needs.build.outputs.tag_exists != 'true') && (needs.build.outputs.releasable_commits > 0) + steps: + - uses: actions/setup-node@v4 + with: + node-version: lts/* + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Download build artifacts + uses: actions/download-artifact@v4 + with: + name: build-artifact + path: dist + - name: Restore build artifact permissions + run: cd dist && setfacl --restore=permissions-backup.acl + continue-on-error: true + - name: Release + env: + TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }} + TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} + run: npx -p publib@latest publib-pypi diff --git a/.gitignore b/.gitignore index c78bf2639..67b69d40a 100644 --- a/.gitignore +++ b/.gitignore @@ -380,6 +380,15 @@ junit.xml /packages/@cdk-cloudformation/poc-azure-blobstorage/dist/ /packages/@cdk-cloudformation/poc-azure-blobstorage/lib/ !/.github/workflows/release-poc-azure-blobstorage.yml +/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/dist/ +/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/lib/ +!/.github/workflows/release-redis-cloudformation-prodatabase.yml +/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/dist/ +/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/lib/ +!/.github/workflows/release-redis-cloudformation-prosubscription.yml +/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/dist/ +/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/lib/ +!/.github/workflows/release-redis-cloudformation-subscriptionpeering.yml /packages/@cdk-cloudformation/rollbar-notifications-rule/dist/ /packages/@cdk-cloudformation/rollbar-notifications-rule/lib/ !/.github/workflows/release-rollbar-notifications-rule.yml diff --git a/.projen/files.json b/.projen/files.json index 5d858ae1a..90ec61c31 100644 --- a/.projen/files.json +++ b/.projen/files.json @@ -118,6 +118,9 @@ ".github/workflows/release-paloaltonetworks-cloudngfw-ngfw.yml", ".github/workflows/release-paloaltonetworks-cloudngfw-rulestack.yml", ".github/workflows/release-poc-azure-blobstorage.yml", + ".github/workflows/release-redis-cloudformation-prodatabase.yml", + ".github/workflows/release-redis-cloudformation-prosubscription.yml", + ".github/workflows/release-redis-cloudformation-subscriptionpeering.yml", ".github/workflows/release-rollbar-notifications-rule.yml", ".github/workflows/release-rollbar-projects-accesstoken.yml", ".github/workflows/release-rollbar-projects-project.yml", diff --git a/README.md b/README.md index 3e03aef77..b53d6682d 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ that version from your package manager. -Release status for 136 libraries: +Release status for 139 libraries: * [![aqua-enterprise-enforcer](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-aqua-enterprise-enforcer.yml/badge.svg)](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-aqua-enterprise-enforcer.yml) * [![aqua-enterprise-kubeenforcer](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-aqua-enterprise-kubeenforcer.yml/badge.svg)](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-aqua-enterprise-kubeenforcer.yml) @@ -152,6 +152,9 @@ Release status for 136 libraries: * [![paloaltonetworks-cloudngfw-ngfw](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-paloaltonetworks-cloudngfw-ngfw.yml/badge.svg)](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-paloaltonetworks-cloudngfw-ngfw.yml) * [![paloaltonetworks-cloudngfw-rulestack](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-paloaltonetworks-cloudngfw-rulestack.yml/badge.svg)](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-paloaltonetworks-cloudngfw-rulestack.yml) * [![poc-azure-blobstorage](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-poc-azure-blobstorage.yml/badge.svg)](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-poc-azure-blobstorage.yml) +* [![redis-cloudformation-prodatabase](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-redis-cloudformation-prodatabase.yml/badge.svg)](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-redis-cloudformation-prodatabase.yml) +* [![redis-cloudformation-prosubscription](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-redis-cloudformation-prosubscription.yml/badge.svg)](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-redis-cloudformation-prosubscription.yml) +* [![redis-cloudformation-subscriptionpeering](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-redis-cloudformation-subscriptionpeering.yml/badge.svg)](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-redis-cloudformation-subscriptionpeering.yml) * [![rollbar-notifications-rule](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-rollbar-notifications-rule.yml/badge.svg)](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-rollbar-notifications-rule.yml) * [![rollbar-projects-accesstoken](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-rollbar-projects-accesstoken.yml/badge.svg)](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-rollbar-projects-accesstoken.yml) * [![rollbar-projects-project](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-rollbar-projects-project.yml/badge.svg)](https://github.com/cdklabs/cdk-cloudformation/actions/workflows/release-rollbar-projects-project.yml) diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.gitattributes b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.gitattributes new file mode 100644 index 000000000..cee6df50e --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.gitattributes @@ -0,0 +1,3 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen". + +* text=auto eol=lf \ No newline at end of file diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.gitignore b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.gitignore new file mode 100644 index 000000000..3c26cd33e --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.gitignore @@ -0,0 +1,15 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen". +node_modules/ +!/.gitattributes +!/.projen/tasks.json +!/.projen/deps.json +!/.projen/files.json +!/LICENSE +!/README.md +!/package.json +/.jsii +/lib/ +/tsconfig.json +/dist/ +tsconfig.tsbuildinfo +!/.npmignore diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.npmignore b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.npmignore new file mode 100644 index 000000000..23f1be049 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.npmignore @@ -0,0 +1,8 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen". +.projen +dist +src +test +tsconfig.tsbuildinfo +!.jsii +!.jsii.gz diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.projen/files.json b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.projen/files.json new file mode 100644 index 000000000..e100c0f27 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.projen/files.json @@ -0,0 +1,13 @@ +{ + "files": [ + ".gitattributes", + ".gitignore", + ".projen/deps.json", + ".projen/files.json", + ".projen/tasks.json", + "LICENSE", + "package.json", + "README.md" + ], + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"." +} diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.projen/tasks.json b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.projen/tasks.json new file mode 100644 index 000000000..1b626ce29 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/.projen/tasks.json @@ -0,0 +1,45 @@ +{ + "tasks": { + "build": { + "name": "build", + "description": "build redis-cloudformation-prodatabase", + "steps": [ + { + "spawn": "compile" + }, + { + "spawn": "package" + } + ] + }, + "compile": { + "name": "compile", + "description": "compile redis-cloudformation-prodatabase with JSII", + "steps": [ + { + "exec": "jsii" + } + ] + }, + "default": { + "name": "default", + "description": "Synthesize project files", + "steps": [ + { + "exec": "npx projen default", + "cwd": "../../.." + } + ] + }, + "package": { + "name": "package", + "description": "produce multi-language packaging for redis-cloudformation-prodatabase", + "steps": [ + { + "exec": "jsii-pacmak --no-npmignore" + } + ] + } + }, + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"." +} diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/LICENSE b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/README.md b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/README.md new file mode 100644 index 000000000..f90070c4d --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/README.md @@ -0,0 +1,45 @@ +# redis-cloudformation-prodatabase + +> AWS CDK [L1 construct] and data structures for the [AWS CloudFormation Registry] type `Redis::CloudFormation::ProDatabase` v1.0.0. + +[L1 construct]: https://docs.aws.amazon.com/cdk/latest/guide/constructs.html +[AWS CloudFormation Registry]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html + +## Description + +CloudFormation template for Pro Database. + +## Usage + +In order to use this library, you will need to activate this AWS CloudFormation Registry type in your account. You can do this via the AWS Management Console or using the [AWS CLI](https://aws.amazon.com/cli/) using the following command: + +```sh +aws cloudformation activate-type \ + --type-name Redis::CloudFormation::ProDatabase \ + --publisher-id 68686e85baeed40bdffe29c5e35183528a2e7174 \ + --type RESOURCE \ + --execution-role-arn ROLE-ARN +``` + +Alternatively: + +```sh +aws cloudformation activate-type \ + --public-type-arn arn:aws:cloudformation:us-east-1::type/resource/68686e85baeed40bdffe29c5e35183528a2e7174/Redis-CloudFormation-ProDatabase \ + --execution-role-arn ROLE-ARN +``` + +You can find more information about activating this type in the [AWS CloudFormation documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html). + +## Feedback + +This library is auto-generated and published to all supported programming languages by the [cdklabs/cdk-cloudformation] project based on the API schema published for `Redis::CloudFormation::ProDatabase`. + +* Issues related to this generated library should be [reported here](https://github.com/cdklabs/cdk-cloudformation/issues/new?title=Issue+with+%40cdk-cloudformation%2Fredis-cloudformation-prodatabase+v1.0.0). +* Issues related to `Redis::CloudFormation::ProDatabase` should be reported to the [publisher](undefined). + +[cdklabs/cdk-cloudformation]: https://github.com/cdklabs/cdk-cloudformation + +## License + +Distributed under the Apache-2.0 License. diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/package.json b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/package.json new file mode 100644 index 000000000..66e0c51ad --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/package.json @@ -0,0 +1,72 @@ +{ + "name": "@cdk-cloudformation/redis-cloudformation-prodatabase", + "description": "CloudFormation template for Pro Database.", + "version": "1.0.0-alpha.7", + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com", + "organization": true + }, + "keywords": [ + "cdk", + "awscdk", + "aws-cdk", + "cloudformation", + "cfn", + "extensions", + "constructs", + "cfn-resources", + "cloudformation-registry", + "l1", + "redis", + "cloudformation", + "prodatabase" + ], + "repository": { + "type": "git", + "url": "https://github.com/cdklabs/cdk-cloudformation.git", + "directory": "packages/@cdk-cloudformation/redis-cloudformation-prodatabase" + }, + "main": "lib/index.js", + "types": "lib/index.d.ts", + "publishConfig": { + "access": "public" + }, + "jsii": { + "outdir": "dist", + "targets": { + "java": { + "package": "io.github.cdklabs.cdk_cloudformation.redis_cloudformation_prodatabase", + "maven": { + "groupId": "io.github.cdklabs.cdk_cloudformation", + "artifactId": "redis-cloudformation-prodatabase" + } + }, + "python": { + "distName": "cdk-cloudformation-redis-cloudformation-prodatabase", + "module": "cdk_cloudformation_redis_cloudformation_prodatabase" + }, + "dotnet": { + "namespace": "CdkCloudFormation.RedisCloudFormationProDatabase", + "packageId": "CdkCloudFormation.RedisCloudFormationProDatabase" + } + }, + "tsc": { + "outDir": "lib", + "rootDir": "src", + "types": [ + "node" + ] + } + }, + "peerDependencies": { + "aws-cdk-lib": "^2.171.1", + "constructs": "^10.4.2" + }, + "devDependencies": { + "aws-cdk-lib": "2.171.1", + "constructs": "10.4.2" + }, + "license": "Apache-2.0", + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"." +} diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/src/index.ts b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/src/index.ts new file mode 100644 index 000000000..a2e992eb3 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prodatabase/src/index.ts @@ -0,0 +1,338 @@ +// Generated by cdk-import +import * as cdk from 'aws-cdk-lib'; +import * as constructs from 'constructs'; + +/** + * CloudFormation template for Pro Database. + * + * @schema CfnProDatabaseProps + */ +export interface CfnProDatabaseProps { + /** + * [Required]. The Base URL where the API calls are sent. + * + * @schema CfnProDatabaseProps#BaseUrl + */ + readonly baseUrl?: string; + + /** + * [Required]. The Subscription ID under which the Database is created. + * + * @schema CfnProDatabaseProps#SubscriptionID + */ + readonly subscriptionId: string; + + /** + * [Optional]. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Example: false. Default: 'false'. + * + * @schema CfnProDatabaseProps#DryRun + */ + readonly dryRun?: string; + + /** + * [Required]. Database name (Database name must be up to 40 characters long, include only letters, digits, or hyphen ('-'), start with a letter, and end with a letter or digit). Example: Redis-database-example + * + * @schema CfnProDatabaseProps#DatabaseName + */ + readonly databaseName: string; + + /** + * [Optional]. Database protocol: either 'redis' or 'memcached'. Default: 'redis' + * + * @schema CfnProDatabaseProps#Protocol + */ + readonly protocol?: string; + + /** + * [Optional]. TCP port on which the database is available (10000-19999). Generated automatically if omitted. Example: 10000 + * + * @schema CfnProDatabaseProps#Port + */ + readonly port?: string; + + /** + * [Required]. The maximum amount of data in the dataset for this specific database is in GB. You can not set both datasetSizeInGb and totalMemoryInGb. if 'replication' is true, the database's total memory will be twice as large as the datasetSizeInGb.if 'replication' is false, the database's total memory of the database will be the datasetSizeInGb value. Minimum: 0.1. ExclusiveMinimum: false. Example: 1 + * + * @schema CfnProDatabaseProps#DatasetSizeInGb + */ + readonly datasetSizeInGb: string; + + /** + * [Optional]. RESP version must be compatible with Redis version. Example: resp3. Allowed values: resp2/resp3. + * + * @schema CfnProDatabaseProps#RespVersion + */ + readonly respVersion?: string; + + /** + * [Optional]. Support Redis open-source (OSS) Cluster API. Default: 'false' + * + * @schema CfnProDatabaseProps#SupportOSSClusterApi + */ + readonly supportOssClusterApi?: string; + + /** + * [Optional]. Should use external endpoint for open-source (OSS) Cluster API. Can only be enabled if OSS Cluster API support is enabled'. Default: 'false' + * + * @schema CfnProDatabaseProps#UseExternalEndpointForOSSClusterApi + */ + readonly useExternalEndpointForOssClusterApi?: string; + + /** + * [Optional]. Rate of database data persistence (in persistent storage). List of options: [ none, aof-every-1-second, aof-every-write, snapshot-every-1-hour, snapshot-every-6-hours, snapshot-every-12-hours ]. Example: none. Default: 'none'. + * + * @schema CfnProDatabaseProps#DataPersistence + */ + readonly dataPersistence?: string; + + /** + * [Optional]. Data items eviction method. List of options: [ allkeys-lru, allkeys-lfu, allkeys-random, volatile-lru, volatile-lfu, volatile-random, volatile-ttl, noeviction ]. Default: 'volatile-lru' + * + * @schema CfnProDatabaseProps#DataEvictionPolicy + */ + readonly dataEvictionPolicy?: string; + + /** + * [Optional]. Databases replication. Default: 'true' + * + * @schema CfnProDatabaseProps#Replication + */ + readonly replication?: string; + + /** + * [Optional. Input as JSON]. Replica Of configuration + * + * @schema CfnProDatabaseProps#Replica + */ + readonly replica?: string; + + /** + * [Optional. Input as JSON]. Throughput measurement method. Default: 25000 ops/sec + * + * @schema CfnProDatabaseProps#ThroughputMeasurement + */ + readonly throughputMeasurement?: string; + + /** + * [Optional. Input as JSON]. Throughput measurement for an active-active subscription + * + * @schema CfnProDatabaseProps#LocalThroughputMeasurement + */ + readonly localThroughputMeasurement?: string; + + /** + * [Optional]. Relevant only to ram-and-flash clusters. Estimated average size (measured in bytes) of the items stored in the database. Default: 1000 + * + * @schema CfnProDatabaseProps#AverageItemSizeInBytes + */ + readonly averageItemSizeInBytes?: string; + + /** + * [Optional. Input as JSON]. Database remote backup configuration + * + * @schema CfnProDatabaseProps#RemoteBackup + */ + readonly remoteBackup?: string; + + /** + * [Optional]. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example value: '['192.168.10.0/32', '192.168.12.0/24']' + * + * @schema CfnProDatabaseProps#SourceIp + */ + readonly sourceIp?: string; + + /** + * [Optional. Input as a JSON]. A list of TLS/SSL certificates (public keys) with new line characters replaced by + * . If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty list is received, SSL certificates will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null' + * + * @schema CfnProDatabaseProps#ClientTlsCertificates + */ + readonly clientTlsCertificates?: string; + + /** + * [Optional]. When 'true', requires TLS authentication for all connections (mTLS with valid clientSslCertificate, regular TLS when the clientSslCertificate is not provided. Default: 'false' + * + * @schema CfnProDatabaseProps#EnableTls + */ + readonly enableTls?: string; + + /** + * [Optional]. Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated. Can only be set if Database Protocol is REDIS + * + * @schema CfnProDatabaseProps#Password + */ + readonly password?: string; + + /** + * [Optional]. Memcached (SASL) Username to access the database. If omitted, the username will be set to a 'mc-' prefix followed by a random 5 character long alphanumeric. Can only be set if Database Protocol is MEMCACHED + * + * @schema CfnProDatabaseProps#SaslUsername + */ + readonly saslUsername?: string; + + /** + * [Optional]. Memcached (SASL) Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated. Can only be set if Database Protocol is MEMCACHED + * + * @schema CfnProDatabaseProps#SaslPassword + */ + readonly saslPassword?: string; + + /** + * [Optional. Input as JSON]. Redis database alerts. + * + * @schema CfnProDatabaseProps#Alerts + */ + readonly alerts?: string; + + /** + * [Optional. Input as JSON]. Redis modules to be provisioned in the database. + * + * @schema CfnProDatabaseProps#Modules + */ + readonly modules?: string; + + /** + * [Optional]. The query performance factor adds extra compute power specifically for search and query. For databases with search and query, you can increase your search queries per second by the selected factor. Example: 2x + * + * @schema CfnProDatabaseProps#QueryPerformanceFactor + */ + readonly queryPerformanceFactor?: string; + + /** + * [Optional. Can only be modified upon Update request from a Cloud Formation stack]. Shard regex rules. Relevant only for a sharded database. + * + * @schema CfnProDatabaseProps#RegexRules + */ + readonly regexRules?: string; + + /** + * [Optional. Can only be modified upon Update request from a Cloud Formation stack]. When 'true', enables connecting to the database with the 'default' user. Default: 'true'. Can only be set if Database Protocol is REDIS + * + * @schema CfnProDatabaseProps#EnableDefaultUser + */ + readonly enableDefaultUser?: string; + + /** + * [Required to enable Backup. Can only be modified upon Update request from a Cloud Formation stack. Requires 'remoteBackup' to be active]. If 'true', creates a backup of the current database and disables all other parameters set for Update except for 'RegionName'. Default 'false'. + * + * @schema CfnProDatabaseProps#OnDemandBackup + */ + readonly onDemandBackup?: string; + + /** + * [Optional. Can only be modified upon Update request from a Cloud Formation stack. Requires 'OnDemandBackup' set to 'true']. Name of cloud provider region where the local database is located. When backing up an active-active database, backup is done separately for each local database at a specified region. Example for active-active database: 'us-east-1'. For single-region deployment, the value MUST be 'null'. + * + * @schema CfnProDatabaseProps#RegionName + */ + readonly regionName?: string; + + /** + * [Required to enable Import. Can only be modified upon Update request from a Cloud Formation stack]. If 'true', imports the previous created backup of a database and disables all other parameters set for Update except for 'SourceType' and 'ImportFromUri'. Default 'false'. + * + * @schema CfnProDatabaseProps#OnDemandImport + */ + readonly onDemandImport?: string; + + /** + * [Required for Import. Can only be modified upon Update request from a Cloud Formation stack. Requires 'OnDemandImport' set to 'true']. Type of storage source from which to import the database file (RDB files) or data (Redis connection). List of options: [ http, redis, ftp, aws-s3, azure-blob-storage, google-blob-storage ]. + * + * @schema CfnProDatabaseProps#SourceType + */ + readonly sourceType?: string; + + /** + * [Required for Import. Can only be modified upon Update request from a Cloud Formation stack. Requires 'OnDemandImport' set to 'true']. One or more URIs to source data files or Redis databases, as appropriate to specified source type (example: ['http://mydomain.com/redis-backup-file1', 'http://mydomain.com/redis-backup-file2']) + * + * @schema CfnProDatabaseProps#ImportFromUri + */ + readonly importFromUri?: string; + +} + +/** + * Converts an object of type 'CfnProDatabaseProps' to JSON representation. + */ +/* eslint-disable max-len, quote-props */ +export function toJson_CfnProDatabaseProps(obj: CfnProDatabaseProps | undefined): Record | undefined { + if (obj === undefined) { return undefined; } + const result = { + 'BaseUrl': obj.baseUrl, + 'SubscriptionID': obj.subscriptionId, + 'DryRun': obj.dryRun, + 'DatabaseName': obj.databaseName, + 'Protocol': obj.protocol, + 'Port': obj.port, + 'DatasetSizeInGb': obj.datasetSizeInGb, + 'RespVersion': obj.respVersion, + 'SupportOSSClusterApi': obj.supportOssClusterApi, + 'UseExternalEndpointForOSSClusterApi': obj.useExternalEndpointForOssClusterApi, + 'DataPersistence': obj.dataPersistence, + 'DataEvictionPolicy': obj.dataEvictionPolicy, + 'Replication': obj.replication, + 'Replica': obj.replica, + 'ThroughputMeasurement': obj.throughputMeasurement, + 'LocalThroughputMeasurement': obj.localThroughputMeasurement, + 'AverageItemSizeInBytes': obj.averageItemSizeInBytes, + 'RemoteBackup': obj.remoteBackup, + 'SourceIp': obj.sourceIp, + 'ClientTlsCertificates': obj.clientTlsCertificates, + 'EnableTls': obj.enableTls, + 'Password': obj.password, + 'SaslUsername': obj.saslUsername, + 'SaslPassword': obj.saslPassword, + 'Alerts': obj.alerts, + 'Modules': obj.modules, + 'QueryPerformanceFactor': obj.queryPerformanceFactor, + 'RegexRules': obj.regexRules, + 'EnableDefaultUser': obj.enableDefaultUser, + 'OnDemandBackup': obj.onDemandBackup, + 'RegionName': obj.regionName, + 'OnDemandImport': obj.onDemandImport, + 'SourceType': obj.sourceType, + 'ImportFromUri': obj.importFromUri, + }; + // filter undefined values + return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); +} +/* eslint-enable max-len, quote-props */ + + +/** + * A CloudFormation `Redis::CloudFormation::ProDatabase` + * + * @cloudformationResource Redis::CloudFormation::ProDatabase + * @stability external + * @link http://unknown-url + */ +export class CfnProDatabase extends cdk.CfnResource { + /** + * The CloudFormation resource type name for this resource class. + */ + public static readonly CFN_RESOURCE_TYPE_NAME = "Redis::CloudFormation::ProDatabase"; + + /** + * Resource props. + */ + public readonly props: CfnProDatabaseProps; + + /** + * Attribute `Redis::CloudFormation::ProDatabase.DatabaseID` + * @link http://unknown-url + */ + public readonly attrDatabaseID: string; + + /** + * Create a new `Redis::CloudFormation::ProDatabase`. + * + * @param scope - scope in which this resource is defined + * @param id - scoped id of the resource + * @param props - resource properties + */ + constructor(scope: constructs.Construct, id: string, props: CfnProDatabaseProps) { + super(scope, id, { type: CfnProDatabase.CFN_RESOURCE_TYPE_NAME, properties: toJson_CfnProDatabaseProps(props)! }); + + this.props = props; + + this.attrDatabaseID = cdk.Token.asString(this.getAtt('DatabaseID')); + } +} \ No newline at end of file diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.gitattributes b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.gitattributes new file mode 100644 index 000000000..cee6df50e --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.gitattributes @@ -0,0 +1,3 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen". + +* text=auto eol=lf \ No newline at end of file diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.gitignore b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.gitignore new file mode 100644 index 000000000..3c26cd33e --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.gitignore @@ -0,0 +1,15 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen". +node_modules/ +!/.gitattributes +!/.projen/tasks.json +!/.projen/deps.json +!/.projen/files.json +!/LICENSE +!/README.md +!/package.json +/.jsii +/lib/ +/tsconfig.json +/dist/ +tsconfig.tsbuildinfo +!/.npmignore diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.npmignore b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.npmignore new file mode 100644 index 000000000..23f1be049 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.npmignore @@ -0,0 +1,8 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen". +.projen +dist +src +test +tsconfig.tsbuildinfo +!.jsii +!.jsii.gz diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.projen/files.json b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.projen/files.json new file mode 100644 index 000000000..e100c0f27 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.projen/files.json @@ -0,0 +1,13 @@ +{ + "files": [ + ".gitattributes", + ".gitignore", + ".projen/deps.json", + ".projen/files.json", + ".projen/tasks.json", + "LICENSE", + "package.json", + "README.md" + ], + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"." +} diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.projen/tasks.json b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.projen/tasks.json new file mode 100644 index 000000000..4fea0288c --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/.projen/tasks.json @@ -0,0 +1,45 @@ +{ + "tasks": { + "build": { + "name": "build", + "description": "build redis-cloudformation-prosubscription", + "steps": [ + { + "spawn": "compile" + }, + { + "spawn": "package" + } + ] + }, + "compile": { + "name": "compile", + "description": "compile redis-cloudformation-prosubscription with JSII", + "steps": [ + { + "exec": "jsii" + } + ] + }, + "default": { + "name": "default", + "description": "Synthesize project files", + "steps": [ + { + "exec": "npx projen default", + "cwd": "../../.." + } + ] + }, + "package": { + "name": "package", + "description": "produce multi-language packaging for redis-cloudformation-prosubscription", + "steps": [ + { + "exec": "jsii-pacmak --no-npmignore" + } + ] + } + }, + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"." +} diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/LICENSE b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/README.md b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/README.md new file mode 100644 index 000000000..ed58f4ed0 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/README.md @@ -0,0 +1,45 @@ +# redis-cloudformation-prosubscription + +> AWS CDK [L1 construct] and data structures for the [AWS CloudFormation Registry] type `Redis::CloudFormation::ProSubscription` v1.0.0. + +[L1 construct]: https://docs.aws.amazon.com/cdk/latest/guide/constructs.html +[AWS CloudFormation Registry]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html + +## Description + +CloudFormation template for Pro Subscription. + +## Usage + +In order to use this library, you will need to activate this AWS CloudFormation Registry type in your account. You can do this via the AWS Management Console or using the [AWS CLI](https://aws.amazon.com/cli/) using the following command: + +```sh +aws cloudformation activate-type \ + --type-name Redis::CloudFormation::ProSubscription \ + --publisher-id 68686e85baeed40bdffe29c5e35183528a2e7174 \ + --type RESOURCE \ + --execution-role-arn ROLE-ARN +``` + +Alternatively: + +```sh +aws cloudformation activate-type \ + --public-type-arn arn:aws:cloudformation:us-east-1::type/resource/68686e85baeed40bdffe29c5e35183528a2e7174/Redis-CloudFormation-ProSubscription \ + --execution-role-arn ROLE-ARN +``` + +You can find more information about activating this type in the [AWS CloudFormation documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html). + +## Feedback + +This library is auto-generated and published to all supported programming languages by the [cdklabs/cdk-cloudformation] project based on the API schema published for `Redis::CloudFormation::ProSubscription`. + +* Issues related to this generated library should be [reported here](https://github.com/cdklabs/cdk-cloudformation/issues/new?title=Issue+with+%40cdk-cloudformation%2Fredis-cloudformation-prosubscription+v1.0.0). +* Issues related to `Redis::CloudFormation::ProSubscription` should be reported to the [publisher](undefined). + +[cdklabs/cdk-cloudformation]: https://github.com/cdklabs/cdk-cloudformation + +## License + +Distributed under the Apache-2.0 License. diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/package.json b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/package.json new file mode 100644 index 000000000..327e6048b --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/package.json @@ -0,0 +1,72 @@ +{ + "name": "@cdk-cloudformation/redis-cloudformation-prosubscription", + "description": "CloudFormation template for Pro Subscription.", + "version": "1.0.0-alpha.7", + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com", + "organization": true + }, + "keywords": [ + "cdk", + "awscdk", + "aws-cdk", + "cloudformation", + "cfn", + "extensions", + "constructs", + "cfn-resources", + "cloudformation-registry", + "l1", + "redis", + "cloudformation", + "prosubscription" + ], + "repository": { + "type": "git", + "url": "https://github.com/cdklabs/cdk-cloudformation.git", + "directory": "packages/@cdk-cloudformation/redis-cloudformation-prosubscription" + }, + "main": "lib/index.js", + "types": "lib/index.d.ts", + "publishConfig": { + "access": "public" + }, + "jsii": { + "outdir": "dist", + "targets": { + "java": { + "package": "io.github.cdklabs.cdk_cloudformation.redis_cloudformation_prosubscription", + "maven": { + "groupId": "io.github.cdklabs.cdk_cloudformation", + "artifactId": "redis-cloudformation-prosubscription" + } + }, + "python": { + "distName": "cdk-cloudformation-redis-cloudformation-prosubscription", + "module": "cdk_cloudformation_redis_cloudformation_prosubscription" + }, + "dotnet": { + "namespace": "CdkCloudFormation.RedisCloudFormationProSubscription", + "packageId": "CdkCloudFormation.RedisCloudFormationProSubscription" + } + }, + "tsc": { + "outDir": "lib", + "rootDir": "src", + "types": [ + "node" + ] + } + }, + "peerDependencies": { + "aws-cdk-lib": "^2.171.1", + "constructs": "^10.4.2" + }, + "devDependencies": { + "aws-cdk-lib": "2.171.1", + "constructs": "10.4.2" + }, + "license": "Apache-2.0", + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"." +} diff --git a/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/src/index.ts b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/src/index.ts new file mode 100644 index 000000000..a8113bbc7 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-prosubscription/src/index.ts @@ -0,0 +1,137 @@ +// Generated by cdk-import +import * as cdk from 'aws-cdk-lib'; +import * as constructs from 'constructs'; + +/** + * CloudFormation template for Pro Subscription. + * + * @schema CfnProSubscriptionProps + */ +export interface CfnProSubscriptionProps { + /** + * [Required]. The Base URL where the API calls are sent. + * + * @schema CfnProSubscriptionProps#BaseUrl + */ + readonly baseUrl?: string; + + /** + * [Optional]. Subscription name. Example: My new subscription + * + * @schema CfnProSubscriptionProps#SubscriptionName + */ + readonly subscriptionName?: string; + + /** + * [Optional]. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Example: false. Default: 'false'. + * + * @schema CfnProSubscriptionProps#DryRun + */ + readonly dryRun?: string; + + /** + * [Optional]. Creates a single region subscription. Example: single-region + * + * @schema CfnProSubscriptionProps#DeploymentType + */ + readonly deploymentType?: string; + + /** + * [Optional]. Payment method for the requested subscription. If credit card is specified, the payment method Id must be defined. Default: 'credit-card' + * + * @schema CfnProSubscriptionProps#PaymentMethod + */ + readonly paymentMethod?: string; + + /** + * [Optional]. A valid payment method that was pre-defined in the current account. This value is Optional if 'paymentMethod' is 'marketplace', but Required for all other account types. + * + * @schema CfnProSubscriptionProps#PaymentMethodId + */ + readonly paymentMethodId?: string; + + /** + * [Optional]. Optional. Memory storage preference: either 'ram' or a combination of 'ram-and-flash'. Example: ram. Default: 'ram' + * + * @schema CfnProSubscriptionProps#MemoryStorage + */ + readonly memoryStorage?: string; + + /** + * [Required as JSON]. Cloud hosting & networking details. Example: [{"regions": [{"region": "us-east-1", "networking": {}}]}] + * + * @schema CfnProSubscriptionProps#CloudProviders + */ + readonly cloudProviders: string; + + /** + * [Optional]. If specified, the redisVersion defines the Redis version of the databases in the subscription. If omitted, the Redis version will be the default (available in 'GET /subscriptions/redis-versions'). Example: 7.2. Default = 'default' + * + * @schema CfnProSubscriptionProps#RedisVersion + */ + readonly redisVersion?: string; + +} + +/** + * Converts an object of type 'CfnProSubscriptionProps' to JSON representation. + */ +/* eslint-disable max-len, quote-props */ +export function toJson_CfnProSubscriptionProps(obj: CfnProSubscriptionProps | undefined): Record | undefined { + if (obj === undefined) { return undefined; } + const result = { + 'BaseUrl': obj.baseUrl, + 'SubscriptionName': obj.subscriptionName, + 'DryRun': obj.dryRun, + 'DeploymentType': obj.deploymentType, + 'PaymentMethod': obj.paymentMethod, + 'PaymentMethodId': obj.paymentMethodId, + 'MemoryStorage': obj.memoryStorage, + 'CloudProviders': obj.cloudProviders, + 'RedisVersion': obj.redisVersion, + }; + // filter undefined values + return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); +} +/* eslint-enable max-len, quote-props */ + + +/** + * A CloudFormation `Redis::CloudFormation::ProSubscription` + * + * @cloudformationResource Redis::CloudFormation::ProSubscription + * @stability external + * @link http://unknown-url + */ +export class CfnProSubscription extends cdk.CfnResource { + /** + * The CloudFormation resource type name for this resource class. + */ + public static readonly CFN_RESOURCE_TYPE_NAME = "Redis::CloudFormation::ProSubscription"; + + /** + * Resource props. + */ + public readonly props: CfnProSubscriptionProps; + + /** + * Attribute `Redis::CloudFormation::ProSubscription.SubscriptionID` + * @link http://unknown-url + */ + public readonly attrSubscriptionID: string; + + /** + * Create a new `Redis::CloudFormation::ProSubscription`. + * + * @param scope - scope in which this resource is defined + * @param id - scoped id of the resource + * @param props - resource properties + */ + constructor(scope: constructs.Construct, id: string, props: CfnProSubscriptionProps) { + super(scope, id, { type: CfnProSubscription.CFN_RESOURCE_TYPE_NAME, properties: toJson_CfnProSubscriptionProps(props)! }); + + this.props = props; + + this.attrSubscriptionID = cdk.Token.asString(this.getAtt('SubscriptionID')); + } +} \ No newline at end of file diff --git a/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.gitattributes b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.gitattributes new file mode 100644 index 000000000..cee6df50e --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.gitattributes @@ -0,0 +1,3 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen". + +* text=auto eol=lf \ No newline at end of file diff --git a/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.gitignore b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.gitignore new file mode 100644 index 000000000..3c26cd33e --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.gitignore @@ -0,0 +1,15 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen". +node_modules/ +!/.gitattributes +!/.projen/tasks.json +!/.projen/deps.json +!/.projen/files.json +!/LICENSE +!/README.md +!/package.json +/.jsii +/lib/ +/tsconfig.json +/dist/ +tsconfig.tsbuildinfo +!/.npmignore diff --git a/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.npmignore b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.npmignore new file mode 100644 index 000000000..23f1be049 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.npmignore @@ -0,0 +1,8 @@ +# ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen". +.projen +dist +src +test +tsconfig.tsbuildinfo +!.jsii +!.jsii.gz diff --git a/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.projen/files.json b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.projen/files.json new file mode 100644 index 000000000..e100c0f27 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.projen/files.json @@ -0,0 +1,13 @@ +{ + "files": [ + ".gitattributes", + ".gitignore", + ".projen/deps.json", + ".projen/files.json", + ".projen/tasks.json", + "LICENSE", + "package.json", + "README.md" + ], + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"." +} diff --git a/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.projen/tasks.json b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.projen/tasks.json new file mode 100644 index 000000000..691351976 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/.projen/tasks.json @@ -0,0 +1,45 @@ +{ + "tasks": { + "build": { + "name": "build", + "description": "build redis-cloudformation-subscriptionpeering", + "steps": [ + { + "spawn": "compile" + }, + { + "spawn": "package" + } + ] + }, + "compile": { + "name": "compile", + "description": "compile redis-cloudformation-subscriptionpeering with JSII", + "steps": [ + { + "exec": "jsii" + } + ] + }, + "default": { + "name": "default", + "description": "Synthesize project files", + "steps": [ + { + "exec": "npx projen default", + "cwd": "../../.." + } + ] + }, + "package": { + "name": "package", + "description": "produce multi-language packaging for redis-cloudformation-subscriptionpeering", + "steps": [ + { + "exec": "jsii-pacmak --no-npmignore" + } + ] + } + }, + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"." +} diff --git a/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/LICENSE b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/LICENSE new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/README.md b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/README.md new file mode 100644 index 000000000..25f2ffd7a --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/README.md @@ -0,0 +1,45 @@ +# redis-cloudformation-subscriptionpeering + +> AWS CDK [L1 construct] and data structures for the [AWS CloudFormation Registry] type `Redis::CloudFormation::SubscriptionPeering` v1.0.0. + +[L1 construct]: https://docs.aws.amazon.com/cdk/latest/guide/constructs.html +[AWS CloudFormation Registry]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html + +## Description + +CloudFormation template for Subscription Peering. + +## Usage + +In order to use this library, you will need to activate this AWS CloudFormation Registry type in your account. You can do this via the AWS Management Console or using the [AWS CLI](https://aws.amazon.com/cli/) using the following command: + +```sh +aws cloudformation activate-type \ + --type-name Redis::CloudFormation::SubscriptionPeering \ + --publisher-id 68686e85baeed40bdffe29c5e35183528a2e7174 \ + --type RESOURCE \ + --execution-role-arn ROLE-ARN +``` + +Alternatively: + +```sh +aws cloudformation activate-type \ + --public-type-arn arn:aws:cloudformation:us-east-1::type/resource/68686e85baeed40bdffe29c5e35183528a2e7174/Redis-CloudFormation-SubscriptionPeering \ + --execution-role-arn ROLE-ARN +``` + +You can find more information about activating this type in the [AWS CloudFormation documentation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-public.html). + +## Feedback + +This library is auto-generated and published to all supported programming languages by the [cdklabs/cdk-cloudformation] project based on the API schema published for `Redis::CloudFormation::SubscriptionPeering`. + +* Issues related to this generated library should be [reported here](https://github.com/cdklabs/cdk-cloudformation/issues/new?title=Issue+with+%40cdk-cloudformation%2Fredis-cloudformation-subscriptionpeering+v1.0.0). +* Issues related to `Redis::CloudFormation::SubscriptionPeering` should be reported to the [publisher](undefined). + +[cdklabs/cdk-cloudformation]: https://github.com/cdklabs/cdk-cloudformation + +## License + +Distributed under the Apache-2.0 License. diff --git a/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/package.json b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/package.json new file mode 100644 index 000000000..325ff4629 --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/package.json @@ -0,0 +1,72 @@ +{ + "name": "@cdk-cloudformation/redis-cloudformation-subscriptionpeering", + "description": "CloudFormation template for Subscription Peering.", + "version": "1.0.0-alpha.7", + "author": { + "name": "Amazon Web Services", + "url": "https://aws.amazon.com", + "organization": true + }, + "keywords": [ + "cdk", + "awscdk", + "aws-cdk", + "cloudformation", + "cfn", + "extensions", + "constructs", + "cfn-resources", + "cloudformation-registry", + "l1", + "redis", + "cloudformation", + "subscriptionpeering" + ], + "repository": { + "type": "git", + "url": "https://github.com/cdklabs/cdk-cloudformation.git", + "directory": "packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering" + }, + "main": "lib/index.js", + "types": "lib/index.d.ts", + "publishConfig": { + "access": "public" + }, + "jsii": { + "outdir": "dist", + "targets": { + "java": { + "package": "io.github.cdklabs.cdk_cloudformation.redis_cloudformation_subscriptionpeering", + "maven": { + "groupId": "io.github.cdklabs.cdk_cloudformation", + "artifactId": "redis-cloudformation-subscriptionpeering" + } + }, + "python": { + "distName": "cdk-cloudformation-redis-cloudformation-subscriptionpeering", + "module": "cdk_cloudformation_redis_cloudformation_subscriptionpeering" + }, + "dotnet": { + "namespace": "CdkCloudFormation.RedisCloudFormationSubscriptionPeering", + "packageId": "CdkCloudFormation.RedisCloudFormationSubscriptionPeering" + } + }, + "tsc": { + "outDir": "lib", + "rootDir": "src", + "types": [ + "node" + ] + } + }, + "peerDependencies": { + "aws-cdk-lib": "^2.171.1", + "constructs": "^10.4.2" + }, + "devDependencies": { + "aws-cdk-lib": "2.171.1", + "constructs": "10.4.2" + }, + "license": "Apache-2.0", + "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"." +} diff --git a/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/src/index.ts b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/src/index.ts new file mode 100644 index 000000000..0b6cce4cb --- /dev/null +++ b/packages/@cdk-cloudformation/redis-cloudformation-subscriptionpeering/src/index.ts @@ -0,0 +1,145 @@ +// Generated by cdk-import +import * as cdk from 'aws-cdk-lib'; +import * as constructs from 'constructs'; + +/** + * CloudFormation template for Subscription Peering. + * + * @schema CfnSubscriptionPeeringProps + */ +export interface CfnSubscriptionPeeringProps { + /** + * [Required]. The Base URL where the API calls are sent. + * + * @schema CfnSubscriptionPeeringProps#BaseUrl + */ + readonly baseUrl?: string; + + /** + * [Required]. The ID of the Pro Subscription that will make a peering connection. Example: 163199 + * + * @schema CfnSubscriptionPeeringProps#SubscriptionID + */ + readonly subscriptionId: string; + + /** + * [Optional]. Cloud provider. Example: AWS. Default: 'AWS' + * + * @schema CfnSubscriptionPeeringProps#Provider + */ + readonly provider?: string; + + /** + * [Required for AWS]. Deployment region as defined by cloud provider. Example: us-east-1 + * + * @schema CfnSubscriptionPeeringProps#Region + */ + readonly region?: string; + + /** + * [Required for AWS]. AWS Account uid. Example: 178919255286 + * + * @schema CfnSubscriptionPeeringProps#AwsAccountId + */ + readonly awsAccountId?: string; + + /** + * [Required for AWS]. VPC uid. Example: vpc-00e1a8cdca658ce8c + * + * @schema CfnSubscriptionPeeringProps#VpcId + */ + readonly vpcId?: string; + + /** + * [Optional]. VPC CIDR. Example: '10.10.10.0/24' + * + * @schema CfnSubscriptionPeeringProps#VpcCidr + */ + readonly vpcCidr?: string; + + /** + * [Optional]. List of VPC CIDRs. Example: '[10.10.10.0/24,10.10.20.0/24]' + * + * @schema CfnSubscriptionPeeringProps#VpcCidrs + */ + readonly vpcCidrs?: string[]; + + /** + * [Required for GCP]. VPC project uid. + * + * @schema CfnSubscriptionPeeringProps#VpcProjectUid + */ + readonly vpcProjectUid?: string; + + /** + * [Required for GCP]. VPC network name. + * + * @schema CfnSubscriptionPeeringProps#VpcNetworkName + */ + readonly vpcNetworkName?: string; + +} + +/** + * Converts an object of type 'CfnSubscriptionPeeringProps' to JSON representation. + */ +/* eslint-disable max-len, quote-props */ +export function toJson_CfnSubscriptionPeeringProps(obj: CfnSubscriptionPeeringProps | undefined): Record | undefined { + if (obj === undefined) { return undefined; } + const result = { + 'BaseUrl': obj.baseUrl, + 'SubscriptionID': obj.subscriptionId, + 'Provider': obj.provider, + 'Region': obj.region, + 'AwsAccountId': obj.awsAccountId, + 'VpcId': obj.vpcId, + 'VpcCidr': obj.vpcCidr, + 'VpcCidrs': obj.vpcCidrs?.map(y => y), + 'VpcProjectUid': obj.vpcProjectUid, + 'VpcNetworkName': obj.vpcNetworkName, + }; + // filter undefined values + return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {}); +} +/* eslint-enable max-len, quote-props */ + + +/** + * A CloudFormation `Redis::CloudFormation::SubscriptionPeering` + * + * @cloudformationResource Redis::CloudFormation::SubscriptionPeering + * @stability external + * @link http://unknown-url + */ +export class CfnSubscriptionPeering extends cdk.CfnResource { + /** + * The CloudFormation resource type name for this resource class. + */ + public static readonly CFN_RESOURCE_TYPE_NAME = "Redis::CloudFormation::SubscriptionPeering"; + + /** + * Resource props. + */ + public readonly props: CfnSubscriptionPeeringProps; + + /** + * Attribute `Redis::CloudFormation::SubscriptionPeering.PeeringID` + * @link http://unknown-url + */ + public readonly attrPeeringID: string; + + /** + * Create a new `Redis::CloudFormation::SubscriptionPeering`. + * + * @param scope - scope in which this resource is defined + * @param id - scoped id of the resource + * @param props - resource properties + */ + constructor(scope: constructs.Construct, id: string, props: CfnSubscriptionPeeringProps) { + super(scope, id, { type: CfnSubscriptionPeering.CFN_RESOURCE_TYPE_NAME, properties: toJson_CfnSubscriptionPeeringProps(props)! }); + + this.props = props; + + this.attrPeeringID = cdk.Token.asString(this.getAtt('PeeringID')); + } +} \ No newline at end of file diff --git a/registry/types/redis-cloudformation-prodatabase.json b/registry/types/redis-cloudformation-prodatabase.json new file mode 100644 index 000000000..cc13e5b83 --- /dev/null +++ b/registry/types/redis-cloudformation-prodatabase.json @@ -0,0 +1,16 @@ +{ + "Arn": "arn:aws:cloudformation:us-east-1::type/resource/68686e85baeed40bdffe29c5e35183528a2e7174/Redis-CloudFormation-ProDatabase", + "Type": "RESOURCE", + "TypeName": "Redis::CloudFormation::ProDatabase", + "Description": "CloudFormation template for Pro Database.", + "Schema": "{\n \"typeName\": \"Redis::CloudFormation::ProDatabase\",\n \"description\": \"CloudFormation template for Pro Database.\",\n \"tagging\": {\n \"taggable\": false\n },\n \"typeConfiguration\": {\n \"properties\": {\n \"RedisAccess\": {\n \"$ref\": \"#/definitions/RedisAccess\"\n }\n },\n \"additionalProperties\": false,\n \"required\": [\n \"RedisAccess\"\n ]\n },\n \"definitions\": {\n \"RedisAccess\": {\n \"description\": \"Properties needed to access Redis.\",\n \"type\": \"object\",\n \"properties\": {\n \"xapikey\": {\n \"description\": \"x_api_key\",\n \"type\": \"string\"\n },\n \"xapisecretkey\": {\n \"description\": \"x_api_secret_key\",\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"properties\": {\n \"DatabaseID\": {\n \"type\": \"string\",\n \"description\": \"Database ID. Populated with value within the handlers.py.\",\n \"default\": \"Overwrite this value\"\n },\n \"BaseUrl\": {\n \"type\": \"string\",\n \"description\": \"[Required]. The Base URL where the API calls are sent.\"\n },\n \"SubscriptionID\": {\n \"type\": \"string\",\n \"description\": \"[Required]. The Subscription ID under which the Database is created.\",\n \"default\": \"Overwrite this value\"\n },\n \"DryRun\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Example: false. Default: 'false'.\"\n },\n \"DatabaseName\": {\n \"type\": \"string\",\n \"description\": \"[Required]. Database name (Database name must be up to 40 characters long, include only letters, digits, or hyphen ('-'), start with a letter, and end with a letter or digit). Example: Redis-database-example\"\n },\n \"Protocol\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Database protocol: either 'redis' or 'memcached'. Default: 'redis'\"\n },\n \"Port\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. TCP port on which the database is available (10000-19999). Generated automatically if omitted. Example: 10000\"\n },\n \"DatasetSizeInGb\": {\n \"type\": \"string\",\n \"description\": \"[Required]. The maximum amount of data in the dataset for this specific database is in GB. You can not set both datasetSizeInGb and totalMemoryInGb. if 'replication' is true, the database's total memory will be twice as large as the datasetSizeInGb.if 'replication' is false, the database's total memory of the database will be the datasetSizeInGb value. Minimum: 0.1. ExclusiveMinimum: false. Example: 1\"\n },\n \"RespVersion\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. RESP version must be compatible with Redis version. Example: resp3. Allowed values: resp2/resp3.\"\n },\n \"SupportOSSClusterApi\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Support Redis open-source (OSS) Cluster API. Default: 'false'\"\n },\n \"UseExternalEndpointForOSSClusterApi\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Should use external endpoint for open-source (OSS) Cluster API. Can only be enabled if OSS Cluster API support is enabled'. Default: 'false'\"\n },\n \"DataPersistence\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Rate of database data persistence (in persistent storage). List of options: [ none, aof-every-1-second, aof-every-write, snapshot-every-1-hour, snapshot-every-6-hours, snapshot-every-12-hours ]. Example: none. Default: 'none'.\"\n },\n \"DataEvictionPolicy\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Data items eviction method. List of options: [ allkeys-lru, allkeys-lfu, allkeys-random, volatile-lru, volatile-lfu, volatile-random, volatile-ttl, noeviction ]. Default: 'volatile-lru'\"\n },\n \"Replication\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Databases replication. Default: 'true'\"\n },\n \"Replica\": {\n \"type\": \"string\",\n \"description\": \"[Optional. Input as JSON]. Replica Of configuration\"\n },\n \"ThroughputMeasurement\": {\n \"type\": \"string\",\n \"description\": \"[Optional. Input as JSON]. Throughput measurement method. Default: 25000 ops/sec\"\n },\n \"LocalThroughputMeasurement\": {\n \"type\": \"string\",\n \"description\": \"[Optional. Input as JSON]. Throughput measurement for an active-active subscription\"\n },\n \"AverageItemSizeInBytes\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Relevant only to ram-and-flash clusters. Estimated average size (measured in bytes) of the items stored in the database. Default: 1000\"\n },\n \"RemoteBackup\": {\n \"type\": \"string\",\n \"description\": \"[Optional. Input as JSON]. Database remote backup configuration\"\n },\n \"SourceIp\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. Example value: '['192.168.10.0/32', '192.168.12.0/24']'\"\n },\n \"ClientTlsCertificates\": {\n \"type\": \"string\",\n \"description\": \"[Optional. Input as a JSON]. A list of TLS/SSL certificates (public keys) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty list is received, SSL certificates will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\"\n },\n \"EnableTls\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. When 'true', requires TLS authentication for all connections (mTLS with valid clientSslCertificate, regular TLS when the clientSslCertificate is not provided. Default: 'false'\"\n },\n \"Password\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated. Can only be set if Database Protocol is REDIS\"\n },\n \"SaslUsername\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Memcached (SASL) Username to access the database. If omitted, the username will be set to a 'mc-' prefix followed by a random 5 character long alphanumeric. Can only be set if Database Protocol is MEMCACHED\"\n },\n \"SaslPassword\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Memcached (SASL) Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated. Can only be set if Database Protocol is MEMCACHED\"\n },\n \"Alerts\": {\n \"type\": \"string\",\n \"description\": \"[Optional. Input as JSON]. Redis database alerts.\"\n },\n \"Modules\": {\n \"type\": \"string\",\n \"description\": \"[Optional. Input as JSON]. Redis modules to be provisioned in the database.\"\n },\n \"QueryPerformanceFactor\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. The query performance factor adds extra compute power specifically for search and query. For databases with search and query, you can increase your search queries per second by the selected factor. Example: 2x\"\n },\n \"RegexRules\": {\n \"type\": \"string\",\n \"description\": \"[Optional. Can only be modified upon Update request from a Cloud Formation stack]. Shard regex rules. Relevant only for a sharded database.\"\n },\n \"EnableDefaultUser\": {\n \"type\": \"string\",\n \"description\": \"[Optional. Can only be modified upon Update request from a Cloud Formation stack]. When 'true', enables connecting to the database with the 'default' user. Default: 'true'. Can only be set if Database Protocol is REDIS\"\n },\n \"OnDemandBackup\": {\n \"type\": \"string\",\n \"description\": \"[Required to enable Backup. Can only be modified upon Update request from a Cloud Formation stack. Requires 'remoteBackup' to be active]. If 'true', creates a backup of the current database and disables all other parameters set for Update except for 'RegionName'. Default 'false'.\"\n },\n \"RegionName\": {\n \"type\": \"string\",\n \"description\": \"[Optional. Can only be modified upon Update request from a Cloud Formation stack. Requires 'OnDemandBackup' set to 'true']. Name of cloud provider region where the local database is located. When backing up an active-active database, backup is done separately for each local database at a specified region. Example for active-active database: 'us-east-1'. For single-region deployment, the value MUST be 'null'.\"\n },\n \"OnDemandImport\": {\n \"type\": \"string\",\n \"description\": \"[Required to enable Import. Can only be modified upon Update request from a Cloud Formation stack]. If 'true', imports the previous created backup of a database and disables all other parameters set for Update except for 'SourceType' and 'ImportFromUri'. Default 'false'.\"\n },\n \"SourceType\": {\n \"type\": \"string\",\n \"description\": \"[Required for Import. Can only be modified upon Update request from a Cloud Formation stack. Requires 'OnDemandImport' set to 'true']. Type of storage source from which to import the database file (RDB files) or data (Redis connection). List of options: [ http, redis, ftp, aws-s3, azure-blob-storage, google-blob-storage ].\"\n },\n \"ImportFromUri\": {\n \"type\": \"string\",\n \"description\": \"[Required for Import. Can only be modified upon Update request from a Cloud Formation stack. Requires 'OnDemandImport' set to 'true']. One or more URIs to source data files or Redis databases, as appropriate to specified source type (example: ['http://mydomain.com/redis-backup-file1', 'http://mydomain.com/redis-backup-file2'])\"\n }\n },\n \"handlers\": {\n \"create\": {\n \"permissions\": [\n \"cloudformation:RegisterType\",\n \"cloudformation:SetTypeDefaultVersion\",\n \"cloudformation:PublishType\",\n \"cloudformation:DescribeTypeRegistration\",\n \"cloudformation:DeregisterType\",\n \"s3:GetObject\",\n \"s3:PutObject\",\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ]\n },\n \"read\": {\n \"permissions\": [\n \"cloudformation:RegisterType\",\n \"cloudformation:SetTypeDefaultVersion\",\n \"cloudformation:PublishType\",\n \"cloudformation:DescribeTypeRegistration\",\n \"cloudformation:DeregisterType\",\n \"s3:GetObject\",\n \"s3:PutObject\",\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ]\n },\n \"update\": {\n \"permissions\": [\n \"cloudformation:RegisterType\",\n \"cloudformation:SetTypeDefaultVersion\",\n \"cloudformation:PublishType\",\n \"cloudformation:DescribeTypeRegistration\",\n \"cloudformation:DeregisterType\",\n \"s3:GetObject\",\n \"s3:PutObject\",\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ]\n },\n \"delete\": {\n \"permissions\": [\n \"cloudformation:RegisterType\",\n \"cloudformation:SetTypeDefaultVersion\",\n \"cloudformation:PublishType\",\n \"cloudformation:DescribeTypeRegistration\",\n \"cloudformation:DeregisterType\",\n \"s3:GetObject\",\n \"s3:PutObject\",\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ]\n },\n \"list\": {\n \"permissions\": [\n \"cloudformation:RegisterType\",\n \"cloudformation:SetTypeDefaultVersion\",\n \"cloudformation:PublishType\",\n \"cloudformation:DescribeTypeRegistration\",\n \"cloudformation:DeregisterType\",\n \"s3:GetObject\",\n \"s3:PutObject\",\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ]\n }\n },\n \"additionalProperties\": false,\n \"required\": [\n \"SubscriptionID\",\n \"DatasetSizeInGb\",\n \"DatabaseName\"\n ],\n \"createOnlyProperties\": [\n \"/properties/BaseUrl\",\n \"/properties/Protocol\",\n \"/properties/Port\",\n \"/properties/LocalThroughputMeasurement\",\n \"/properties/AverageItemSizeInBytes\",\n \"/properties/Modules\"\n ],\n \"readOnlyProperties\": [\n \"/properties/DatabaseID\"\n ],\n \"primaryIdentifier\": [\"/properties/DatabaseID\"]\n }\n ", + "ProvisioningType": "FULLY_MUTABLE", + "DeprecatedStatus": "LIVE", + "RequiredActivatedTypes": [], + "Visibility": "PUBLIC", + "TimeCreated": "2024-11-30T22:24:11.510Z", + "ConfigurationSchema": "{\n \"properties\": {\n \"RedisAccess\": {\n \"$ref\": \"#/definitions/RedisAccess\"\n }\n },\n \"additionalProperties\": false,\n \"required\": [\n \"RedisAccess\"\n ],\n \"definitions\": {\n \"RedisAccess\": {\n \"description\": \"Properties needed to access Redis.\",\n \"type\": \"object\",\n \"properties\": {\n \"xapikey\": {\n \"description\": \"x_api_key\",\n \"type\": \"string\"\n },\n \"xapisecretkey\": {\n \"description\": \"x_api_secret_key\",\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"typeName\": \"Redis::CloudFormation::ProDatabase\"\n}", + "PublisherId": "68686e85baeed40bdffe29c5e35183528a2e7174", + "LatestPublicVersion": "1.0.0", + "IsActivated": false +} \ No newline at end of file diff --git a/registry/types/redis-cloudformation-prosubscription.json b/registry/types/redis-cloudformation-prosubscription.json new file mode 100644 index 000000000..622029ed7 --- /dev/null +++ b/registry/types/redis-cloudformation-prosubscription.json @@ -0,0 +1,16 @@ +{ + "Arn": "arn:aws:cloudformation:us-east-1::type/resource/68686e85baeed40bdffe29c5e35183528a2e7174/Redis-CloudFormation-ProSubscription", + "Type": "RESOURCE", + "TypeName": "Redis::CloudFormation::ProSubscription", + "Description": "CloudFormation template for Pro Subscription.", + "Schema": "{\n \"typeName\": \"Redis::CloudFormation::ProSubscription\",\n \"description\": \"CloudFormation template for Pro Subscription.\",\n \"tagging\": {\n \"taggable\": false\n },\n \"typeConfiguration\": {\n \"properties\": {\n \"RedisAccess\": {\n \"$ref\": \"#/definitions/RedisAccess\"\n }\n },\n \"additionalProperties\": false,\n \"required\": [\n \"RedisAccess\"\n ]\n},\n\"definitions\": {\n \"RedisAccess\": {\n \"description\": \"Properties needed to access Redis.\",\n \"type\": \"object\",\n \"properties\": {\n \"xapikey\": {\n \"description\": \"x_api_key\",\n \"type\": \"string\"\n },\n \"xapisecretkey\": {\n \"description\": \"x_api_secret_key\",\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"properties\": {\n \"SubscriptionID\": {\n \"type\": \"string\",\n \"description\": \"Subscription ID. Populated with value within the handlers.py.\",\n \"default\": \"Overwrite this value\"\n },\n \"BaseUrl\": {\n \"type\": \"string\",\n \"description\": \"[Required]. The Base URL where the API calls are sent.\"\n },\n \"SubscriptionName\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Subscription name. Example: My new subscription\"\n },\n \"DryRun\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Example: false. Default: 'false'.\"\n },\n \"DeploymentType\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Creates a single region subscription. Example: single-region\"\n },\n \"PaymentMethod\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Payment method for the requested subscription. If credit card is specified, the payment method Id must be defined. Default: 'credit-card'\"\n },\n \"PaymentMethodId\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. A valid payment method that was pre-defined in the current account. This value is Optional if 'paymentMethod' is 'marketplace', but Required for all other account types.\"\n },\n \"MemoryStorage\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Optional. Memory storage preference: either 'ram' or a combination of 'ram-and-flash'. Example: ram. Default: 'ram'\"\n },\n \"CloudProviders\": {\n \"type\": \"string\",\n \"description\": \"[Required as JSON]. Cloud hosting & networking details. Example: [{\\\"regions\\\": [{\\\"region\\\": \\\"us-east-1\\\", \\\"networking\\\": {}}]}]\"\n },\n \"RedisVersion\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. If specified, the redisVersion defines the Redis version of the databases in the subscription. If omitted, the Redis version will be the default (available in 'GET /subscriptions/redis-versions'). Example: 7.2. Default = 'default'\"\n }\n },\n \"handlers\": {\n \"create\": {\n \"permissions\": []\n },\n \"read\": {\n \"permissions\": [\n \"initech:DescribeReport\"\n ]\n },\n \"update\": {\n \"permissions\": [\n \"initech:UpdateReport\"\n ]\n },\n \"delete\": {\n \"permissions\": []\n },\n \"list\": {\n \"permissions\": [\n \"initech:ListReports\"\n ]\n }\n },\n \"additionalProperties\": false,\n \"required\": [\n \"CloudProviders\"\n ],\n \"createOnlyProperties\": [\n \"/properties/BaseUrl\",\n \"/properties/DryRun\",\n \"/properties/DeploymentType\",\n \"/properties/PaymentMethod\",\n \"/properties/PaymentMethodId\",\n \"/properties/MemoryStorage\",\n \"/properties/CloudProviders\",\n \"/properties/RedisVersion\"\n ],\n \"readOnlyProperties\": [\n \"/properties/SubscriptionID\"\n ],\n \"primaryIdentifier\": [\"/properties/SubscriptionID\"]\n}\n", + "ProvisioningType": "FULLY_MUTABLE", + "DeprecatedStatus": "LIVE", + "RequiredActivatedTypes": [], + "Visibility": "PUBLIC", + "TimeCreated": "2024-11-29T08:05:00.414Z", + "ConfigurationSchema": "{\n \"properties\": {\n \"RedisAccess\": {\n \"$ref\": \"#/definitions/RedisAccess\"\n }\n },\n \"additionalProperties\": false,\n \"required\": [\n \"RedisAccess\"\n ],\n \"definitions\": {\n \"RedisAccess\": {\n \"description\": \"Properties needed to access Redis.\",\n \"type\": \"object\",\n \"properties\": {\n \"xapikey\": {\n \"description\": \"x_api_key\",\n \"type\": \"string\"\n },\n \"xapisecretkey\": {\n \"description\": \"x_api_secret_key\",\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"typeName\": \"Redis::CloudFormation::ProSubscription\"\n}", + "PublisherId": "68686e85baeed40bdffe29c5e35183528a2e7174", + "LatestPublicVersion": "1.0.0", + "IsActivated": false +} \ No newline at end of file diff --git a/registry/types/redis-cloudformation-subscriptionpeering.json b/registry/types/redis-cloudformation-subscriptionpeering.json new file mode 100644 index 000000000..6d5e3c8cf --- /dev/null +++ b/registry/types/redis-cloudformation-subscriptionpeering.json @@ -0,0 +1,16 @@ +{ + "Arn": "arn:aws:cloudformation:us-east-1::type/resource/68686e85baeed40bdffe29c5e35183528a2e7174/Redis-CloudFormation-SubscriptionPeering", + "Type": "RESOURCE", + "TypeName": "Redis::CloudFormation::SubscriptionPeering", + "Description": "CloudFormation template for Subscription Peering.", + "Schema": "{\n \"typeName\": \"Redis::CloudFormation::SubscriptionPeering\",\n \"description\": \"CloudFormation template for Subscription Peering.\",\n \"tagging\": {\n \"taggable\": false\n },\n \"typeConfiguration\": {\n \"properties\": {\n \"RedisAccess\": {\n \"$ref\": \"#/definitions/RedisAccess\"\n }\n },\n \"additionalProperties\": false,\n \"required\": [\n \"RedisAccess\"\n ]\n },\n \"definitions\": {\n \"RedisAccess\": {\n \"description\": \"Properties needed to access Redis.\",\n \"type\": \"object\",\n \"properties\": {\n \"xapikey\": {\n \"description\": \"x_api_key\",\n \"type\": \"string\"\n },\n \"xapisecretkey\": {\n \"description\": \"x_api_secret_key\",\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"properties\": {\n \"PeeringID\": {\n \"type\": \"string\",\n \"description\": \"The ID of the Subscription Peering.\",\n \"default\": \"Overwrite this value\"\n },\n \"BaseUrl\": {\n \"type\": \"string\",\n \"description\": \"[Required]. The Base URL where the API calls are sent.\"\n },\n \"SubscriptionID\": {\n \"type\": \"string\",\n \"description\": \"[Required]. The ID of the Pro Subscription that will make a peering connection. Example: 163199\"\n },\n \"Provider\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. Cloud provider. Example: AWS. Default: 'AWS'\",\n \"default\": \"\"\n },\n \"Region\": {\n \"type\": \"string\",\n \"description\": \"[Required for AWS]. Deployment region as defined by cloud provider. Example: us-east-1\"\n },\n \"AwsAccountId\": {\n \"type\": \"string\",\n \"description\": \"[Required for AWS]. AWS Account uid. Example: 178919255286\"\n },\n \"VpcId\": {\n \"type\": \"string\",\n \"description\": \"[Required for AWS]. VPC uid. Example: vpc-00e1a8cdca658ce8c\"\n },\n \"VpcCidr\": {\n \"type\": \"string\",\n \"description\": \"[Optional]. VPC CIDR. Example: '10.10.10.0/24'\"\n },\n \"VpcCidrs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"insertionOrder\": true,\n \"description\": \"[Optional]. List of VPC CIDRs. Example: '[10.10.10.0/24,10.10.20.0/24]'\"\n },\n \"VpcProjectUid\": {\n \"type\":\t\"string\",\n \"description\": \"[Required for GCP]. VPC project uid.\"\n },\n \"VpcNetworkName\": {\n \"type\":\t\"string\",\n \"description\": \"[Required for GCP]. VPC network name.\"\n }\n },\n \"handlers\": {\n \"create\": {\n \"permissions\": [ \n \"cloudformation:RegisterType\",\n \"cloudformation:SetTypeDefaultVersion\",\n \"cloudformation:PublishType\",\n \"cloudformation:DescribeTypeRegistration\",\n \"cloudformation:DeregisterType\",\n \"s3:GetObject\",\n \"s3:PutObject\",\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ]\n },\n \"read\": {\n \"permissions\": [\n \"cloudformation:RegisterType\",\n \"cloudformation:SetTypeDefaultVersion\",\n \"cloudformation:PublishType\",\n \"cloudformation:DescribeTypeRegistration\",\n \"cloudformation:DeregisterType\",\n \"s3:GetObject\",\n \"s3:PutObject\",\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ]\n },\n \"update\": {\n \"permissions\": [\n \"cloudformation:RegisterType\",\n \"cloudformation:SetTypeDefaultVersion\",\n \"cloudformation:PublishType\",\n \"cloudformation:DescribeTypeRegistration\",\n \"cloudformation:DeregisterType\",\n \"s3:GetObject\",\n \"s3:PutObject\",\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\" \n ]\n },\n \"delete\": {\n \"permissions\": [ \n \"cloudformation:RegisterType\",\n \"cloudformation:SetTypeDefaultVersion\",\n \"cloudformation:PublishType\",\n \"cloudformation:DescribeTypeRegistration\",\n \"cloudformation:DeregisterType\",\n \"s3:GetObject\",\n \"s3:PutObject\",\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\" \n ]\n },\n \"list\": {\n \"permissions\": [\n \"cloudformation:RegisterType\",\n \"cloudformation:SetTypeDefaultVersion\",\n \"cloudformation:PublishType\",\n \"cloudformation:DescribeTypeRegistration\",\n \"cloudformation:DeregisterType\",\n \"s3:GetObject\",\n \"s3:PutObject\",\n \"logs:CreateLogGroup\",\n \"logs:CreateLogStream\",\n \"logs:PutLogEvents\"\n ]\n }\n },\n \"additionalProperties\": false,\n \"required\": [\n \"SubscriptionID\"\n ],\n \"createOnlyProperties\": [\n \"/properties/BaseUrl\",\n \"/properties/Provider\",\n \"/properties/Region\",\n \"/properties/AwsAccountId\",\n \"/properties/VpcId\",\n \"/properties/VpcProjectUid\",\n \"/properties/VpcNetworkName\"\n ],\n \"readOnlyProperties\": [\n \"/properties/PeeringID\"\n ],\n \"primaryIdentifier\": [\"/properties/PeeringID\"]\n}\n ", + "ProvisioningType": "FULLY_MUTABLE", + "DeprecatedStatus": "LIVE", + "RequiredActivatedTypes": [], + "Visibility": "PUBLIC", + "TimeCreated": "2024-11-30T14:53:36.846Z", + "ConfigurationSchema": "{\n \"properties\": {\n \"RedisAccess\": {\n \"$ref\": \"#/definitions/RedisAccess\"\n }\n },\n \"additionalProperties\": false,\n \"required\": [\n \"RedisAccess\"\n ],\n \"definitions\": {\n \"RedisAccess\": {\n \"description\": \"Properties needed to access Redis.\",\n \"type\": \"object\",\n \"properties\": {\n \"xapikey\": {\n \"description\": \"x_api_key\",\n \"type\": \"string\"\n },\n \"xapisecretkey\": {\n \"description\": \"x_api_secret_key\",\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"typeName\": \"Redis::CloudFormation::SubscriptionPeering\"\n}", + "PublisherId": "68686e85baeed40bdffe29c5e35183528a2e7174", + "LatestPublicVersion": "1.0.0", + "IsActivated": false +} \ No newline at end of file