diff --git a/.github/workflows/changelog-enforcer.yml b/.github/workflows/changelog-enforcer.yml index 10e52026f..cfa6b4fee 100644 --- a/.github/workflows/changelog-enforcer.yml +++ b/.github/workflows/changelog-enforcer.yml @@ -8,7 +8,7 @@ jobs: changelog: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3.5.2 + - uses: actions/checkout@v4.1.1 - uses: dangoslen/changelog-enforcer@v3 with: changeLogPath: 'CHANGELOG.md' diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index ef31d3687..af639c37e 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -8,7 +8,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3.5.2 + uses: actions/checkout@v4.1.1 - name: Build docker image working-directory: common/jenkins-agents/golang/docker @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3.5.2 + uses: actions/checkout@v4.1.1 - name: Build docker image working-directory: common/jenkins-agents/jdk/docker @@ -40,7 +40,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3.5.2 + uses: actions/checkout@v4.1.1 - name: Build docker image working-directory: common/jenkins-agents/nodejs12/docker @@ -56,7 +56,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3.5.2 + uses: actions/checkout@v4.1.1 - name: Build docker image working-directory: common/jenkins-agents/nodejs16/docker @@ -72,7 +72,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3.5.2 + uses: actions/checkout@v4.1.1 - name: Build docker image working-directory: common/jenkins-agents/nodejs18/docker @@ -88,7 +88,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3.5.2 + uses: actions/checkout@v4.1.1 - name: Build docker image working-directory: common/jenkins-agents/python/docker @@ -101,20 +101,33 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3.5.2 + uses: actions/checkout@v4.1.1 - name: Build docker image working-directory: common/jenkins-agents/terraform/docker run: | docker build --tag agent-terraform-test-ubi8 --file Dockerfile.ubi8 . + jenkins-agent-terraform-2306-ubi8: + name: Jenkins agent Terraform 2306 (UBI8) + runs-on: ubuntu-22.04 + steps: + - + name: Checkout repository + uses: actions/checkout@v4.1.1 + - + name: Build docker image + working-directory: common/jenkins-agents/terraform-2306/docker + run: | + docker build --tag agent-terraform-2306-test-ubi8 --file Dockerfile.ubi8 . + jenkins-agent-scala-ubi8: name: Jenkins agent Scala (UBI8) runs-on: ubuntu-22.04 steps: - name: Checkout repository - uses: actions/checkout@v3.5.2 + uses: actions/checkout@v4.1.1 - name: Build docker image working-directory: common/jenkins-agents/scala/docker diff --git a/CHANGELOG.md b/CHANGELOG.md index fcf4edcf4..ce6b665fb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,21 +1,54 @@ # Changelog -## Unreleased -- Generate one xml report per spec and merge them later ([#898](https://github.com/opendevstack/ods-quickstarters/pull/898)) +### Added +- Added secret scanning in docker plain ([#963](https://github.com/opendevstack/ods-quickstarters/pull/963)) + +### Modified + +### Fixed +- Maintenance for Golang Agent and QuickStarter ([#955](https://github.com/opendevstack/ods-quickstarters/issues/955)) +- jenkins agents can not import private keys into gpg keyring to use with helm secrets ([#945](https://github.com/opendevstack/ods-quickstarters/issues/945)) +- Streamlit quickstarter build fails to import nexus host certificates into truststore ([#951](https://github.com/opendevstack/ods-quickstarters/issues/951)) + +## [4.3.0] - 2023-07-13 + +### Added - Addition of streamlit quickstarter ([#891](https://github.com/opendevstack/ods-quickstarters/issues/891)) +- Cypress Cloud integration and switch to nodejs 18 ([#935](https://github.com/opendevstack/ods-quickstarters/pull/935)) +- Provide build agent for Node.js 18 ([#794](https://github.com/opendevstack/ods-quickstarters/issues/794)) + +### Modified +- Generate one xml report per spec and merge them later ([#898](https://github.com/opendevstack/ods-quickstarters/pull/898)) - Removal of Centos agents ([#1209](https://github.com/opendevstack/ods-core/issues/1209)) +- Update of Python agent, Python, Streamlit and Jupyter quickstarters ([#902](https://github.com/opendevstack/ods-quickstarters/issues/902)) +- inf-terraform-aws: remove cloudformation stack from default quickstarter ([#934](https://github.com/opendevstack/ods-quickstarters/pull/934)) +- inf-terraform-aws: switch from shared statefile location to dedicated ([#932](https://github.com/opendevstack/ods-quickstarters/pull/932)) +- Change sonar-scan.json and release manager template to use any project ([#933](https://github.com/opendevstack/ods-quickstarters/pull/933)) +- Add binutils package to jdk-17 agent ([#929](https://github.com/opendevstack/ods-core/issues/929)) +- inf-terraform-[aws|azure], bump inspec-aws (v1.83.60) & inspec-azure (v1.118.41) library versions, drop use of symbolized keys in helper yaml files ([#927](https://github.com/opendevstack/ods-quickstarters/pull/927)) +- inf-terraform-[aws|azure], jenkins-agent-terraform-2306 with tooling update (ruby 3.2.2, python 3.11) ([#923](https://github.com/opendevstack/ods-quickstarters/pull/923)) +- Update python agent, pyhon, streamlit and jupyter quickstarters to 3.11 ([#924](https://github.com/opendevstack/ods-quickstarters/pull/924)) +- Upgrade to Cypress 12 ([#908](https://github.com/opendevstack/ods-quickstarters/pull/908)) +- Update scala agent and be-scala-play quickstarter ([#919](https://github.com/opendevstack/ods-quickstarters/pull/919)) +- Update Ionic Quickstarter ([#917](https://github.com/opendevstack/ods-quickstarters/pull/917)) +- Update Go quickstarter to Go 1.20 and align version of golangci-lint and go-junit-report ([#915](https://github.com/opendevstack/ods-quickstarters/pull/915)) +- Rename maven-agent to jdk-agent, update springboot & spock-geb quickstarters ([#901](https://github.com/opendevstack/ods-quickstarters/pull/901)) +- Update Angular and TypeScript quickstarters ([#910](https://github.com/opendevstack/ods-quickstarters/pull/910)) +- Upgrade be-gateway-nginx to rocky 1.21 openresty/nginx ([#883](https://github.com/opendevstack/ods-quickstarters/pull/883)) +- Set default rollout strategy to recreate ([#926](https://github.com/opendevstack/ods-quickstarters/issues/926)) + +### Fixed - Fix oauth-proxy sidecar image ([#862](https://github.com/opendevstack/ods-quickstarters/issues/862)) -- Upgrade be-gateway-nginx from fedora-rpm to rocky and from version 1.19 to 1.21 ([#880](https://github.com/opendevstack/ods-quickstarters/issues/880)) -- Upgraded to Cypress 12, improve login support, add video support ([#899](https://github.com/opendevstack/ods-quickstarters/issues/899)) -- Fix inf-terraform-agent bundler complaining about /tmp permissions ([#903](https://github.com/opendevstack/ods-quickstarters/pull/903)) -- Fix nodejs 18 build by removing option always-auth ([#905](https://github.com/opendevstack/ods-quickstarters/issues/905)) +- Fix Jenkinsfile params in StreamLit ([#941](https://github.com/opendevstack/ods-quickstarters/pull/941)) ([#939](https://github.com/opendevstack/ods-quickstarters/pull/939)) +- Fixed Angular build for error "Unknown argument: sourceMap" ([#940](https://github.com/opendevstack/ods-quickstarters/pull/940)) +- Fix mismatch on java version in base and jdk agents ([#916](https://github.com/opendevstack/ods-quickstarters/pull/916)) +- TypeScript QS fails to build ([#897](https://github.com/opendevstack/ods-quickstarters/issues/897)) +- Issues with agent permision in new OCP version ([#901](https://github.com/opendevstack/ods-quickstarters/pull/901)) - Removed protractor-related configuration from `ini.sh` in Ionic quickstarter ([#885](https://github.com/opendevstack/ods-quickstarters/issues/885)) -- Upgrade packages in Angular and TypeScript quickstarters, fix nodejs18 agent error with auth in npm9 ([#885](https://github.com/opendevstack/ods-quickstarters/issues/885)) -- Update Go quickstarter to Go 1.20 and align version of golangci-lint and go-junit-report ([#877](https://github.com/opendevstack/ods-quickstarters/issues/877)) -- Fix mismatch on java versions in base agent and jdk agent ([#916](https://github.com/opendevstack/ods-quickstarters/pull/916)) -- Scala maintenance ([#879](https://github.com/opendevstack/ods-quickstarters/issues/879)) -- Ionic maintenance ([#899](https://github.com/opendevstack/ods-quickstarters/issues/899)) -- Update of Maven agent, Java and Spock/Geb quickstarter ([#878](https://github.com/opendevstack/ods-quickstarters/issues/878)) +- change /tmp permissions in inf-terraform-agent ([#903](https://github.com/opendevstack/ods-quickstarters/pull/903)) +- nodejs 18 agent builds fail ([#905](https://github.com/opendevstack/ods-quickstarters/issues/905)) +- Fix imagePullPolicy issue when verifying the image ([#874](https://github.com/opendevstack/ods-quickstarters/issues/874)) +- Fix Release manager Jenkinsfile ([#943](https://github.com/opendevstack/ods-quickstarters/pull/943)) ## [4.1] - 2022-11-17 diff --git a/Makefile b/Makefile index 21fa61976..8b4304fde 100644 --- a/Makefile +++ b/Makefile @@ -131,6 +131,22 @@ start-jenkins-agent-terraform-build: .PHONY: start-jenkins-agent-terraform-build +# JENKINS AGENT TERRAFORM-2306 +## Install or update Jenkins Terraform agent resources. +install-jenkins-agent-terraform-2306: apply-jenkins-agent-terraform-build-2306 start-jenkins-agent-terraform-build-2306 +.PHONY: install-jenkins-agent-terraform-2306 + +## Update OpenShift resources related to Jenkins Terraform agent image 2306. +apply-jenkins-agent-terraform-build-2306: + cd common/jenkins-agents/terraform-2306/ocp-config && tailor apply --namespace $(ODS_NAMESPACE) +.PHONY: apply-jenkins-agent-terraform-build-2306 + +## Start build of BuildConfig "jenkins-agent-terraform-2306". +start-jenkins-agent-terraform-build-2306: + oc -n $(ODS_NAMESPACE) start-build jenkins-agent-terraform-2306 --follow +.PHONY: start-jenkins-agent-terraform-build-2306 + + # HELP # Based on https://gist.github.com/prwhite/8168133#gistcomment-2278355. help: diff --git a/be-fe-mono-repo-plain/files/.pre-commit-config.yaml b/be-fe-mono-repo-plain/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/be-fe-mono-repo-plain/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/be-gateway-nginx/files/.pre-commit-config.yaml b/be-gateway-nginx/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/be-gateway-nginx/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/be-golang-plain/files/.pre-commit-config.yaml b/be-golang-plain/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/be-golang-plain/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/be-golang-plain/testdata/golden/sonar-scan.json b/be-golang-plain/testdata/golden/sonar-scan.json index dc4833779..d82f45d73 100644 --- a/be-golang-plain/testdata/golden/sonar-scan.json +++ b/be-golang-plain/testdata/golden/sonar-scan.json @@ -1,13 +1,12 @@ { - "key": "unitt-golang-iq-test", - "organization": "default-organization", - "name": "unitt-golang-iq-test", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "isFavorite": false, "visibility": "public", "extensions": [], "qualityProfiles": [ { - "name": "Sonar way", + "name": "{{.SonarQualityProfile}}", "language": "go", "deleted": false } @@ -18,8 +17,8 @@ }, "breadcrumbs": [ { - "key": "unitt-golang-iq-test", - "name": "unitt-golang-iq-test", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "qualifier": "TRK" } ] diff --git a/be-java-springboot/files/.pre-commit-config.yaml b/be-java-springboot/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/be-java-springboot/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/be-java-springboot/testdata/golden/sonar-scan.json b/be-java-springboot/testdata/golden/sonar-scan.json index dda8c98fc..e7ecc4ec3 100644 --- a/be-java-springboot/testdata/golden/sonar-scan.json +++ b/be-java-springboot/testdata/golden/sonar-scan.json @@ -1,13 +1,12 @@ { - "key": "unitt-springboot", - "organization": "default-organization", - "name": "unitt-springboot", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "isFavorite": false, "visibility": "public", "extensions": [], "qualityProfiles": [ { - "name": "Sonar way", + "name": "{{.SonarQualityProfile}}", "language": "java", "deleted": false } @@ -18,8 +17,8 @@ }, "breadcrumbs": [ { - "key": "unitt-springboot", - "name": "unitt-springboot", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "qualifier": "TRK" } ] diff --git a/be-python-flask/Jenkinsfile.template b/be-python-flask/Jenkinsfile.template index 1e6e11a3c..4fe1df37a 100644 --- a/be-python-flask/Jenkinsfile.template +++ b/be-python-flask/Jenkinsfile.template @@ -29,7 +29,7 @@ def stageTestSuite(def context) { stage('Prepare Test Suite') { sh """ - python3.9 -m venv testsuite + python3.11 -m venv testsuite . ./testsuite/bin/activate pip install -r tests_requirements.txt pip check @@ -50,7 +50,7 @@ def stageTestSuite(def context) { def status = sh( script: """ . ./testsuite/bin/activate - PYTHONPATH=src python3.9 -m pytest --junitxml=tests.xml -o junit_family=xunit2 --cov-report term-missing --cov-report xml --cov=src -o testpaths=tests + PYTHONPATH=src python3.11 -m pytest --junitxml=tests.xml -o junit_family=xunit2 --cov-report term-missing --cov-report xml --cov=src -o testpaths=tests mv tests.xml ${testLocation} mv coverage.xml ${coverageLocation} mv .coverage ${coverageLocation} diff --git a/be-python-flask/files/.pre-commit-config.yaml b/be-python-flask/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/be-python-flask/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/be-python-flask/files/docker/Dockerfile b/be-python-flask/files/docker/Dockerfile index 463aa2708..66a1b5e30 100644 --- a/be-python-flask/files/docker/Dockerfile +++ b/be-python-flask/files/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.access.redhat.com/ubi9/python-39 +FROM registry.access.redhat.com/ubi9/python-311 ARG nexusHostWithBasicAuth ARG nexusHostWithoutScheme diff --git a/be-python-flask/files/requirements.txt b/be-python-flask/files/requirements.txt index 229550e65..9e4644e18 100644 --- a/be-python-flask/files/requirements.txt +++ b/be-python-flask/files/requirements.txt @@ -1,2 +1,2 @@ gunicorn==20.1.0 -flask==2.2.2 +flask==2.3.2 diff --git a/be-python-flask/files/tests_requirements.txt b/be-python-flask/files/tests_requirements.txt index f32611857..408da5e34 100644 --- a/be-python-flask/files/tests_requirements.txt +++ b/be-python-flask/files/tests_requirements.txt @@ -1,6 +1,6 @@ -r ./requirements.txt -mypy==0.982 -flake8==5.0.4 -pytest==7.2.0 -pytest-cov==4.0.0 +mypy==1.3.0 +flake8==6.0.0 +pytest==7.3.1 +pytest-cov==4.1.0 diff --git a/be-python-flask/testdata/golden/sonar-scan.json b/be-python-flask/testdata/golden/sonar-scan.json index 20b5b7c64..559ca033b 100644 --- a/be-python-flask/testdata/golden/sonar-scan.json +++ b/be-python-flask/testdata/golden/sonar-scan.json @@ -1,13 +1,12 @@ { - "key": "unitt-python-flask-iq-test", - "organization": "default-organization", - "name": "unitt-python-flask-iq-test", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "isFavorite": false, "visibility": "public", "extensions": [], "qualityProfiles": [ { - "name": "Sonar way", + "name": "{{.SonarQualityProfile}}", "language": "py", "deleted": false } @@ -18,8 +17,8 @@ }, "breadcrumbs": [ { - "key": "unitt-python-flask-iq-test", - "name": "unitt-python-flask-iq-test", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "qualifier": "TRK" } ] diff --git a/be-scala-play/files/.pre-commit-config.yaml b/be-scala-play/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/be-scala-play/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/be-scala-play/testdata/golden/sonar-scan.json b/be-scala-play/testdata/golden/sonar-scan.json index 6d95d9a87..125379060 100644 --- a/be-scala-play/testdata/golden/sonar-scan.json +++ b/be-scala-play/testdata/golden/sonar-scan.json @@ -1,13 +1,12 @@ { - "key": "unitt-be-scala-play-test", - "organization": "default-organization", - "name": "unitt-be-scala-play-test", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "isFavorite": false, "visibility": "public", "extensions": [], "qualityProfiles": [ { - "name": "Sonar way", + "name": "{{.SonarQualityProfile}}", "language": "scala", "deleted": false } @@ -18,8 +17,8 @@ }, "breadcrumbs": [ { - "key": "unitt-be-scala-play-test", - "name": "unitt-be-scala-play-test", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "qualifier": "TRK" } ] diff --git a/be-typescript-express/files/.pre-commit-config.yaml b/be-typescript-express/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/be-typescript-express/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/be-typescript-express/testdata/golden/sonar-scan.json b/be-typescript-express/testdata/golden/sonar-scan.json index d76191b52..f1e75ed46 100644 --- a/be-typescript-express/testdata/golden/sonar-scan.json +++ b/be-typescript-express/testdata/golden/sonar-scan.json @@ -1,13 +1,12 @@ { - "key": "unitt-typescript-iq-test", - "organization": "default-organization", - "name": "unitt-typescript-iq-test", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "isFavorite": false, "visibility": "public", "extensions": [], "qualityProfiles": [ { - "name": "Sonar way", + "name": "{{.SonarQualityProfile}}", "language": "ts", "deleted": false } @@ -18,8 +17,8 @@ }, "breadcrumbs": [ { - "key": "unitt-typescript-iq-test", - "name": "unitt-typescript-iq-test", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "qualifier": "TRK" } ] diff --git a/common/jenkins-agents/golang/docker/Dockerfile.ubi8 b/common/jenkins-agents/golang/docker/Dockerfile.ubi8 index ddce90457..92faf73a7 100644 --- a/common/jenkins-agents/golang/docker/Dockerfile.ubi8 +++ b/common/jenkins-agents/golang/docker/Dockerfile.ubi8 @@ -1,8 +1,7 @@ FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest -LABEL maintainer="Michael Sauter " - -ARG goDistributionUrl +ARG goDistributionUrl=https://go.dev/dl/go1.21.3.linux-amd64.tar.gz +ARG golangciVersion=v1.54.2 RUN yum install -y gcc gcc-c++ @@ -18,7 +17,7 @@ ENV PATH $PATH:/usr/local/go/bin ENV GOBIN /usr/local/bin COPY install-golangci-lint.sh /tmp/install-golangci-lint.sh -RUN /tmp/install-golangci-lint.sh -b /usr/local/bin v1.52.2 && \ +RUN /tmp/install-golangci-lint.sh -b /usr/local/bin $golangciVersion && \ rm -f /tmp/install-golangci-lint.sh RUN go install github.com/jstemmer/go-junit-report/v2@v2.0.0 diff --git a/common/jenkins-agents/golang/ocp-config/bc.yml b/common/jenkins-agents/golang/ocp-config/bc.yml index c72895285..8d3abe7a9 100644 --- a/common/jenkins-agents/golang/ocp-config/bc.yml +++ b/common/jenkins-agents/golang/ocp-config/bc.yml @@ -17,7 +17,7 @@ parameters: value: Dockerfile.ubi8 description: Dockerfile variant to use - name: GO_DISTRIBUTION_URL - value: https://go.dev/dl/go1.20.4.linux-amd64.tar.gz + value: https://go.dev/dl/go1.21.3.linux-amd64.tar.gz description: URL pointing to go binary objects: - apiVersion: v1 diff --git a/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 b/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 index 710e54b1d..a827722ee 100644 --- a/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 +++ b/common/jenkins-agents/jdk/docker/Dockerfile.ubi8 @@ -31,11 +31,12 @@ RUN sh -c "echo 'rhel' > /etc/yum/vars/osname" && \ sed -i 's@^\s*enabled\s*=.*$@enabled = 0@g' /etc/yum.repos.d/adoptium-temurin.repo && \ grep -ri '^\s*\(name\|enabled\)\s*=' /etc/yum.repos.d/* -# Install Java 11 & 17 +# Install Java 11, 17 and binutils # Note: use java scripts are executed to test the scripts but also use-j11.sh in called 2nd place to set is as default version RUN yum -y --nobest --skip-broken update && \ yum install -y java-11-openjdk-devel && \ yum install -y --enablerepo Adoptium temurin-17-jdk && \ + yum install -y binutils && \ yum updateinfo -y && \ yum repolist -y && \ sh -c "yum list installed | grep -i '\(java\|jdk\|temurin\)'" && \ @@ -84,7 +85,7 @@ RUN mkdir -p $GRADLE_USER_HOME && \ RUN bash -l -c 'echo export JAVA_OPTS="$(/tmp/set_java_proxy.sh && echo $JAVA_OPTS)" >> /etc/bash.bashrc' RUN chown -R 1001:0 $HOME && \ - chmod -R g+rw $HOME && \ + chmod -R g+rwX $HOME && \ chmod -c 666 /etc/pki/ca-trust/extracted/java/cacerts && \ ls -la /etc/pki/ca-trust/extracted/java/cacerts diff --git a/common/jenkins-agents/nodejs12/docker/Dockerfile.ubi8 b/common/jenkins-agents/nodejs12/docker/Dockerfile.ubi8 index ce6233c4d..76c74f53b 100644 --- a/common/jenkins-agents/nodejs12/docker/Dockerfile.ubi8 +++ b/common/jenkins-agents/nodejs12/docker/Dockerfile.ubi8 @@ -73,6 +73,6 @@ RUN npm config set registry=$nexusUrl/repository/npmjs/ && \ echo yarn version: $(yarn --version) RUN chown -R 1001:0 $HOME && \ - chmod -R g+rw $HOME + chmod -R g+rwX $HOME USER 1001 diff --git a/common/jenkins-agents/nodejs16/docker/Dockerfile.ubi8 b/common/jenkins-agents/nodejs16/docker/Dockerfile.ubi8 index 247e7616c..aa806f43b 100644 --- a/common/jenkins-agents/nodejs16/docker/Dockerfile.ubi8 +++ b/common/jenkins-agents/nodejs16/docker/Dockerfile.ubi8 @@ -57,6 +57,6 @@ RUN npm config set registry=$nexusUrl/repository/npmjs/ && \ echo yarn version: $(yarn --version) RUN chown -R 1001:0 $HOME && \ - chmod -R g+rw $HOME + chmod -R g+rwX $HOME USER 1001 diff --git a/common/jenkins-agents/nodejs18/docker/Dockerfile.ubi8 b/common/jenkins-agents/nodejs18/docker/Dockerfile.ubi8 index 018eb6ee8..57f49f3be 100644 --- a/common/jenkins-agents/nodejs18/docker/Dockerfile.ubi8 +++ b/common/jenkins-agents/nodejs18/docker/Dockerfile.ubi8 @@ -56,6 +56,6 @@ RUN npm config set registry=$nexusUrl/repository/npmjs/ && \ echo yarn version: $(yarn --version) RUN chown -R 1001:0 $HOME && \ - chmod -R g+rw $HOME + chmod -R g+rwX $HOME USER 1001 diff --git a/common/jenkins-agents/python/docker/Dockerfile.ubi8 b/common/jenkins-agents/python/docker/Dockerfile.ubi8 index 89ee1f7c3..02e46e4c2 100644 --- a/common/jenkins-agents/python/docker/Dockerfile.ubi8 +++ b/common/jenkins-agents/python/docker/Dockerfile.ubi8 @@ -12,10 +12,11 @@ ENV PYTHONUNBUFFERED=1 \ RUN yum module install -y python38:3.8/build && \ yum module install -y python39:3.9/build --allowerasing && \ + yum install -y python3.11 python3.11-pip python3.11-devel python3.11-setuptools --allowerasing && \ yum install -y autoconf automake gcc-c++ openssl-devel libffi-devel && \ yum -y clean all -RUN pipVersions=( pip3.8 pip3.9 ); \ +RUN pipVersions=( pip3.8 pip3.9 pip3.11 ); \ for pipV in "${pipVersions[@]}"; \ do \ if [ ! -z ${nexusHost} ] && [ ! -z ${nexusAuth} ]; \ @@ -25,7 +26,7 @@ RUN pipVersions=( pip3.8 pip3.9 ); \ fi; \ $pipV config set global.cert /etc/ssl/certs/ca-bundle.crt && \ $pipV install --upgrade pip --user && \ - $pipV install virtualenv==20.16.6 setuptools==65.5.1 Cython==0.29.32 pypandoc==1.10; \ + $pipV install virtualenv==20.23.0 setuptools==67.8.0 Cython==0.29.35 pypandoc==1.11; \ done; # Enables default user to access $HOME folder diff --git a/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi8 b/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi8 new file mode 100644 index 000000000..1ab245ac9 --- /dev/null +++ b/common/jenkins-agents/terraform-2306/docker/Dockerfile.ubi8 @@ -0,0 +1,196 @@ +FROM opendevstackorg/ods-jenkins-agent-base-ubi8:latest + +LABEL maintainer="Erhard Wais , Frank Joas , Josef Hartmann , Steve Taylor " + +# Labels consumed by Red Hat build service +LABEL com.redhat.component="jenkins-agent-terraform-ubi8-docker" \ + name="openshift/jenkins-agent-terraform-ubi8" \ + version="0.1" \ + architecture="x86_64" \ + release="1" \ + io.k8s.display-name="Jenkins Agent Terraform" \ + io.k8s.description="The jenkins agent image has terraform and other tools on top of the jenkins agent base image." \ + io.openshift.tags="openshift,jenkins,agent,terraform,aws,azure" + +ENV TERRAFORM_VERSION=1.4.6 \ + TERRAFORM_CONFIG_INSPECT_VERSION=0.2.0 \ + TERRAFORM_DOCS_VERSION=v0.16.0 \ + RUBY_VERSION=3.2.2 \ + PACKER_VERSION=1.8.7 \ + CONSUL_VERSION=1.15.2 \ + TFENV_VERSION=3.0.0 \ + TFLINT_VERSION=0.46.1 \ + NODEJS_VERSION=18.16.0 \ + BUNDLER_VERSION=2.4.13 \ + SOPS_VERSION=3.7.3 \ + AGE_VERSION=1.1.1 \ + GEM_HOME=/opt/bundle \ + RBENV_ROOT=/opt/rbenv \ + RBENV_SHELL=bash + +ENV INSTALL_PKGS="yum-utils gcc make git-core zlib zlib-devel gcc-c++ patch \ + python38 python38-pip python38-setuptools \ + python39 python39-pip python39-setuptools \ + python3.11 python3.11-pip python3.11-setuptools \ + readline \ + libffi-devel libyaml-devel openssl-devel make bzip2 autoconf curl sqlite-devel xz" +ENV INSTALL_CENTOS_PKGS="readline-devel bison automake libtool" +ENV PATH=/opt/tfenv/bin:/opt/rbenv/shims:/opt/rbenv/bin:/opt/node/bin:$PATH +ENV HOME=/home/jenkins + +RUN sh -c "rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm || true" +COPY python_requirements /tmp/requirements.txt + +# Workaroud we use when running behind proxy +# Basically we put the proxy certificate in certs folder +# COPY certs/* /etc/pki/ca-trust/source/anchors/ +# RUN update-ca-trust force-enable && update-ca-trust extract + +COPY yum.repos.d/centos8.repo /etc/yum.repos.d/centos8.repo +RUN sed -i 's@^\s*enabled\s*=.*$@enabled = 1@g' /etc/yum.repos.d/*.repo \ + && sed -i 's@^\s*enabled\s*=.*$@enabled = 0@g' /etc/yum.repos.d/centos8.repo \ + && grep -i '\(name\|enabled\)' /etc/yum.repos.d/*.repo + +RUN set -x \ + && dnf -y repolist \ + && dnf -y install $INSTALL_PKGS \ + && dnf -y install --enablerepo centos-base --enablerepo centos-plus --enablerepo centos-extras \ + --enablerepo centos-appstream --enablerepo centos-devel $INSTALL_CENTOS_PKGS + +RUN curl -sSL "https://bootstrap.pypa.io/pip/3.6/get-pip.py" -o "get-pip.py" \ + && python3 get-pip.py + +# Upgrade pip +RUN pip3 install --upgrade pip \ + && pip3 -V \ + && pip3 install virtualenv pycodestyle \ + && pip3.8 install virtualenv pycodestyle \ + && pip3.9 install virtualenv pycodestyle \ + && pip3.11 install virtualenv pycodestyle \ + && alternatives --set python /usr/bin/python3.11 \ + && alternatives --set python3 /usr/bin/python3.11 + +# Configure pip SSL validation +RUN pip config set global.cert /etc/ssl/certs/ca-bundle.crt \ + && pip config list + +# Install python requirements +RUN python3.8 -m pip install -r /tmp/requirements.txt \ + && python3.9 -m pip install -r /tmp/requirements.txt \ + && python3.11 -m pip install -r /tmp/requirements.txt + +# Install awscli2 +RUN curl -sSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" \ + && unzip -qq awscliv2.zip \ + && ./aws/install \ + && rm -f awscliv2.zip \ + && rm -Rf ./aws + +# Install awssamcli +RUN curl -sSL "https://github.com/aws/aws-sam-cli/releases/latest/download/aws-sam-cli-linux-x86_64.zip" -o "awssam.zip" \ + && unzip -qq -d awssam awssam.zip \ + && ./awssam/install && rm -f awssam.zip && rm -Rf ./awssam + +# Install aws cdk +RUN wget -q "https://nodejs.org/dist/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-linux-x64.tar.xz" \ + && xzcat node-v${NODEJS_VERSION}-linux-x64.tar.xz | tar xpf - -C /opt/ \ + && mv /opt/node-v${NODEJS_VERSION}-linux-x64 /opt/node \ + && rm -f node-v${NODEJS_VERSION}-linux-x64.tar.xz \ + && /opt/node/bin/npm install -g aws-cdk \ + && chown -R 1001:0 /opt/node && chmod +x /opt/node/bin/* \ + && node --version \ + && cdk --version + +# Install terraform +RUN wget -q -O /tmp/terraform.zip "https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_amd64.zip" \ + && unzip /tmp/terraform.zip -d /usr/local/bin \ + && rm -rf /tmp/terraform.zip \ + && terraform -h + +# Install tfenv +RUN umask 0002 && cd /opt && git clone --branch v${TFENV_VERSION} https://github.com/tfutils/tfenv.git \ + && TFENV_CURL_OUTPUT=0 /opt/tfenv/bin/tfenv install ${TERRAFORM_VERSION} \ + && /opt/tfenv/bin/tfenv use ${TERRAFORM_VERSION} \ + && chown -R 1001:0 /opt/tfenv \ + && chmod +x /opt/tfenv/bin/* \ + && terraform -version \ + && tfenv list + +# Install tflint +RUN wget -q -O /tmp/tflint.zip "https://github.com/terraform-linters/tflint/releases/download/v${TFLINT_VERSION}/tflint_linux_amd64.zip" \ + && unzip /tmp/tflint.zip -d /usr/local/bin \ + && rm -rf /tmp/tflint.zip \ + && tflint --version + +# Install packer +RUN wget -q -O /tmp/packer.zip "https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_amd64.zip" \ + && unzip /tmp/packer.zip -d /usr/local/bin \ + && rm -rf /tmp/packer.zip \ + && packer --version + +# Install terraform-config-inspect +RUN wget -q -O /tmp/terraform-config-inspect.tar.gz https://github.com/nichtraunzer/terraform-config-inspect/releases/download/v${TERRAFORM_CONFIG_INSPECT_VERSION}/terraform-config-inspect_${TERRAFORM_CONFIG_INSPECT_VERSION}_linux_amd64.tar.gz \ + && tar zxpf /tmp/terraform-config-inspect.tar.gz -C /usr/local/bin/ \ + && rm -f /tmp/terraform-config-inspect.tar.gz \ + && chmod 755 /usr/local/bin/terraform-config-inspect + +# Install terraform-docs +RUN wget -q -O /tmp/terraform-docs.tar.gz https://github.com/terraform-docs/terraform-docs/releases/download/${TERRAFORM_DOCS_VERSION}/terraform-docs-${TERRAFORM_DOCS_VERSION}-linux-amd64.tar.gz \ + && tar zxpf /tmp/terraform-docs.tar.gz -C /usr/local/bin/ terraform-docs \ + && chmod +x /usr/local/bin/terraform-docs + +# Install jq +RUN dnf install -y jq parallel \ + && jq -Version \ + && dnf clean all + +# Install consul-cli +RUN wget -q "https://releases.hashicorp.com/consul/${CONSUL_VERSION}/consul_${CONSUL_VERSION}_linux_amd64.zip" \ + && unzip consul_${CONSUL_VERSION}_linux_amd64.zip -d /usr/local/bin \ + && rm -f consul_${CONSUL_VERSION}_linux_amd64.zip \ + && chmod +x /usr/local/bin/consul \ + && /usr/local/bin/consul -version + +# Install mozilla/sops and age +RUN dnf install -y https://github.com/mozilla/sops/releases/download/v${SOPS_VERSION}/sops-${SOPS_VERSION}-1.x86_64.rpm \ + && wget -q -O /tmp/age.tar.gz https://github.com/FiloSottile/age/releases/download/v${AGE_VERSION}/age-v${AGE_VERSION}-linux-amd64.tar.gz \ + && tar xzf /tmp/age.tar.gz -C /usr/local/bin \ + && rm -f /tmp/age.tar.gz + +RUN chmod +t /tmp \ + && chown -R 1001:0 $HOME \ + && chmod -R g+rwX $HOME \ + && mkdir -p $GEM_HOME \ + && chmod 2770 $GEM_HOME + +COPY Gemfile Gemfile.lock $GEM_HOME/ + +RUN chown -R 1001:0 $GEM_HOME \ + && chmod -R g+rw $GEM_HOME \ + && ls -lisa /home/jenkins $GEM_HOME + +# Setup ruby env and bundler gems +# RUBY https://syslint.com/blog/tutorial/how-to-install-ruby-on-rails-with-rbenv-on-centos-7-or-rhel-7/ +RUN cd /opt \ + && umask 0002 \ + && git clone https://github.com/rbenv/rbenv.git /opt/rbenv \ + && echo 'export PATH="/opt/rbenv/shims:/opt/rbenv/bin:$PATH"' >> ~/.bash_profile \ + && echo 'eval "$(rbenv init -)"' >> ~/.bash_profile \ + && source ~/.bash_profile \ + && git clone https://github.com/rbenv/ruby-build.git /opt/rbenv/plugins/ruby-build \ + && echo 'export PATH="/opt/rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bash_profile \ + && source ~/.bash_profile \ + && rbenv install $RUBY_VERSION \ + && rbenv global $RUBY_VERSION \ + && gem install bundler -v $BUNDLER_VERSION \ + && RBENV_VERSION=$RUBY_VERSION gem install bundler -v $BUNDLER_VERSION \ + && bundle config default $BUNDLER_VERSION \ + && RBENV_VERSION=$RUBY_VERSION bundle config default $BUNDLER_VERSION \ + && bundle config set --global path $GEM_HOME \ + && RBENV_VERSION=$RUBY_VERSION bundle config set --global path $GEM_HOME \ + && cd $GEM_HOME \ + && BUNDLE_SILENCE_ROOT_WARNING=true bundle install --full-index --jobs=8 \ + && rm -Rf /home/jenkins/.bundle/cache + +USER 1001 + diff --git a/common/jenkins-agents/terraform-2306/docker/Gemfile b/common/jenkins-agents/terraform-2306/docker/Gemfile new file mode 100644 index 000000000..cadecba7e --- /dev/null +++ b/common/jenkins-agents/terraform-2306/docker/Gemfile @@ -0,0 +1,21 @@ +source 'https://rubygems.org' + +source 'https://rubygems.org' do + gem 'activesupport' + gem 'irb' + gem 'kitchen-terraform', '~> 7.0' + gem 'test-kitchen' + gem 'rspec-retry' + gem 'aws-sdk', '~> 3' +end + +source 'https://packagecloud.io/cinc-project/stable' do + gem 'inspec-core' + gem 'inspec', '~> 5.21' + gem 'cinc-auditor-bin' + gem 'unf_ext' + gem 'chef-config' + gem 'chef-utils' + gem 'mixlib-install' + gem 'mixlib-versioning' +end diff --git a/common/jenkins-agents/terraform-2306/docker/Gemfile.lock b/common/jenkins-agents/terraform-2306/docker/Gemfile.lock new file mode 100644 index 000000000..2c90c4b6a --- /dev/null +++ b/common/jenkins-agents/terraform-2306/docker/Gemfile.lock @@ -0,0 +1,1883 @@ +GEM + remote: https://packagecloud.io/cinc-project/stable/ + specs: + chef-config (18.2.7) + addressable + chef-utils (= 18.2.7) + fuzzyurl + mixlib-config (>= 2.2.12, < 4.0) + mixlib-shellout (>= 2.0, < 4.0) + tomlrb (~> 1.2) + chef-utils (18.2.7) + concurrent-ruby + cinc-auditor-bin (5.21.29) + inspec (= 5.21.29) + inspec (5.21.29) + cookstyle + faraday_middleware (>= 0.12.2, < 1.1) + inspec-core (= 5.21.29) + mongo (= 2.13.2) + progress_bar (~> 1.3.3) + rake + train (~> 3.10) + train-aws (~> 0.2) + train-habitat (~> 0.1) + train-winrm (~> 0.2) + inspec-core (5.21.29) + addressable (~> 2.4) + chef-telemetry (~> 1.0, >= 1.0.8) + faraday (>= 1, < 3) + faraday-follow_redirects (~> 0.3) + hashie (>= 3.4, < 5.0) + license-acceptance (>= 0.2.13, < 3.0) + method_source (>= 0.8, < 2.0) + mixlib-log (~> 3.0) + multipart-post (~> 2.0) + parallel (~> 1.9) + parslet (>= 1.5, < 2.0) + pry (~> 0.13) + rspec (>= 3.9, <= 3.11) + rspec-its (~> 1.2) + rubyzip (>= 1.2.2, < 3.0) + semverse (~> 3.0) + sslshake (~> 1.2) + thor (>= 0.20, < 2.0) + tomlrb (>= 1.2, < 2.1) + train-core (~> 3.10) + tty-prompt (~> 0.17) + tty-table (~> 0.10) + mixlib-install (3.12.27) + mixlib-shellout + mixlib-versioning + thor + mixlib-versioning (1.2.12) + unf_ext (0.0.7.2) + +GEM + remote: https://rubygems.org/ + specs: + activesupport (7.0.4.3) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + addressable (2.8.4) + public_suffix (>= 2.0.2, < 6.0) + ast (2.4.2) + aws-eventstream (1.2.0) + aws-partitions (1.763.0) + aws-sdk (3.1.0) + aws-sdk-resources (~> 3) + aws-sdk-accessanalyzer (1.34.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-account (1.11.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-acm (1.55.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-acmpca (1.53.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-alexaforbusiness (1.58.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-amplify (1.32.0) + aws-sdk-core (~> 3, >= 3.120.0) + aws-sigv4 (~> 1.1) + aws-sdk-amplifybackend (1.20.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-amplifyuibuilder (1.11.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-apigateway (1.81.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-apigatewaymanagementapi (1.32.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-apigatewayv2 (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-appconfig (1.30.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-appconfigdata (1.8.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-appflow (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-appintegrationsservice (1.16.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-applicationautoscaling (1.51.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-applicationcostprofiler (1.11.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-applicationdiscoveryservice (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-applicationinsights (1.33.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-appmesh (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-appregistry (1.20.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-apprunner (1.22.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-appstream (1.70.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-appsync (1.59.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-arczonalshift (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-athena (1.65.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-auditmanager (1.31.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-augmentedairuntime (1.25.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-autoscaling (1.63.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-autoscalingplans (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-backup (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-backupgateway (1.8.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-backupstorage (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-batch (1.47.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-billingconductor (1.7.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-braket (1.21.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-budgets (1.52.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-chime (1.71.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-chimesdkidentity (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-chimesdkmediapipelines (1.5.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-chimesdkmeetings (1.18.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-chimesdkmessaging (1.18.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-chimesdkvoice (1.5.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cleanrooms (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloud9 (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudcontrolapi (1.10.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-clouddirectory (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudformation (1.77.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudfront (1.76.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudhsm (1.41.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudhsmv2 (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudsearch (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudsearchdomain (1.34.1) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudtrail (1.58.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudtraildata (1.0.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudwatch (1.73.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudwatchevents (1.46.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudwatchevidently (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudwatchlogs (1.62.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudwatchrum (1.9.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-codeartifact (1.27.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-codebuild (1.90.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-codecatalyst (1.3.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sdk-codecommit (1.53.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-codedeploy (1.52.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-codeguruprofiler (1.26.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-codegurureviewer (1.35.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-codepipeline (1.55.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-codestar (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-codestarconnections (1.26.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-codestarnotifications (1.22.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cognitoidentity (1.31.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-cognitoidentityprovider (1.53.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-cognitosync (1.38.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-comprehend (1.68.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-comprehendmedical (1.39.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-computeoptimizer (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-configservice (1.90.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-connect (1.106.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-connectcampaignservice (1.3.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-connectcases (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-connectcontactlens (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-connectparticipant (1.29.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-connectwisdomservice (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-controltower (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-core (3.172.0) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.5) + jmespath (~> 1, >= 1.6.1) + aws-sdk-costandusagereportservice (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-costexplorer (1.83.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-customerprofiles (1.27.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-databasemigrationservice (1.53.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-dataexchange (1.33.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-datapipeline (1.38.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-datasync (1.56.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-dax (1.41.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-detective (1.32.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-devicefarm (1.54.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-devopsguru (1.30.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-directconnect (1.58.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-directoryservice (1.54.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-dlm (1.56.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-docdb (1.47.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-docdbelastic (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-drs (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-dynamodb (1.84.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-dynamodbstreams (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ebs (1.28.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ec2 (1.379.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ec2instanceconnect (1.27.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ecr (1.58.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ecrpublic (1.16.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ecs (1.118.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-efs (1.60.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-eks (1.83.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticache (1.85.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticbeanstalk (1.54.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticinference (1.25.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticloadbalancing (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticloadbalancingv2 (1.84.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticsearchservice (1.70.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-elastictranscoder (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-emr (1.53.0) + aws-sdk-core (~> 3, >= 3.121.2) + aws-sigv4 (~> 1.1) + aws-sdk-emrcontainers (1.20.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-emrserverless (1.7.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-eventbridge (1.24.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-finspace (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-finspacedata (1.19.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-firehose (1.51.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-fis (1.16.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-fms (1.56.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-forecastqueryservice (1.24.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-forecastservice (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-frauddetector (1.39.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-fsx (1.65.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-gamelift (1.62.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-gamesparks (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-glacier (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-globalaccelerator (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-glue (1.88.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-gluedatabrew (1.25.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-greengrass (1.53.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-greengrassv2 (1.25.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-groundstation (1.33.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-guardduty (1.70.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-health (1.50.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-healthlake (1.15.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-honeycode (1.19.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iam (1.77.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-identitystore (1.24.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-imagebuilder (1.45.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-importexport (1.36.1) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv2 (~> 1.0) + aws-sdk-inspector (1.45.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-inspector2 (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-internetmonitor (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iot (1.104.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iot1clickdevicesservice (1.39.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iot1clickprojects (1.39.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iotanalytics (1.51.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iotdataplane (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iotdeviceadvisor (1.19.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iotevents (1.35.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ioteventsdata (1.29.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iotfleethub (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iotfleetwise (1.7.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iotjobsdataplane (1.38.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iotroborunner (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iotsecuretunneling (1.23.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iotsitewise (1.50.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iotthingsgraph (1.26.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iottwinmaker (1.11.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iotwireless (1.32.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ivs (1.29.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ivschat (1.9.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ivsrealtime (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-kafka (1.55.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-kafkaconnect (1.9.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-kendra (1.65.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-kendraranking (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-keyspaces (1.6.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-kinesis (1.45.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-kinesisanalytics (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-kinesisanalyticsv2 (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-kinesisvideo (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-kinesisvideoarchivedmedia (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-kinesisvideomedia (1.39.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-kinesisvideosignalingchannels (1.21.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-kinesisvideowebrtcstorage (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-kms (1.64.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-lakeformation (1.34.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-lambda (1.96.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-lambdapreview (1.36.1) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-lex (1.47.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-lexmodelbuildingservice (1.59.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-lexmodelsv2 (1.32.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-lexruntimev2 (1.19.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-licensemanager (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-licensemanagerlinuxsubscriptions (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-licensemanagerusersubscriptions (1.3.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-lightsail (1.75.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-locationservice (1.30.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-lookoutequipment (1.16.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-lookoutforvision (1.19.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-lookoutmetrics (1.24.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-machinelearning (1.39.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-macie (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-macie2 (1.53.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-mainframemodernization (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-managedblockchain (1.38.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-managedgrafana (1.14.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-marketplacecatalog (1.27.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-marketplacecommerceanalytics (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-marketplaceentitlementservice (1.37.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-marketplacemetering (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-mediaconnect (1.48.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-mediaconvert (1.105.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-medialive (1.98.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-mediapackage (1.59.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-mediapackagevod (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-mediastore (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-mediastoredata (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-mediatailor (1.61.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-memorydb (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-mgn (1.18.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-migrationhub (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-migrationhubconfig (1.22.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-migrationhuborchestrator (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-migrationhubrefactorspaces (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-migrationhubstrategyrecommendations (1.9.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-mobile (1.37.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-mq (1.40.0) + aws-sdk-core (~> 3, >= 3.120.0) + aws-sigv4 (~> 1.1) + aws-sdk-mturk (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-mwaa (1.20.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-neptune (1.50.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-networkfirewall (1.28.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-networkmanager (1.30.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-nimblestudio (1.18.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-oam (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-omics (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-opensearchserverless (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-opensearchservice (1.20.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-opsworks (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-opsworkscm (1.54.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-organizations (1.59.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-osis (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-outposts (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-panorama (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-personalize (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-personalizeevents (1.30.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-personalizeruntime (1.35.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-pi (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-pinpoint (1.71.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-pinpointemail (1.37.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-pinpointsmsvoice (1.34.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-pinpointsmsvoicev2 (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-pipes (1.3.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-polly (1.66.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-pricing (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-privatenetworks (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-prometheusservice (1.17.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-proton (1.24.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-qldb (1.28.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-qldbsession (1.24.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-quicksight (1.79.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ram (1.26.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-rds (1.178.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-rdsdataservice (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-recyclebin (1.8.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-redshift (1.91.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-redshiftdataapiservice (1.26.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-redshiftserverless (1.7.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-rekognition (1.78.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-resiliencehub (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-resourceexplorer2 (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-resourcegroups (1.48.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-resourcegroupstaggingapi (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-resources (3.163.0) + aws-sdk-accessanalyzer (~> 1) + aws-sdk-account (~> 1) + aws-sdk-acm (~> 1) + aws-sdk-acmpca (~> 1) + aws-sdk-alexaforbusiness (~> 1) + aws-sdk-amplify (~> 1) + aws-sdk-amplifybackend (~> 1) + aws-sdk-amplifyuibuilder (~> 1) + aws-sdk-apigateway (~> 1) + aws-sdk-apigatewaymanagementapi (~> 1) + aws-sdk-apigatewayv2 (~> 1) + aws-sdk-appconfig (~> 1) + aws-sdk-appconfigdata (~> 1) + aws-sdk-appflow (~> 1) + aws-sdk-appintegrationsservice (~> 1) + aws-sdk-applicationautoscaling (~> 1) + aws-sdk-applicationcostprofiler (~> 1) + aws-sdk-applicationdiscoveryservice (~> 1) + aws-sdk-applicationinsights (~> 1) + aws-sdk-appmesh (~> 1) + aws-sdk-appregistry (~> 1) + aws-sdk-apprunner (~> 1) + aws-sdk-appstream (~> 1) + aws-sdk-appsync (~> 1) + aws-sdk-arczonalshift (~> 1) + aws-sdk-athena (~> 1) + aws-sdk-auditmanager (~> 1) + aws-sdk-augmentedairuntime (~> 1) + aws-sdk-autoscaling (~> 1) + aws-sdk-autoscalingplans (~> 1) + aws-sdk-backup (~> 1) + aws-sdk-backupgateway (~> 1) + aws-sdk-backupstorage (~> 1) + aws-sdk-batch (~> 1) + aws-sdk-billingconductor (~> 1) + aws-sdk-braket (~> 1) + aws-sdk-budgets (~> 1) + aws-sdk-chime (~> 1) + aws-sdk-chimesdkidentity (~> 1) + aws-sdk-chimesdkmediapipelines (~> 1) + aws-sdk-chimesdkmeetings (~> 1) + aws-sdk-chimesdkmessaging (~> 1) + aws-sdk-chimesdkvoice (~> 1) + aws-sdk-cleanrooms (~> 1) + aws-sdk-cloud9 (~> 1) + aws-sdk-cloudcontrolapi (~> 1) + aws-sdk-clouddirectory (~> 1) + aws-sdk-cloudformation (~> 1) + aws-sdk-cloudfront (~> 1) + aws-sdk-cloudhsm (~> 1) + aws-sdk-cloudhsmv2 (~> 1) + aws-sdk-cloudsearch (~> 1) + aws-sdk-cloudsearchdomain (~> 1) + aws-sdk-cloudtrail (~> 1) + aws-sdk-cloudtraildata (~> 1) + aws-sdk-cloudwatch (~> 1) + aws-sdk-cloudwatchevents (~> 1) + aws-sdk-cloudwatchevidently (~> 1) + aws-sdk-cloudwatchlogs (~> 1) + aws-sdk-cloudwatchrum (~> 1) + aws-sdk-codeartifact (~> 1) + aws-sdk-codebuild (~> 1) + aws-sdk-codecatalyst (~> 1) + aws-sdk-codecommit (~> 1) + aws-sdk-codedeploy (~> 1) + aws-sdk-codeguruprofiler (~> 1) + aws-sdk-codegurureviewer (~> 1) + aws-sdk-codepipeline (~> 1) + aws-sdk-codestar (~> 1) + aws-sdk-codestarconnections (~> 1) + aws-sdk-codestarnotifications (~> 1) + aws-sdk-cognitoidentity (~> 1) + aws-sdk-cognitoidentityprovider (~> 1) + aws-sdk-cognitosync (~> 1) + aws-sdk-comprehend (~> 1) + aws-sdk-comprehendmedical (~> 1) + aws-sdk-computeoptimizer (~> 1) + aws-sdk-configservice (~> 1) + aws-sdk-connect (~> 1) + aws-sdk-connectcampaignservice (~> 1) + aws-sdk-connectcases (~> 1) + aws-sdk-connectcontactlens (~> 1) + aws-sdk-connectparticipant (~> 1) + aws-sdk-connectwisdomservice (~> 1) + aws-sdk-controltower (~> 1) + aws-sdk-costandusagereportservice (~> 1) + aws-sdk-costexplorer (~> 1) + aws-sdk-customerprofiles (~> 1) + aws-sdk-databasemigrationservice (~> 1) + aws-sdk-dataexchange (~> 1) + aws-sdk-datapipeline (~> 1) + aws-sdk-datasync (~> 1) + aws-sdk-dax (~> 1) + aws-sdk-detective (~> 1) + aws-sdk-devicefarm (~> 1) + aws-sdk-devopsguru (~> 1) + aws-sdk-directconnect (~> 1) + aws-sdk-directoryservice (~> 1) + aws-sdk-dlm (~> 1) + aws-sdk-docdb (~> 1) + aws-sdk-docdbelastic (~> 1) + aws-sdk-drs (~> 1) + aws-sdk-dynamodb (~> 1) + aws-sdk-dynamodbstreams (~> 1) + aws-sdk-ebs (~> 1) + aws-sdk-ec2 (~> 1) + aws-sdk-ec2instanceconnect (~> 1) + aws-sdk-ecr (~> 1) + aws-sdk-ecrpublic (~> 1) + aws-sdk-ecs (~> 1) + aws-sdk-efs (~> 1) + aws-sdk-eks (~> 1) + aws-sdk-elasticache (~> 1) + aws-sdk-elasticbeanstalk (~> 1) + aws-sdk-elasticinference (~> 1) + aws-sdk-elasticloadbalancing (~> 1) + aws-sdk-elasticloadbalancingv2 (~> 1) + aws-sdk-elasticsearchservice (~> 1) + aws-sdk-elastictranscoder (~> 1) + aws-sdk-emr (~> 1) + aws-sdk-emrcontainers (~> 1) + aws-sdk-emrserverless (~> 1) + aws-sdk-eventbridge (~> 1) + aws-sdk-finspace (~> 1) + aws-sdk-finspacedata (~> 1) + aws-sdk-firehose (~> 1) + aws-sdk-fis (~> 1) + aws-sdk-fms (~> 1) + aws-sdk-forecastqueryservice (~> 1) + aws-sdk-forecastservice (~> 1) + aws-sdk-frauddetector (~> 1) + aws-sdk-fsx (~> 1) + aws-sdk-gamelift (~> 1) + aws-sdk-gamesparks (~> 1) + aws-sdk-glacier (~> 1) + aws-sdk-globalaccelerator (~> 1) + aws-sdk-glue (~> 1) + aws-sdk-gluedatabrew (~> 1) + aws-sdk-greengrass (~> 1) + aws-sdk-greengrassv2 (~> 1) + aws-sdk-groundstation (~> 1) + aws-sdk-guardduty (~> 1) + aws-sdk-health (~> 1) + aws-sdk-healthlake (~> 1) + aws-sdk-honeycode (~> 1) + aws-sdk-iam (~> 1) + aws-sdk-identitystore (~> 1) + aws-sdk-imagebuilder (~> 1) + aws-sdk-importexport (~> 1) + aws-sdk-inspector (~> 1) + aws-sdk-inspector2 (~> 1) + aws-sdk-internetmonitor (~> 1) + aws-sdk-iot (~> 1) + aws-sdk-iot1clickdevicesservice (~> 1) + aws-sdk-iot1clickprojects (~> 1) + aws-sdk-iotanalytics (~> 1) + aws-sdk-iotdataplane (~> 1) + aws-sdk-iotdeviceadvisor (~> 1) + aws-sdk-iotevents (~> 1) + aws-sdk-ioteventsdata (~> 1) + aws-sdk-iotfleethub (~> 1) + aws-sdk-iotfleetwise (~> 1) + aws-sdk-iotjobsdataplane (~> 1) + aws-sdk-iotroborunner (~> 1) + aws-sdk-iotsecuretunneling (~> 1) + aws-sdk-iotsitewise (~> 1) + aws-sdk-iotthingsgraph (~> 1) + aws-sdk-iottwinmaker (~> 1) + aws-sdk-iotwireless (~> 1) + aws-sdk-ivs (~> 1) + aws-sdk-ivschat (~> 1) + aws-sdk-ivsrealtime (~> 1) + aws-sdk-kafka (~> 1) + aws-sdk-kafkaconnect (~> 1) + aws-sdk-kendra (~> 1) + aws-sdk-kendraranking (~> 1) + aws-sdk-keyspaces (~> 1) + aws-sdk-kinesis (~> 1) + aws-sdk-kinesisanalytics (~> 1) + aws-sdk-kinesisanalyticsv2 (~> 1) + aws-sdk-kinesisvideo (~> 1) + aws-sdk-kinesisvideoarchivedmedia (~> 1) + aws-sdk-kinesisvideomedia (~> 1) + aws-sdk-kinesisvideosignalingchannels (~> 1) + aws-sdk-kinesisvideowebrtcstorage (~> 1) + aws-sdk-kms (~> 1) + aws-sdk-lakeformation (~> 1) + aws-sdk-lambda (~> 1) + aws-sdk-lambdapreview (~> 1) + aws-sdk-lex (~> 1) + aws-sdk-lexmodelbuildingservice (~> 1) + aws-sdk-lexmodelsv2 (~> 1) + aws-sdk-lexruntimev2 (~> 1) + aws-sdk-licensemanager (~> 1) + aws-sdk-licensemanagerlinuxsubscriptions (~> 1) + aws-sdk-licensemanagerusersubscriptions (~> 1) + aws-sdk-lightsail (~> 1) + aws-sdk-locationservice (~> 1) + aws-sdk-lookoutequipment (~> 1) + aws-sdk-lookoutforvision (~> 1) + aws-sdk-lookoutmetrics (~> 1) + aws-sdk-machinelearning (~> 1) + aws-sdk-macie (~> 1) + aws-sdk-macie2 (~> 1) + aws-sdk-mainframemodernization (~> 1) + aws-sdk-managedblockchain (~> 1) + aws-sdk-managedgrafana (~> 1) + aws-sdk-marketplacecatalog (~> 1) + aws-sdk-marketplacecommerceanalytics (~> 1) + aws-sdk-marketplaceentitlementservice (~> 1) + aws-sdk-marketplacemetering (~> 1) + aws-sdk-mediaconnect (~> 1) + aws-sdk-mediaconvert (~> 1) + aws-sdk-medialive (~> 1) + aws-sdk-mediapackage (~> 1) + aws-sdk-mediapackagevod (~> 1) + aws-sdk-mediastore (~> 1) + aws-sdk-mediastoredata (~> 1) + aws-sdk-mediatailor (~> 1) + aws-sdk-memorydb (~> 1) + aws-sdk-mgn (~> 1) + aws-sdk-migrationhub (~> 1) + aws-sdk-migrationhubconfig (~> 1) + aws-sdk-migrationhuborchestrator (~> 1) + aws-sdk-migrationhubrefactorspaces (~> 1) + aws-sdk-migrationhubstrategyrecommendations (~> 1) + aws-sdk-mobile (~> 1) + aws-sdk-mq (~> 1) + aws-sdk-mturk (~> 1) + aws-sdk-mwaa (~> 1) + aws-sdk-neptune (~> 1) + aws-sdk-networkfirewall (~> 1) + aws-sdk-networkmanager (~> 1) + aws-sdk-nimblestudio (~> 1) + aws-sdk-oam (~> 1) + aws-sdk-omics (~> 1) + aws-sdk-opensearchserverless (~> 1) + aws-sdk-opensearchservice (~> 1) + aws-sdk-opsworks (~> 1) + aws-sdk-opsworkscm (~> 1) + aws-sdk-organizations (~> 1) + aws-sdk-osis (~> 1) + aws-sdk-outposts (~> 1) + aws-sdk-panorama (~> 1) + aws-sdk-personalize (~> 1) + aws-sdk-personalizeevents (~> 1) + aws-sdk-personalizeruntime (~> 1) + aws-sdk-pi (~> 1) + aws-sdk-pinpoint (~> 1) + aws-sdk-pinpointemail (~> 1) + aws-sdk-pinpointsmsvoice (~> 1) + aws-sdk-pinpointsmsvoicev2 (~> 1) + aws-sdk-pipes (~> 1) + aws-sdk-polly (~> 1) + aws-sdk-pricing (~> 1) + aws-sdk-privatenetworks (~> 1) + aws-sdk-prometheusservice (~> 1) + aws-sdk-proton (~> 1) + aws-sdk-qldb (~> 1) + aws-sdk-qldbsession (~> 1) + aws-sdk-quicksight (~> 1) + aws-sdk-ram (~> 1) + aws-sdk-rds (~> 1) + aws-sdk-rdsdataservice (~> 1) + aws-sdk-recyclebin (~> 1) + aws-sdk-redshift (~> 1) + aws-sdk-redshiftdataapiservice (~> 1) + aws-sdk-redshiftserverless (~> 1) + aws-sdk-rekognition (~> 1) + aws-sdk-resiliencehub (~> 1) + aws-sdk-resourceexplorer2 (~> 1) + aws-sdk-resourcegroups (~> 1) + aws-sdk-resourcegroupstaggingapi (~> 1) + aws-sdk-robomaker (~> 1) + aws-sdk-rolesanywhere (~> 1) + aws-sdk-route53 (~> 1) + aws-sdk-route53domains (~> 1) + aws-sdk-route53recoverycluster (~> 1) + aws-sdk-route53recoverycontrolconfig (~> 1) + aws-sdk-route53recoveryreadiness (~> 1) + aws-sdk-route53resolver (~> 1) + aws-sdk-s3 (~> 1) + aws-sdk-s3control (~> 1) + aws-sdk-s3outposts (~> 1) + aws-sdk-sagemaker (~> 1) + aws-sdk-sagemakeredgemanager (~> 1) + aws-sdk-sagemakerfeaturestoreruntime (~> 1) + aws-sdk-sagemakergeospatial (~> 1) + aws-sdk-sagemakermetrics (~> 1) + aws-sdk-sagemakerruntime (~> 1) + aws-sdk-savingsplans (~> 1) + aws-sdk-scheduler (~> 1) + aws-sdk-schemas (~> 1) + aws-sdk-secretsmanager (~> 1) + aws-sdk-securityhub (~> 1) + aws-sdk-securitylake (~> 1) + aws-sdk-serverlessapplicationrepository (~> 1) + aws-sdk-servicecatalog (~> 1) + aws-sdk-servicediscovery (~> 1) + aws-sdk-servicequotas (~> 1) + aws-sdk-ses (~> 1) + aws-sdk-sesv2 (~> 1) + aws-sdk-shield (~> 1) + aws-sdk-signer (~> 1) + aws-sdk-simpledb (~> 1) + aws-sdk-simspaceweaver (~> 1) + aws-sdk-sms (~> 1) + aws-sdk-snowball (~> 1) + aws-sdk-snowdevicemanagement (~> 1) + aws-sdk-sns (~> 1) + aws-sdk-sqs (~> 1) + aws-sdk-ssm (~> 1) + aws-sdk-ssmcontacts (~> 1) + aws-sdk-ssmincidents (~> 1) + aws-sdk-ssmsap (~> 1) + aws-sdk-ssoadmin (~> 1) + aws-sdk-states (~> 1) + aws-sdk-storagegateway (~> 1) + aws-sdk-support (~> 1) + aws-sdk-supportapp (~> 1) + aws-sdk-swf (~> 1) + aws-sdk-synthetics (~> 1) + aws-sdk-textract (~> 1) + aws-sdk-timestreamquery (~> 1) + aws-sdk-timestreamwrite (~> 1) + aws-sdk-tnb (~> 1) + aws-sdk-transcribeservice (~> 1) + aws-sdk-transcribestreamingservice (~> 1) + aws-sdk-transfer (~> 1) + aws-sdk-translate (~> 1) + aws-sdk-voiceid (~> 1) + aws-sdk-vpclattice (~> 1) + aws-sdk-waf (~> 1) + aws-sdk-wafregional (~> 1) + aws-sdk-wafv2 (~> 1) + aws-sdk-wellarchitected (~> 1) + aws-sdk-workdocs (~> 1) + aws-sdk-worklink (~> 1) + aws-sdk-workmail (~> 1) + aws-sdk-workmailmessageflow (~> 1) + aws-sdk-workspaces (~> 1) + aws-sdk-workspacesweb (~> 1) + aws-sdk-xray (~> 1) + aws-sdk-robomaker (1.53.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-rolesanywhere (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-route53 (1.71.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-route53domains (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-route53recoverycluster (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-route53recoverycontrolconfig (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-route53recoveryreadiness (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-route53resolver (1.41.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.122.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.4) + aws-sdk-s3control (1.43.0) + aws-sdk-core (~> 3, >= 3.122.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3outposts (1.17.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-sagemaker (1.178.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-sagemakeredgemanager (1.14.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-sagemakerfeaturestoreruntime (1.16.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-sagemakergeospatial (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-sagemakermetrics (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-sagemakerruntime (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-savingsplans (1.28.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-scheduler (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-schemas (1.25.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-secretsmanager (1.46.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-securityhub (1.81.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-securitylake (1.3.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-serverlessapplicationrepository (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-servicecatalog (1.60.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-servicediscovery (1.51.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-servicequotas (1.25.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ses (1.41.0) + aws-sdk-core (~> 3, >= 3.120.0) + aws-sigv4 (~> 1.1) + aws-sdk-sesv2 (1.32.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-shield (1.51.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-signer (1.32.0) + aws-sdk-core (~> 3, >= 3.120.0) + aws-sigv4 (~> 1.1) + aws-sdk-simpledb (1.29.0) + aws-sdk-core (~> 3, >= 3.120.0) + aws-sigv2 (~> 1.0) + aws-sdk-simspaceweaver (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-sms (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-snowball (1.54.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-snowdevicemanagement (1.9.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-sns (1.60.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-sqs (1.55.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ssm (1.150.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ssmcontacts (1.17.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ssmincidents (1.22.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ssmsap (1.3.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-ssoadmin (1.23.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-states (1.39.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-storagegateway (1.70.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-support (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-supportapp (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-swf (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-synthetics (1.19.0) + aws-sdk-core (~> 3, >= 3.121.2) + aws-sigv4 (~> 1.1) + aws-sdk-textract (1.45.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-timestreamquery (1.18.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-timestreamwrite (1.17.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-tnb (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-transcribeservice (1.82.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-transcribestreamingservice (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-transfer (1.34.0) + aws-sdk-core (~> 3, >= 3.112.0) + aws-sigv4 (~> 1.1) + aws-sdk-translate (1.50.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-voiceid (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-vpclattice (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-waf (1.43.0) + aws-sdk-core (~> 3, >= 3.122.0) + aws-sigv4 (~> 1.1) + aws-sdk-wafregional (1.50.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-wafv2 (1.56.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-wellarchitected (1.22.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-workdocs (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-worklink (1.35.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-workmail (1.53.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-workmailmessageflow (1.23.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-workspaces (1.80.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-workspacesweb (1.8.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-xray (1.52.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sigv2 (1.1.0) + aws-sigv4 (1.5.2) + aws-eventstream (~> 1, >= 1.0.2) + azure_graph_rbac (0.17.2) + ms_rest_azure (~> 0.12.0) + azure_mgmt_key_vault (0.17.7) + ms_rest_azure (~> 0.12.0) + azure_mgmt_resources (0.18.2) + ms_rest_azure (~> 0.12.0) + azure_mgmt_security (0.19.0) + ms_rest_azure (~> 0.12.0) + azure_mgmt_storage (0.23.0) + ms_rest_azure (~> 0.12.0) + bcrypt_pbkdf (1.1.0) + bson (4.15.0) + builder (3.2.4) + chef-telemetry (1.1.1) + chef-config + concurrent-ruby (~> 1.0) + coderay (1.1.3) + concurrent-ruby (1.2.2) + cookstyle (7.32.2) + rubocop (= 1.25.1) + declarative (0.0.20) + delegate (0.3.0) + diff-lcs (1.5.0) + docker-api (2.2.0) + excon (>= 0.47.0) + multi_json + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) + dry-configurable (1.0.1) + dry-core (~> 1.0, < 2) + zeitwerk (~> 2.6) + dry-core (1.0.0) + concurrent-ruby (~> 1.0) + zeitwerk (~> 2.6) + dry-inflector (1.0.0) + dry-initializer (3.1.1) + dry-logic (1.5.0) + concurrent-ruby (~> 1.0) + dry-core (~> 1.0, < 2) + zeitwerk (~> 2.6) + dry-schema (1.13.1) + concurrent-ruby (~> 1.0) + dry-configurable (~> 1.0, >= 1.0.1) + dry-core (~> 1.0, < 2) + dry-initializer (~> 3.0) + dry-logic (>= 1.4, < 2) + dry-types (>= 1.7, < 2) + zeitwerk (~> 2.6) + dry-types (1.7.1) + concurrent-ruby (~> 1.0) + dry-core (~> 1.0) + dry-inflector (~> 1.0) + dry-logic (~> 1.4) + zeitwerk (~> 2.6) + dry-validation (1.10.0) + concurrent-ruby (~> 1.0) + dry-core (~> 1.0, < 2) + dry-initializer (~> 3.0) + dry-schema (>= 1.12, < 2) + zeitwerk (~> 2.6) + ed25519 (1.3.0) + erubi (1.12.0) + excon (0.99.0) + faraday (1.10.3) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) + http-cookie (~> 1.0.0) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-follow_redirects (0.3.0) + faraday (>= 1, < 3) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.4) + multipart-post (~> 2) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + faraday_middleware (1.0.0) + faraday (~> 1.0) + ffi (1.15.5) + fuzzyurl (0.9.0) + google-api-client (0.52.0) + addressable (~> 2.5, >= 2.5.1) + googleauth (~> 0.9) + httpclient (>= 2.8.1, < 3.0) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.0) + rexml + signet (~> 0.12) + googleauth (0.14.0) + faraday (>= 0.17.3, < 2.0) + jwt (>= 1.4, < 3.0) + memoist (~> 0.16) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (~> 0.14) + gssapi (1.3.1) + ffi (>= 1.0.1) + gyoku (1.4.0) + builder (>= 2.1.2) + rexml (~> 3.0) + hashie (4.1.0) + highline (2.1.0) + http-cookie (1.0.5) + domain_name (~> 0.5) + httpclient (2.8.3) + i18n (1.13.0) + concurrent-ruby (~> 1.0) + inifile (3.0.0) + io-console (0.6.0) + irb (1.6.4) + reline (>= 0.3.0) + jmespath (1.6.2) + json (2.6.3) + jwt (2.7.0) + kitchen-terraform (7.0.2) + delegate (~> 0.3.0) + dry-validation (~> 1.6) + inspec (~> 5.21, >= 5.21.29) + json (~> 2.3) + test-kitchen (>= 2.1, < 4.0) + tty-which (~> 0.5.0) + license-acceptance (2.1.13) + pastel (~> 0.7) + tomlrb (>= 1.2, < 3.0) + tty-box (~> 0.6) + tty-prompt (~> 0.20) + little-plugger (1.1.4) + logging (2.3.1) + little-plugger (~> 1.1) + multi_json (~> 1.14) + memoist (0.16.2) + method_source (1.0.0) + mini_mime (1.1.2) + minitest (5.18.0) + mixlib-config (3.0.27) + tomlrb + mixlib-log (3.0.9) + mixlib-shellout (3.2.7) + chef-utils + mongo (2.13.2) + bson (>= 4.8.2, < 5.0.0) + ms_rest (0.7.6) + concurrent-ruby (~> 1.0) + faraday (>= 0.9, < 2.0.0) + timeliness (~> 0.3.10) + ms_rest_azure (0.12.0) + concurrent-ruby (~> 1.0) + faraday (>= 0.9, < 2.0.0) + faraday-cookie_jar (~> 0.0.6) + ms_rest (~> 0.7.6) + multi_json (1.15.0) + multipart-post (2.3.0) + net-scp (4.0.0) + net-ssh (>= 2.6.5, < 8.0.0) + net-ssh (7.1.0) + net-ssh-gateway (2.0.0) + net-ssh (>= 4.0.0) + nori (2.6.0) + options (2.3.2) + os (1.1.4) + parallel (1.23.0) + parser (3.2.2.1) + ast (~> 2.4.1) + parslet (1.8.2) + pastel (0.8.0) + tty-color (~> 0.5) + progress_bar (1.3.3) + highline (>= 1.6, < 3) + options (~> 2.3.0) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) + public_suffix (5.0.1) + rainbow (3.1.1) + rake (13.0.6) + regexp_parser (2.8.0) + reline (0.3.3) + io-console (~> 0.5) + representable (3.2.0) + declarative (< 0.1.0) + trailblazer-option (>= 0.1.1, < 0.2.0) + uber (< 0.2.0) + retriable (3.1.2) + rexml (3.2.5) + rspec (3.11.0) + rspec-core (~> 3.11.0) + rspec-expectations (~> 3.11.0) + rspec-mocks (~> 3.11.0) + rspec-core (3.11.0) + rspec-support (~> 3.11.0) + rspec-expectations (3.11.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.11.0) + rspec-its (1.3.0) + rspec-core (>= 3.0.0) + rspec-expectations (>= 3.0.0) + rspec-mocks (3.11.2) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.11.0) + rspec-retry (0.6.2) + rspec-core (> 3.3) + rspec-support (3.11.1) + rubocop (1.25.1) + parallel (~> 1.10) + parser (>= 3.1.0.0) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml + rubocop-ast (>= 1.15.1, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 1.4.0, < 3.0) + rubocop-ast (1.28.1) + parser (>= 3.2.1.0) + ruby-progressbar (1.13.0) + ruby2_keywords (0.0.5) + rubyntlm (0.6.3) + rubyzip (2.3.2) + semverse (3.0.2) + signet (0.17.0) + addressable (~> 2.8) + faraday (>= 0.17.5, < 3.a) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + sslshake (1.3.1) + strings (0.2.1) + strings-ansi (~> 0.2) + unicode-display_width (>= 1.5, < 3.0) + unicode_utils (~> 1.4) + strings-ansi (0.2.0) + test-kitchen (3.5.0) + bcrypt_pbkdf (~> 1.0) + chef-utils (>= 16.4.35) + ed25519 (~> 1.2) + license-acceptance (>= 1.0.11, < 3.0) + mixlib-install (~> 3.6) + mixlib-shellout (>= 1.2, < 4.0) + net-scp (>= 1.1, < 5.0) + net-ssh (>= 2.9, < 8.0) + net-ssh-gateway (>= 1.2, < 3.0) + thor (>= 0.19, < 2.0) + winrm (~> 2.0) + winrm-elevated (~> 1.0) + winrm-fs (~> 1.1) + thor (1.2.2) + timeliness (0.3.10) + tomlrb (1.3.0) + trailblazer-option (0.1.2) + train (3.10.7) + activesupport (>= 6.0.3.1) + azure_graph_rbac (~> 0.16) + azure_mgmt_key_vault (~> 0.17) + azure_mgmt_resources (~> 0.15) + azure_mgmt_security (~> 0.18) + azure_mgmt_storage (~> 0.18) + docker-api (>= 1.26, < 3.0) + google-api-client (>= 0.23.9, <= 0.52.0) + googleauth (>= 0.6.6, <= 0.14.0) + inifile (~> 3.0) + train-core (= 3.10.7) + train-winrm (~> 0.2) + train-aws (0.2.24) + aws-sdk-alexaforbusiness (~> 1.0) + aws-sdk-amplify (~> 1.32.0) + aws-sdk-apigateway (~> 1.0) + aws-sdk-apigatewayv2 (~> 1.0) + aws-sdk-applicationautoscaling (>= 1.46, < 1.52) + aws-sdk-athena (~> 1.0) + aws-sdk-autoscaling (>= 1.22, < 1.64) + aws-sdk-batch (>= 1.36, < 1.48) + aws-sdk-budgets (~> 1.0) + aws-sdk-cloudformation (~> 1.0) + aws-sdk-cloudfront (~> 1.0) + aws-sdk-cloudhsm (~> 1.0) + aws-sdk-cloudhsmv2 (~> 1.0) + aws-sdk-cloudtrail (~> 1.8) + aws-sdk-cloudwatch (~> 1.13) + aws-sdk-cloudwatchevents (>= 1.36, < 1.47) + aws-sdk-cloudwatchlogs (~> 1.13) + aws-sdk-codecommit (~> 1.0) + aws-sdk-codedeploy (~> 1.0) + aws-sdk-codepipeline (~> 1.0) + aws-sdk-cognitoidentity (>= 1.26, < 1.32) + aws-sdk-cognitoidentityprovider (>= 1.46, < 1.54) + aws-sdk-configservice (~> 1.21) + aws-sdk-core (~> 3.0) + aws-sdk-costandusagereportservice (~> 1.6) + aws-sdk-databasemigrationservice (>= 1.42, < 1.54) + aws-sdk-dynamodb (~> 1.31) + aws-sdk-ec2 (~> 1.70) + aws-sdk-ecr (~> 1.18) + aws-sdk-ecrpublic (~> 1.3) + aws-sdk-ecs (~> 1.30) + aws-sdk-efs (~> 1.0) + aws-sdk-eks (~> 1.9) + aws-sdk-elasticache (~> 1.0) + aws-sdk-elasticbeanstalk (~> 1.0) + aws-sdk-elasticloadbalancing (~> 1.8) + aws-sdk-elasticloadbalancingv2 (~> 1.0) + aws-sdk-elasticsearchservice (~> 1.0) + aws-sdk-emr (~> 1.53.0) + aws-sdk-eventbridge (~> 1.24.0) + aws-sdk-firehose (~> 1.0) + aws-sdk-glue (>= 1.71, < 1.89) + aws-sdk-guardduty (~> 1.31) + aws-sdk-iam (~> 1.13) + aws-sdk-kafka (~> 1.0) + aws-sdk-kinesis (~> 1.0) + aws-sdk-kms (~> 1.13) + aws-sdk-lambda (~> 1.0) + aws-sdk-mq (~> 1.40.0) + aws-sdk-networkfirewall (>= 1.6.0) + aws-sdk-networkmanager (>= 1.13.0) + aws-sdk-organizations (>= 1.17, < 1.60) + aws-sdk-ram (>= 1.21, < 1.27) + aws-sdk-rds (~> 1.43) + aws-sdk-redshift (~> 1.0) + aws-sdk-route53 (~> 1.0) + aws-sdk-route53domains (~> 1.0) + aws-sdk-route53resolver (~> 1.0) + aws-sdk-s3 (~> 1.30) + aws-sdk-s3control (~> 1.43.0) + aws-sdk-secretsmanager (>= 1.42, < 1.47) + aws-sdk-securityhub (~> 1.0) + aws-sdk-servicecatalog (>= 1.48, < 1.61) + aws-sdk-ses (~> 1.41.0) + aws-sdk-shield (~> 1.30) + aws-sdk-signer (~> 1.32.0) + aws-sdk-simpledb (~> 1.29.0) + aws-sdk-sms (~> 1.0) + aws-sdk-sns (~> 1.9) + aws-sdk-sqs (~> 1.10) + aws-sdk-ssm (~> 1.0) + aws-sdk-states (>= 1.35, < 1.40) + aws-sdk-synthetics (~> 1.19.0) + aws-sdk-transfer (>= 1.26, < 1.35) + aws-sdk-waf (~> 1.43.0) + train-core (3.10.7) + addressable (~> 2.5) + ffi (!= 1.13.0) + json (>= 1.8, < 3.0) + mixlib-shellout (>= 2.0, < 4.0) + net-scp (>= 1.2, < 5.0) + net-ssh (>= 2.9, < 8.0) + train-habitat (0.2.22) + train-winrm (0.2.13) + winrm (>= 2.3.6, < 3.0) + winrm-elevated (~> 1.2.2) + winrm-fs (~> 1.0) + tty-box (0.7.0) + pastel (~> 0.8) + strings (~> 0.2.0) + tty-cursor (~> 0.7) + tty-color (0.6.0) + tty-cursor (0.7.1) + tty-prompt (0.23.1) + pastel (~> 0.8) + tty-reader (~> 0.8) + tty-reader (0.9.0) + tty-cursor (~> 0.7) + tty-screen (~> 0.8) + wisper (~> 2.0) + tty-screen (0.8.1) + tty-table (0.12.0) + pastel (~> 0.8) + strings (~> 0.2.0) + tty-screen (~> 0.8) + tty-which (0.5.0) + tzinfo (2.0.6) + concurrent-ruby (~> 1.0) + uber (0.1.0) + unf (0.1.4) + unf_ext + unicode-display_width (2.4.2) + unicode_utils (1.4.0) + winrm (2.3.6) + builder (>= 2.1.2) + erubi (~> 1.8) + gssapi (~> 1.2) + gyoku (~> 1.0) + httpclient (~> 2.2, >= 2.2.0.2) + logging (>= 1.6.1, < 3.0) + nori (~> 2.0) + rubyntlm (~> 0.6.0, >= 0.6.3) + winrm-elevated (1.2.3) + erubi (~> 1.8) + winrm (~> 2.0) + winrm-fs (~> 1.0) + winrm-fs (1.3.5) + erubi (~> 1.8) + logging (>= 1.6.1, < 3.0) + rubyzip (~> 2.0) + winrm (~> 2.0) + wisper (2.0.1) + zeitwerk (2.6.8) + +PLATFORMS + x86_64-linux + +DEPENDENCIES + activesupport! + aws-sdk (~> 3)! + chef-config! + chef-utils! + cinc-auditor-bin! + inspec (~> 5.21)! + inspec-core! + irb! + kitchen-terraform (~> 7.0)! + mixlib-install! + mixlib-versioning! + rspec-retry! + test-kitchen! + unf_ext! + +BUNDLED WITH + 2.4.13 diff --git a/common/jenkins-agents/terraform-2306/docker/README.md b/common/jenkins-agents/terraform-2306/docker/README.md new file mode 100644 index 000000000..f8d10dd59 --- /dev/null +++ b/common/jenkins-agents/terraform-2306/docker/README.md @@ -0,0 +1,9 @@ +# Terraform Jenkins Agent + +## Introduction +This jenkins agent is used to build and deploy AWS & Azure workloads in the cloud. + +The image is built in the global `ods` project and is named `jenkins-agent-terraform`. It can be referenced in a `Jenkinsfile` with `ods/jenkins-agent-terraform`. + +## Known limitations +MS Azure support is on the Roadmap. diff --git a/common/jenkins-agents/terraform-2306/docker/python_requirements b/common/jenkins-agents/terraform-2306/docker/python_requirements new file mode 100644 index 000000000..2f647a27f --- /dev/null +++ b/common/jenkins-agents/terraform-2306/docker/python_requirements @@ -0,0 +1,10 @@ +# +boto3~=1.26 +requests~=2.27 +simplejson~=3.19 +argparse~=1.4 +botocore +pipenv~=2023.4 +python-hcl2~=2.0 +pre-commit~=3.3.1 +azure-cli~=2.48 diff --git a/common/jenkins-agents/terraform-2306/docker/yum.repos.d/centos8.repo b/common/jenkins-agents/terraform-2306/docker/yum.repos.d/centos8.repo new file mode 100644 index 000000000..7ba51417e --- /dev/null +++ b/common/jenkins-agents/terraform-2306/docker/yum.repos.d/centos8.repo @@ -0,0 +1,46 @@ +[centos-base] +name=CentOS-8 - Base +#mirrorlist=http://mirrorlist.centos.org/?release=8-stream&arch=x86_64&repo=os&infra=centos +#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra +#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ +baseurl=http://mirror.centos.org/centos/8-stream/BaseOS/x86_64/os/ +gpgcheck=1 +gpgkey=https://centos.org/keys/RPM-GPG-KEY-CentOS-Official +enabled=0 + +#additional packages that may be useful +[centos-extras] +name=CentOS-8 - Extras +#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra +#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ +baseurl=http://mirror.centos.org/centos/8-stream/extras/x86_64/os/ +gpgcheck=1 +gpgkey=https://centos.org/keys/RPM-GPG-KEY-CentOS-Official +enabled=0 + +#additional packages that extend functionality of existing packages +[centos-plus] +name=CentOS-8 - Plus +mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra +#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ +baseurl=http://mirror.centos.org/centos/8-stream/centosplus/x86_64/os/ +gpgcheck=1 +enabled=0 +gpgkey=https://centos.org/keys/RPM-GPG-KEY-CentOS-Official + +[centos-appstream] +name=CentOS-8-AppStream +baseurl=http://mirror.centos.org/centos/8-stream/AppStream/x86_64/os/ +enabled=0 +gpgcheck=1 +gpgkey=https://www.centos.org/keys/RPM-GPG-KEY-CentOS-Official + +[centos-devel] +name=CentOS-8 - Devel +#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra +#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra +#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ +baseurl=http://mirror.centos.org/centos/8-stream/Devel/x86_64/os/ +gpgcheck=1 +gpgkey=https://centos.org/keys/RPM-GPG-KEY-CentOS-Official +enabled=0 diff --git a/common/jenkins-agents/terraform-2306/ocp-config/Tailorfile b/common/jenkins-agents/terraform-2306/ocp-config/Tailorfile new file mode 100644 index 000000000..4f4ed76a3 --- /dev/null +++ b/common/jenkins-agents/terraform-2306/ocp-config/Tailorfile @@ -0,0 +1,5 @@ +namespace ods +selector app=jenkins-agent-terraform-2306 +param-file ../../../../../ods-configuration/ods-core.env +ignore-unknown-parameters true +bc,is diff --git a/common/jenkins-agents/terraform-2306/ocp-config/bc.yml b/common/jenkins-agents/terraform-2306/ocp-config/bc.yml new file mode 100644 index 000000000..bac715bbb --- /dev/null +++ b/common/jenkins-agents/terraform-2306/ocp-config/bc.yml @@ -0,0 +1,58 @@ +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: jenkins-agent-terraform-2306 +parameters: +- name: ODS_BITBUCKET_PROJECT + description: Bitbucket project name. + value: opendevstack +- name: REPO_BASE + required: true +- name: ODS_IMAGE_TAG + required: true + value: latest +- name: ODS_GIT_REF + required: true +- name: JENKINS_AGENT_DOCKERFILE_PATH + value: Dockerfile.ubi8 + description: Dockerfile variant to use +objects: +- apiVersion: v1 + kind: BuildConfig + metadata: + name: jenkins-agent-terraform-2306 + labels: + app: jenkins-agent-terraform-2306 + spec: + failedBuildsHistoryLimit: 5 + nodeSelector: null + output: + to: + kind: ImageStreamTag + name: jenkins-agent-terraform-2306:${ODS_IMAGE_TAG} + postCommit: {} + resources: + limits: + cpu: "1" + memory: "2Gi" + requests: + cpu: "200m" + memory: "1Gi" + runPolicy: Serial + source: + contextDir: common/jenkins-agents/terraform-2306/docker + git: + ref: ${ODS_GIT_REF} + uri: ${REPO_BASE}/${ODS_BITBUCKET_PROJECT}/ods-quickstarters.git + sourceSecret: + name: cd-user-token + type: Git + strategy: + dockerStrategy: + dockerfilePath: ${JENKINS_AGENT_DOCKERFILE_PATH} + from: + kind: ImageStreamTag + name: jenkins-agent-base:${ODS_IMAGE_TAG} + type: Docker + successfulBuildsHistoryLimit: 5 + triggers: [] diff --git a/common/jenkins-agents/terraform-2306/ocp-config/is.yml b/common/jenkins-agents/terraform-2306/ocp-config/is.yml new file mode 100644 index 000000000..41553a0d3 --- /dev/null +++ b/common/jenkins-agents/terraform-2306/ocp-config/is.yml @@ -0,0 +1,14 @@ +apiVersion: template.openshift.io/v1 +kind: Template +metadata: + name: jenkins-agent-terraform-2306 +objects: +- apiVersion: v1 + kind: ImageStream + metadata: + name: jenkins-agent-terraform-2306 + labels: + app: jenkins-agent-terraform-2306 + spec: + lookupPolicy: + local: false diff --git a/common/jenkins-agents/terraform/docker/Dockerfile.ubi8 b/common/jenkins-agents/terraform/docker/Dockerfile.ubi8 index 4d4c417f2..dc34ed3a7 100644 --- a/common/jenkins-agents/terraform/docker/Dockerfile.ubi8 +++ b/common/jenkins-agents/terraform/docker/Dockerfile.ubi8 @@ -147,7 +147,7 @@ RUN dnf install -y https://github.com/mozilla/sops/releases/download/v${SOPS_VER RUN chmod +t /tmp \ && chown -R 1001:0 $HOME \ - && chmod -R g+rw $HOME \ + && chmod -R g+rwX $HOME \ && mkdir -p $GEM_HOME \ && chmod 2770 $GEM_HOME diff --git a/common/ocp-config/component-environment/component-template.yml b/common/ocp-config/component-environment/component-template.yml index b52e4aec6..39d2bddfa 100644 --- a/common/ocp-config/component-environment/component-template.yml +++ b/common/ocp-config/component-environment/component-template.yml @@ -65,6 +65,8 @@ objects: deploymentconfig: "${COMPONENT}" strategy: activeDeadlineSeconds: 21600 + recreateParams: + timeoutSeconds: 600 resources: limits: cpu: 200m @@ -72,13 +74,7 @@ objects: requests: cpu: 100m memory: 128Mi - rollingParams: - intervalSeconds: 1 - maxSurge: 25% - maxUnavailable: 25% - timeoutSeconds: 600 - updatePeriodSeconds: 1 - type: Rolling + type: Recreate template: metadata: labels: @@ -88,7 +84,7 @@ objects: spec: containers: - image: "${PROJECT}-${ENV}/${COMPONENT}:${TAGVERSION}" - imagePullPolicy: IfNotPresent + imagePullPolicy: Always name: "${COMPONENT}" ports: - containerPort: 8080 diff --git a/common/ocp-config/component-oauth-sidecar/component-oauth-sidecar.yml b/common/ocp-config/component-oauth-sidecar/component-oauth-sidecar.yml index b6c965710..6d1d5c4e1 100644 --- a/common/ocp-config/component-oauth-sidecar/component-oauth-sidecar.yml +++ b/common/ocp-config/component-oauth-sidecar/component-oauth-sidecar.yml @@ -120,6 +120,8 @@ objects: deploymentconfig: "${COMPONENT}" strategy: activeDeadlineSeconds: 21600 + recreateParams: + timeoutSeconds: 600 resources: limits: cpu: 200m @@ -127,13 +129,7 @@ objects: requests: cpu: 100m memory: 128Mi - rollingParams: - intervalSeconds: 1 - maxSurge: 25% - maxUnavailable: 25% - timeoutSeconds: 600 - updatePeriodSeconds: 1 - type: Rolling + type: Recreate template: metadata: creationTimestamp: null @@ -145,7 +141,7 @@ objects: serviceAccount: ${COMPONENT}-oauth containers: - name: ${COMPONENT} - imagePullPolicy: IfNotPresent + imagePullPolicy: Always image: "${PROJECT}-${ENV}/${COMPONENT}:${TAGVERSION}" ports: - containerPort: 8080 @@ -161,7 +157,7 @@ objects: terminationMessagePolicy: File - name: ${COMPONENT}-oauth image: "${PROJECT}-${ENV}/${COMPONENT}-oauth:${TAGVERSION}" - imagePullPolicy: IfNotPresent + imagePullPolicy: Always resources: limits: cpu: "${CPU_LIMIT_OAUTH}" diff --git a/common/ocp-config/component/template.yml b/common/ocp-config/component/template.yml index 1dde6a455..00a92ccac 100644 --- a/common/ocp-config/component/template.yml +++ b/common/ocp-config/component/template.yml @@ -92,6 +92,8 @@ objects: deploymentconfig: "${COMPONENT}" strategy: activeDeadlineSeconds: 21600 + recreateParams: + timeoutSeconds: 600 resources: limits: cpu: 200m @@ -99,13 +101,7 @@ objects: requests: cpu: 100m memory: 128Mi - rollingParams: - intervalSeconds: 1 - maxSurge: 25% - maxUnavailable: 25% - timeoutSeconds: 600 - updatePeriodSeconds: 1 - type: Rolling + type: Recreate template: metadata: labels: @@ -114,7 +110,7 @@ objects: spec: containers: - image: "${PROJECT}-${ENV}/${COMPONENT}:${TAGVERSION}" - imagePullPolicy: IfNotPresent + imagePullPolicy: Always livenessProbe: failureThreshold: 3 httpGet: diff --git a/docker-plain/files/.pre-commit-config.yaml b/docker-plain/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/docker-plain/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/docs/modules/jenkins-agents/pages/golang.adoc b/docs/modules/jenkins-agents/pages/golang.adoc index e948996ee..78988f3e8 100644 --- a/docs/modules/jenkins-agents/pages/golang.adoc +++ b/docs/modules/jenkins-agents/pages/golang.adoc @@ -7,8 +7,8 @@ The image is built in the global `ods` project and is named `jenkins-agent-golan It can be referenced in a `Jenkinsfile` with e.g. `ods/jenkins-agent-golang:latest`. == Features -1. Go 1.20.x -2. golangci-lint 1.52.x +1. Go 1.21.x +2. golangci-lint 1.54.x == Known limitations Not (yet) Nexus package manager aware and no special HTTP Proxy configuration. diff --git a/docs/modules/jenkins-agents/pages/inf-terraform.adoc b/docs/modules/jenkins-agents/pages/inf-terraform.adoc index c3df196b6..5e06b5b66 100644 --- a/docs/modules/jenkins-agents/pages/inf-terraform.adoc +++ b/docs/modules/jenkins-agents/pages/inf-terraform.adoc @@ -1,10 +1,14 @@ -= Terraform Jenkins agent += Terraform Jenkins agents == Introduction -This agent is used to deploy (Cloud) resources using terraform code. +This agents are used to deploy (Cloud) resources using terraform code. -The image is built in the global `ods` project and is named `jenkins-agent-terraform`. -It can be referenced in a `Jenkinsfile` with e.g. `ods/jenkins-agent-terraform:latest`. +There are two terraform jenkins agents available: +1. jenkins-agent-terraform (ruby 2.7.5, terraform 1.2.x) - this agent is *DEPRECATED* and will be removed in the next release. +1. jenkins-agent-terraform-2306 (ruby 3.2.2, terraform 1.4.6, and matching tools) - this is the current active jenkins agent. + +The images are built in the global `ods` project and are named `jenkins-agent-terraform` and `jenkins-agent-terraform-2306`. +It can be referenced in a `Jenkinsfile` with e.g. `ods/jenkins-agent-terraform:latest` or `ods/jenkins-agent-terraform-2306:latest`. == Features 1. support of multiple terraform versions using tfenv diff --git a/docs/modules/jenkins-agents/pages/python.adoc b/docs/modules/jenkins-agents/pages/python.adoc index 1b83dfbd6..80587bc61 100644 --- a/docs/modules/jenkins-agents/pages/python.adoc +++ b/docs/modules/jenkins-agents/pages/python.adoc @@ -6,7 +6,9 @@ This agent is used to build / execute Python code. The image is built in the global `ods` project and is named `jenkins-agent-python`. It can be referenced in a `Jenkinsfile` with `ods/jenkins-agent-python`. -It supports building on **Python** versions: **3.9, 3.8 and 3.6**. +It supports building on **Python** versions: **3.11, 3.9, 3.8 and 3.6**. + +**NOTE**: Python 3.6 have reached EOL on 2021-12-23. See https://devguide.python.org/versions/[Python versions] for further information. == Features 1. https://docs.python.org/[Python] diff --git a/docs/modules/jenkins-agents/pages/scala.adoc b/docs/modules/jenkins-agents/pages/scala.adoc index 9a00ff85f..d953d97ca 100644 --- a/docs/modules/jenkins-agents/pages/scala.adoc +++ b/docs/modules/jenkins-agents/pages/scala.adoc @@ -7,7 +7,7 @@ The image is built in the global `ods` project and is named `jenkins-agent-scala It can be referenced in a `Jenkinsfile` with `ods/jenkins-agent-scala`. == Features -. SBT 1.1.6 +. SBT 1.8.2 . HTTP proxy aware . Nexus aware diff --git a/docs/modules/quickstarters/nav.adoc b/docs/modules/quickstarters/nav.adoc index 72ee13afb..ca4754081 100644 --- a/docs/modules/quickstarters/nav.adoc +++ b/docs/modules/quickstarters/nav.adoc @@ -10,6 +10,7 @@ ** xref:quickstarters:fe-ionic.adoc[FE Ionic] ** xref:quickstarters:ds-jupyter-lab.adoc[Data Science Jupyter Lab] ** xref:quickstarters:ds-rshiny.adoc[Data Science RShiny app] +** xref:quickstarters:ds-streamlit.adoc[Data Science Streamlit app] ** xref:quickstarters:e2e-cypress.adoc[Cypress E2E testing] ** xref:quickstarters:e2e-spock-geb.adoc[Spock, Geb and Unirest E2E testing] ** xref:quickstarters:inf-terraform-aws.adoc[INF Terraform AWS] diff --git a/docs/modules/quickstarters/pages/be-gateway-nginx.adoc b/docs/modules/quickstarters/pages/be-gateway-nginx.adoc index 92e2cd57e..4d77a6631 100644 --- a/docs/modules/quickstarters/pages/be-gateway-nginx.adoc +++ b/docs/modules/quickstarters/pages/be-gateway-nginx.adoc @@ -14,6 +14,7 @@ Use this quickstarter when you want to use https://www.nginx.org[nginx] server w │ ├── entrypoint.sh - Enables runtime configurations and runs openresty │ └── nginx.conf - The nginx configuration ├── Jenkinsfile - Contains Jenkins build configuration +├── .pre-commit-config.yaml ├── metadata.yml - Component metadata └── release-manager.yml - Configuration file for the Release Manager ---- @@ -122,6 +123,8 @@ There are two steps: * Build the container image. * Deploy. +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used This quickstarter uses https://github.com/opendevstack/ods-core/tree/master/jenkins/agent-base[jenkins-agent-base] diff --git a/docs/modules/quickstarters/pages/be-golang-plain.adoc b/docs/modules/quickstarters/pages/be-golang-plain.adoc index faed333d5..aa80c40ad 100644 --- a/docs/modules/quickstarters/pages/be-golang-plain.adoc +++ b/docs/modules/quickstarters/pages/be-golang-plain.adoc @@ -9,6 +9,7 @@ suited for CLI tools, network/operational related things and microservices. ---- ├── Jenkinsfile - Contains Jenkins build configuration +├── .pre-commit-config.yaml ├── README.md ├── docker - Contains Dockerfile for the build │ └── Dockerfile @@ -56,6 +57,8 @@ There are six steps: * Build the container image. * Deploy. +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used This quickstarter uses diff --git a/docs/modules/quickstarters/pages/be-java-springboot.adoc b/docs/modules/quickstarters/pages/be-java-springboot.adoc index 80990131e..99ffa7de0 100644 --- a/docs/modules/quickstarters/pages/be-java-springboot.adoc +++ b/docs/modules/quickstarters/pages/be-java-springboot.adoc @@ -134,6 +134,8 @@ comment on line `stageUploadToNexus` in `Jenkinsfile` NOTE: The 2nd step executes `gradlew build` to compile your project and create a distribution as `jar` file. This file is copied to the `docker` folder to be included in the docker image when the image is built in step 5. +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used This quickstarter uses the diff --git a/docs/modules/quickstarters/pages/be-python-flask.adoc b/docs/modules/quickstarters/pages/be-python-flask.adoc index eae24e91c..09a558d47 100644 --- a/docs/modules/quickstarters/pages/be-python-flask.adoc +++ b/docs/modules/quickstarters/pages/be-python-flask.adoc @@ -14,6 +14,7 @@ It contains the basic setup for Docker, Jenkins, SonarQube and OpenShift. ---- ├── Jenkinsfile - This file contains Jenkins build configuration settings +├── .pre-commit-config.yaml ├── README.md ├── docker - This folder contains Docker configuration settings │ ├── Dockerfile @@ -34,7 +35,7 @@ It contains the basic setup for Docker, Jenkins, SonarQube and OpenShift. == Frameworks used -* https://docs.python.org/3.9[Python 3.9] +* https://docs.python.org/3.11[Python 3.11] * https://gunicorn.org/[gunicorn] * http://flask.pocoo.org/[flask] * https://docs.pytest.org/en/stable/[pytest] @@ -47,9 +48,9 @@ The project is production ready when deployed in OpenShift thanks to gunicorn. It is strongly recommended when you are developing a Python project to use separated environments. For this purpose usually one can use Python's -https://docs.python.org/3.9/library/venv.html[venv] core package (check how to use it in the next steps). +https://docs.python.org/3.11/library/venv.html[venv] core package (check how to use it in the next steps). -NOTE: since the version of Python is 3.9, ensure your system's python executable is also in version 3.9 +NOTE: since the version of Python is 3.11, ensure your system's python executable is also in version 3.11 [source,bash] ---- @@ -111,20 +112,22 @@ The Jenkinsfile is provisioned with this quick starter to ease CI/CD process. In * *Build* - Builds the application: copies src folder into docker/dist folder. +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used This quickstarter uses https://github.com/opendevstack/ods-quickstarters/tree/master/common/jenkins-agents/python[Python] builder agent Jenkins builder agent. -**NOTE**: The ODS Jenkins Pytnon Agent supports Python versions 3.9, 3.8 and 3.6. See next chapter for further information. +**NOTE**: The ODS Jenkins Pytnon Agent supports Python versions 3.11, 3.9 and 3.8. See next chapter for further information. == Multiple Python versions support -Build and run environment defaults to python3.9, but older python3.8 and python3.6 versions are also supported. +Build and run environment defaults to python3.11, but older python3.8 and python3.6 versions are also supported. If you need older versions support in your project, change: -* in the provided `Jenkinsfile`, the mentions of `python3.9` binary to, for example, `python3.8` binary, +* in the provided `Jenkinsfile`, the mentions of `python3.11` binary to, for example, `python3.9` binary, * and switch the `FROM` statement in your `Dockerfile` to the python version required, for example, `registry.access.redhat.com/ubi8/python-38`. diff --git a/docs/modules/quickstarters/pages/be-scala-play.adoc b/docs/modules/quickstarters/pages/be-scala-play.adoc index e0ba12cf6..f53c725cc 100644 --- a/docs/modules/quickstarters/pages/be-scala-play.adoc +++ b/docs/modules/quickstarters/pages/be-scala-play.adoc @@ -13,6 +13,7 @@ An example Play Web Application is generated with a Controller and some tests. ---- . ├── Jenkinsfile +├── .pre-commit-config.yaml ├── app │   ├── controllers │   │   └── HomeController.scala @@ -83,6 +84,8 @@ In Jenkinsfile, there are various stages * stageBuild - checks source files formatting, runs the tests and builds and copies the artifacts for creating the docker image to the `docker` directory. +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used This quickstarter uses the diff --git a/docs/modules/quickstarters/pages/be-typescript-express.adoc b/docs/modules/quickstarters/pages/be-typescript-express.adoc index 256da696b..3c438a5c9 100644 --- a/docs/modules/quickstarters/pages/be-typescript-express.adoc +++ b/docs/modules/quickstarters/pages/be-typescript-express.adoc @@ -12,6 +12,7 @@ The package json is generated by simply using `npm init -y`, while the tsconfig ---- ├── Jenkinsfile - Contains Jenkins build configuration +├── .pre-commit-config.yaml ├── LICENSE ├── README.md ├── docker - Contains Dockerfile for the build @@ -86,6 +87,8 @@ The build pipeline is defined in the `Jenkinsfile` in the project root. The main . Build : `npm run build` command is executed to build the application and then the build is copied to the `docker/dist` folder. . Unit Testing : `npm run test` command is executed for running unit tests and to generate coverage report. The results can be seen form the Jenkins console output. +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used This quickstarter uses https://github.com/opendevstack/ods-quickstarters/tree/master/common/jenkins-agents/nodejs18[Node.JS 18 builder agent] for Jenkins. diff --git a/docs/modules/quickstarters/pages/docker-plain.adoc b/docs/modules/quickstarters/pages/docker-plain.adoc index 641d4fa47..6360ec65b 100644 --- a/docs/modules/quickstarters/pages/docker-plain.adoc +++ b/docs/modules/quickstarters/pages/docker-plain.adoc @@ -10,6 +10,7 @@ or that you need to "OpenShiftify", by setting an (non-root) execution user, etc ---- ├── Jenkinsfile - Contains Jenkins build configuration +├── .pre-commit-config.yaml ├── README.md ├── docker - Contains Dockerfile for the build │ └── Dockerfile @@ -75,6 +76,8 @@ Assuming your component contains source code you want to have delivered by the _ Feel free to look out for examples in our existing quickstarters, such as link:https://github.com/opendevstack/ods-quickstarters/blob/master/be-java-springboot[be-java-springboot]. +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used none diff --git a/docs/modules/quickstarters/pages/ds-jupyter-lab.adoc b/docs/modules/quickstarters/pages/ds-jupyter-lab.adoc index 480b7fbd7..1445fc65d 100644 --- a/docs/modules/quickstarters/pages/ds-jupyter-lab.adoc +++ b/docs/modules/quickstarters/pages/ds-jupyter-lab.adoc @@ -9,6 +9,7 @@ Provision a shared Jupyter Lab within OpenShift for rapid prototyping of data sc ---- . ├── Jenkinsfile +├── .pre-commit-config.yaml ├── docker │ ├── Dockerfile │ ├── jupyter_lab_config.json @@ -20,7 +21,7 @@ Provision a shared Jupyter Lab within OpenShift for rapid prototyping of data sc == Frameworks used -* https://docs.python.org/3.9[Python 3.9] +* https://docs.python.org/3.11[Python 3.11] * https://jupyterlab.readthedocs.io/en/stable/[JupyterLab] == Usage - how do you start after you provisioned this quickstarter @@ -68,6 +69,8 @@ The build pipeline is defined in the `Jenkinsfile` in the project root. The main . Start OpenShift build . Deploy image to OpenShift +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used https://github.com/opendevstack/ods-core/tree/master/jenkins/agent-base[jenkins-agent-base] diff --git a/docs/modules/quickstarters/pages/ds-rshiny.adoc b/docs/modules/quickstarters/pages/ds-rshiny.adoc index d33fc3377..790422b7a 100644 --- a/docs/modules/quickstarters/pages/ds-rshiny.adoc +++ b/docs/modules/quickstarters/pages/ds-rshiny.adoc @@ -9,6 +9,7 @@ Provisions a R Shiny application within OpenShift using OpenShift OAuth. ---- . ├── Jenkinsfile - This file contains Jenkins build configuration settings +├── .pre-commit-config.yaml ├── docker - This folder contains Docker configuration settings and main R Shiny app │ ├── Dockerfile │ └── app.R @@ -47,6 +48,8 @@ The build pipeline is defined in the `Jenkinsfile` in the project root. The main . Start OpenShift build . Deploy image to OpenShift +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used https://github.com/opendevstack/ods-core/tree/master/jenkins/agent-base[jenkins-agent-base] diff --git a/docs/modules/quickstarters/pages/ds-streamlit.adoc b/docs/modules/quickstarters/pages/ds-streamlit.adoc index 680204830..31df7b297 100644 --- a/docs/modules/quickstarters/pages/ds-streamlit.adoc +++ b/docs/modules/quickstarters/pages/ds-streamlit.adoc @@ -9,6 +9,7 @@ Provisions a streamlit based dashboard with authentication. ---- . ├── Jenkinsfile +├── .pre-commit-config.yaml ├── docker_streamlit │ └── Dockerfile ├── docker_oauth @@ -34,7 +35,7 @@ Provisions a streamlit based dashboard with authentication. == Frameworks used -* https://docs.python.org/3.9[Python 3.9] +* https://docs.python.org/3.11[Python 3.11] * https://docs.streamlit.io/library/changelog[streamlit] * https://pandas.pydata.org/[pandas] * https://plotly.com/python/[plotly] @@ -45,9 +46,9 @@ The quickstarter sets up in OpenShift a pod with two containers. The main `ds-st It is strongly recommended when you are developing a Python project to use separated environments. For this purpose usually one can use Python's -https://docs.python.org/3.9/library/venv.html[venv] core package (check how to use it in the next steps). +https://docs.python.org/3.11/library/venv.html[venv] core package (check how to use it in the next steps). -NOTE: since the version of Python is 3.9, ensure your system's python executable is also in version 3.9 +NOTE: since the version of Python is 3.11, ensure your system's python executable is also in version 3.11 [source,bash] ---- @@ -95,6 +96,8 @@ In order to be sure that your code passes the linting stage execute or add it as * *Build* - Builds the application: copies src folder into docker_streamlit/dist folder. +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used This quickstarter uses https://github.com/opendevstack/ods-quickstarters/tree/master/common/jenkins-agents/python[Python] builder agent Jenkins builder agent. diff --git a/docs/modules/quickstarters/pages/e2e-cypress.adoc b/docs/modules/quickstarters/pages/e2e-cypress.adoc index 513a1f069..e5ea7da95 100644 --- a/docs/modules/quickstarters/pages/e2e-cypress.adoc +++ b/docs/modules/quickstarters/pages/e2e-cypress.adoc @@ -33,6 +33,7 @@ This is a Cypress end-to-end testing project quickstarter with basic setup for h ├── cypress.env.json.template ├── cypress.json ├── Jenkinsfile +├── .pre-commit-config.yaml ├── metadata.yml - Component metadata │── package.json ├── README.md @@ -66,9 +67,9 @@ A more advanced solution could be the use of a custom builder agent, where Cypre [source,docker] ---- # The following FROM tag is informational. It is overwritten by OpenShift. -FROM ods/jenkins-agent-nodejs16:4.x +FROM ods/jenkins-agent-nodejs18:4.x -ARG cypressVersion=9.5.3 +ARG cypressVersion=12.9.0 ARG cypressHash=... USER root @@ -94,10 +95,41 @@ RUN chgrp -R 0 $HOME && \ USER 1001 ---- +== Cypress Cloud + +To use Cypress Cloud within the Cypress QuickSarter, follow these steps: + +1. **Create a project in Cypress Cloud.** Access Cypress Cloud by following this link (https://cloud.cypress.io/), and create a project. This project will be used to store your Cypress tests and results. + +2. **Change the project ID as indicated in Cypress Cloud.** After creating the project, you will need to change the project ID in the four config files, to the one indicated in Cypress Cloud. This ID is used to identify your project and ensure that your tests are associated with the correct project. + +3. **Set the Cypress Record Key as an environment variable in Openshift.** To enable recording of your tests in Cypress Cloud, you will need to set the Cypress Record Key as an environment variable named CYPRESS_RECORD_KEY in Openshift. This key is provided by Cypress and is used to authenticate your tests and results. By setting it in Openshift, we ensure that the record functionality will only be used in official runs and not for local development. + +4. **Modify the Jenkinsfile for using the record script.** In the Jenkinsfile, change the exeuction line: +[source,Jenkinsfile] +---- +def status = sh(script: 'npm run e2e', returnStatus: true) +---- +for the following block of code, which will run the record script only when in master or in a release branch: +[source,Jenkinsfile] +---- +if (context.gitBranch == 'master' || context.gitBranch.startsWith('release/')) { + def status = sh(script: 'npm run e2e:jenkins:record', returnStatus: true) +} else { + def status = sh(script: 'npm run e2e', returnStatus: true) +} +---- + +**Only use this functionality in releases, not development.** It is important to note that Cypress Cloud is intended for use in releases, not development. This ensures that your tests are run against stable and reliable code, and that the Dashboard does not get overflooded with non-relevant tests. For the same reason, the Jenkinsfile is configured to only pass the record parameter when running in the master branch, or in a release. + +You can find more information about using the Cypress Cloud in the official documentation for Cypress https://docs.cypress.io/guides/cloud/introduction. + +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used This quickstarter uses -https://github.com/opendevstack/ods-quickstarters/tree/master/common/jenkins-agents/nodejs16[Node.js 16 builder agent] for Jenkins. +https://github.com/opendevstack/ods-quickstarters/tree/master/common/jenkins-agents/nodejs18[Node.js 18 builder agent] for Jenkins. == Known limitations diff --git a/docs/modules/quickstarters/pages/e2e-spock-geb.adoc b/docs/modules/quickstarters/pages/e2e-spock-geb.adoc index 006f2ee6e..f7105d322 100644 --- a/docs/modules/quickstarters/pages/e2e-spock-geb.adoc +++ b/docs/modules/quickstarters/pages/e2e-spock-geb.adoc @@ -11,6 +11,7 @@ This is a spock, geb and unirest e2e testing project quickstarter with basic set ---- . ├── Jenkinsfile +├── .pre-commit-config.yaml ├── README.md ├── sonar-project.properties ├── src @@ -133,6 +134,8 @@ In Jenkinsfile.template, there is the following stage: All the results are stashed and published through Jenkins jUnit publisher. +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used This quickstarter uses the diff --git a/docs/modules/quickstarters/pages/fe-angular.adoc b/docs/modules/quickstarters/pages/fe-angular.adoc index 92761114f..afede7676 100644 --- a/docs/modules/quickstarters/pages/fe-angular.adoc +++ b/docs/modules/quickstarters/pages/fe-angular.adoc @@ -11,6 +11,7 @@ User this is a Angular project quickstarter if you want to build a frontend. It ---- . ├── Jenkinsfile - This file contains Jenkins build configuration settings +├── .pre-commit-config.yaml ├── README.md ├── angular.json - This file contains Angular project configuration settings ├── browserslist - This file is used by the build system to adjust CSS and JS output to support the specified browsers @@ -86,6 +87,8 @@ Please note: By default the applciation is always build as full production build Please note: The support for *TSLint* has been removed from this quickstarter. Also Angular is not shipping a linter by default anymore. Please consider adding *ESLint* support or a formatter like *Prettier*. For adding ESLint simply type `ng add @angular-eslint/schematics`. For setting up Prettier please see https://prettier.io/docs/en/install.html. +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used This quickstarter uses https://github.com/opendevstack/ods-quickstarters/tree/master/common/jenkins-agents/nodejs18[Node.js 18 builder agent] for Jenkins. diff --git a/docs/modules/quickstarters/pages/fe-ionic.adoc b/docs/modules/quickstarters/pages/fe-ionic.adoc index 7475e5254..87228738e 100644 --- a/docs/modules/quickstarters/pages/fe-ionic.adoc +++ b/docs/modules/quickstarters/pages/fe-ionic.adoc @@ -51,6 +51,7 @@ The files are generated using https://ionicframework.com/docs/cli/[Ionic CLI]. ├── capacitor.config.xml - This file contains config settings for your mobile app, like package name and native preferences ├── ionic.config.json - This file contains Ionic project configuration ├── Jenkinsfile - This file contains Jenkins build configuration settings +├── .pre-commit-config.yaml ├── karma.conf.js ├── metadata.yml - Component metadata ├── package.json - This file contains scripts to run and node packages dependencies for project @@ -114,6 +115,8 @@ Unit Test:: Runs unit test cases by executing `npm run test` command. If any tes Lint:: Profiler that ensures code best practices by running `npm run lint` command, if linting is not passing, the build is marked as failed also. SonarQube Analysis:: Triggers a code quality analysis by transfering code and test coverage analysis data to SonarQube. By default files like `*.spec.ts`, `*.modules.ts` and `./src/environments/**` are excluded from the analysis, since they usually don't contain application logic. Please revisit `sonar-project.properties` to configure analysis inclusions and exclusions according to your project's needs. +include::partial$secret-scanning-with-gitleaks.adoc + == Builder agent used This quickstarter uses https://github.com/opendevstack/ods-quickstarters/tree/master/common/jenkins-agents/nodejs16[Node.js 16 builder agent] for Jenkins. diff --git a/docs/modules/quickstarters/pages/index.adoc b/docs/modules/quickstarters/pages/index.adoc index 261583cd0..0a447eaa9 100644 --- a/docs/modules/quickstarters/pages/index.adoc +++ b/docs/modules/quickstarters/pages/index.adoc @@ -37,6 +37,7 @@ Quickstarters are used from the https://github.com/opendevstack/ods-provisioning === Data Science Quickstarter * xref::ds-jupyter-lab.adoc[Data Science - Jupyter Lab] * xref::ds-rshiny.adoc[Data Science - R-Shiny] +* xref::ds-streamlit.adoc[Data Science Streamlit app] === E2E Test Quickstarter * xref::e2e-cypress.adoc[E2E test - Cypress] diff --git a/docs/modules/quickstarters/pages/inf-terraform-aws.adoc b/docs/modules/quickstarters/pages/inf-terraform-aws.adoc index 6b7ebf1a2..0c57fa105 100644 --- a/docs/modules/quickstarters/pages/inf-terraform-aws.adoc +++ b/docs/modules/quickstarters/pages/inf-terraform-aws.adoc @@ -14,6 +14,7 @@ The quickstarter includes kitchen-terraform with InSpec / cinc-auditor for testi ---- ├── Jenkinsfile - This file contains Jenkins stages. +├── .pre-commit-config.yaml ├── README.md ├── environments │ ├── dev.json - This file describes parameters for the development AWS environment. @@ -42,7 +43,9 @@ Inject preferred tags into common-tags.tf, add/remove resources needed to main.t The Jenkinsfile is provisioned with this quick starter to ease CI/CD process. In Jenkinsfile, there are various stages. -== Jenkins agent used +include::partial$secret-scanning-with-gitleaks.adoc + +== Builder agent used This quickstarter uses https://github.com/opendevstack/ods-quickstarters/tree/master/common/jenkins-agents/terraform[terraform] Jenkins agent. diff --git a/docs/modules/quickstarters/pages/inf-terraform-azure.adoc b/docs/modules/quickstarters/pages/inf-terraform-azure.adoc index 8f750a279..ffb874de5 100644 --- a/docs/modules/quickstarters/pages/inf-terraform-azure.adoc +++ b/docs/modules/quickstarters/pages/inf-terraform-azure.adoc @@ -14,6 +14,7 @@ The quickstarter includes kitchen-terraform with Chef InSpec / cinc-auditor for ---- ├── Jenkinsfile - This file contains Jenkins stages. +├── .pre-commit-config.yaml ├── README.md ├── environments │ ├── dev.tfbackend.config - This file describes terraform backend parameters in the dev Azure subscription. @@ -48,7 +49,9 @@ Inject preferred tags into common-tags.tf, add/remove resources needed to main.t The Jenkinsfile is provisioned with this quickstarter to ease CI/CD process. In Jenkinsfile, there are various stages. -== Jenkins agent used +include::partial$secret-scanning-with-gitleaks.adoc + +== Builder agent used This quickstarter uses https://github.com/opendevstack/ods-quickstarters/tree/master/common/jenkins-agents/terraform[terraform] Jenkins agent. diff --git a/docs/modules/quickstarters/pages/release-manager.adoc b/docs/modules/quickstarters/pages/release-manager.adoc index 62f0f0dbe..140e2dadd 100644 --- a/docs/modules/quickstarters/pages/release-manager.adoc +++ b/docs/modules/quickstarters/pages/release-manager.adoc @@ -8,6 +8,7 @@ The release manager supports the orchestration of multiple repositories into a l . ├── docs # Fall-back document chapter templates for (LeVA) compliance reports. ├── Jenkinsfile # The release manager pipeline. +├── .pre-commit-config.yaml ├── README.md └── metadata.yml # Configuration of the release manager pipeline and its repositories. ---- @@ -133,3 +134,5 @@ In this case, the release manager will fall back to the document chapter templat === Automated Cloning of Environments If you want your _target environment_ to be created from an existing _source environment_ such as `dev` or `test` on the fly, you need to provide the `environment` and `sourceEnvironmentToClone` parameters to your pipeline, respectively. Their values will be combined with your project ID in the form `${project-id}-${environment}` to create the project (namespace) name in your OpenShift cluster. + +include::partial$secret-scanning-with-gitleaks.adoc diff --git a/docs/modules/quickstarters/partials/secret-scanning-with-gitleaks.adoc b/docs/modules/quickstarters/partials/secret-scanning-with-gitleaks.adoc new file mode 100644 index 000000000..1a19f4244 --- /dev/null +++ b/docs/modules/quickstarters/partials/secret-scanning-with-gitleaks.adoc @@ -0,0 +1,13 @@ +== Secret scanning with gitleaks + +This repository has a pre-commit hook that runs gitleaks on every commit. +To https://pre-commit.com/#install[install the hook], run: + +``` +pip install pre-commit +pre-commit +``` + +After this every commit will inform you about any secrets that are committed. + +If you want to skip this check, use the `--no-verify` flag when committing. diff --git a/ds-jupyter-lab/files/.pre-commit-config.yaml b/ds-jupyter-lab/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/ds-jupyter-lab/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/ds-jupyter-lab/files/docker_jupyterlab/Dockerfile b/ds-jupyter-lab/files/docker_jupyterlab/Dockerfile index e0c3402d0..328455c56 100644 --- a/ds-jupyter-lab/files/docker_jupyterlab/Dockerfile +++ b/ds-jupyter-lab/files/docker_jupyterlab/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.access.redhat.com/ubi9/python-39 +FROM registry.access.redhat.com/ubi9/python-311 ARG nexusHostWithBasicAuth ARG nexusHostWithoutScheme diff --git a/ds-jupyter-lab/files/docker_jupyterlab/requirements.txt b/ds-jupyter-lab/files/docker_jupyterlab/requirements.txt index ee33a9ba3..d4648782c 100644 --- a/ds-jupyter-lab/files/docker_jupyterlab/requirements.txt +++ b/ds-jupyter-lab/files/docker_jupyterlab/requirements.txt @@ -1,3 +1,3 @@ jupyter==1.0.0 -ipywidgets==8.0.2 -jupyterlab==3.5.0 +ipywidgets==8.0.6 +jupyterlab==4.0.0 diff --git a/ds-rshiny/files/.pre-commit-config.yaml b/ds-rshiny/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/ds-rshiny/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/ds-streamlit/Jenkinsfile b/ds-streamlit/Jenkinsfile index 99f1a3801..bbe4f0e0c 100644 --- a/ds-streamlit/Jenkinsfile +++ b/ds-streamlit/Jenkinsfile @@ -12,10 +12,10 @@ node { agentImageTag = env.AGENT_IMAGE_TAG ?: odsImageTag } -library("ods-jenkins-shared-library@${agentImageTag}") +library("ods-jenkins-shared-library@${sharedLibraryRef}") odsQuickstarterPipeline( - imageStreamTag: "${odsNamespace}/jenkins-agent-python:${odsImageTag}", + imageStreamTag: "${odsNamespace}/jenkins-agent-python:${agentImageTag}", ) { context -> odsQuickstarterStageCopyFiles(context) diff --git a/ds-streamlit/Jenkinsfile.template b/ds-streamlit/Jenkinsfile.template index 5c39e6f98..47dd2a408 100644 --- a/ds-streamlit/Jenkinsfile.template +++ b/ds-streamlit/Jenkinsfile.template @@ -1,9 +1,9 @@ // See https://www.opendevstack.org/ods-documentation/ for usage and customization. -@Library('ods-jenkins-shared-library@@ods_git_ref@') _ +@Library('ods-jenkins-shared-library@@shared_library_ref@') _ odsComponentPipeline( - imageStreamTag: '@ods_namespace@/jenkins-agent-python:@ods_image_tag@', + imageStreamTag: '@ods_namespace@/jenkins-agent-python:@agent_image_tag@', branchToEnvironmentMapping: [ 'master': 'dev', // 'release/': 'test' @@ -33,7 +33,7 @@ def createTestVirtualenv(def context) { stage('Create virtualenv for tests') { sh( script: """ - python3.9 -m venv testvenv + python3.11 -m venv testvenv . ./testvenv/bin/activate pip install --upgrade pip pip install -r test_requirements.txt diff --git a/ds-streamlit/files/.pre-commit-config.yaml b/ds-streamlit/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/ds-streamlit/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/ds-streamlit/files/docker_streamlit/Dockerfile b/ds-streamlit/files/docker_streamlit/Dockerfile index 7f4c102d1..04f732755 100644 --- a/ds-streamlit/files/docker_streamlit/Dockerfile +++ b/ds-streamlit/files/docker_streamlit/Dockerfile @@ -1,4 +1,4 @@ -FROM registry.access.redhat.com/ubi9/python-39 +FROM registry.access.redhat.com/ubi9/python-311 ARG nexusHostWithBasicAuth ARG nexusHostWithoutScheme @@ -23,7 +23,7 @@ RUN chown -R 1001:0 /app && \ WORKDIR /app # Install OS dependencies and update certs -RUN openssl s_client -showcerts -host ${NEXUS_HOST} -port 443 /etc/pki/ca-trust/source/anchors/oc_app.crt && \ update-ca-trust diff --git a/ds-streamlit/files/pyproject.toml b/ds-streamlit/files/pyproject.toml index 73708343c..c1f6dce34 100644 --- a/ds-streamlit/files/pyproject.toml +++ b/ds-streamlit/files/pyproject.toml @@ -4,7 +4,7 @@ # https://mypy.readthedocs.io/en/stable/config_file.html#using-a-pyproject-toml-file [tool.mypy] -python_version = 3.9 +python_version = 3.11 warn_unused_configs = true disallow_untyped_calls = true # Disallow calling functions without type annotations from functions with type annotations (inverse: __allow_untyped_calls) disallow_untyped_defs=true # Disallow defining functions without type annotations or with incomplete type annotations (inverse: __allow_untyped_defs) diff --git a/ds-streamlit/files/requirements.txt b/ds-streamlit/files/requirements.txt index fe85f07fb..c7ddc09d0 100644 --- a/ds-streamlit/files/requirements.txt +++ b/ds-streamlit/files/requirements.txt @@ -1,3 +1,3 @@ -streamlit==1.18.1 -plotly==5.12.0 -pandas==1.5.3 +streamlit==1.22.0 +plotly==5.14.1 +pandas==2.0.2 diff --git a/ds-streamlit/files/test_requirements.txt b/ds-streamlit/files/test_requirements.txt index 2655fb822..ca60e2e74 100644 --- a/ds-streamlit/files/test_requirements.txt +++ b/ds-streamlit/files/test_requirements.txt @@ -1,7 +1,7 @@ -r ./requirements.txt -mypy==0.982 -flake8==5.0.4 -pytest==7.2.1 -pytest-cov==4.0.0 -black==23.1.0 +mypy==1.3.0 +flake8==6.0.0 +pytest==7.3.1 +pytest-cov==4.1.0 +black==23.3.0 diff --git a/e2e-cypress/Jenkinsfile b/e2e-cypress/Jenkinsfile index 7e40c0f8c..3e629d125 100644 --- a/e2e-cypress/Jenkinsfile +++ b/e2e-cypress/Jenkinsfile @@ -15,7 +15,7 @@ node { library("ods-jenkins-shared-library@${sharedLibraryRef}") odsQuickstarterPipeline( - imageStreamTag: "${odsNamespace}/jenkins-agent-nodejs16:${agentImageTag}", + imageStreamTag: "${odsNamespace}/jenkins-agent-nodejs18:${agentImageTag}", ) { context -> odsQuickstarterStageCopyFiles(context) diff --git a/e2e-cypress/Jenkinsfile.template b/e2e-cypress/Jenkinsfile.template index b1fa98865..7a27b076b 100644 --- a/e2e-cypress/Jenkinsfile.template +++ b/e2e-cypress/Jenkinsfile.template @@ -4,15 +4,19 @@ node { dockerRegistry = env.DOCKER_REGISTRY + cypressRecordKey = env.CYPRESS_RECORD_KEY } odsComponentPipeline( podContainers: [ containerTemplate( name: 'jnlp', - image: "${dockerRegistry}/ods/jenkins-agent-nodejs16:@shared_library_ref@", + image: "${dockerRegistry}/ods/jenkins-agent-nodejs18:@shared_library_ref@", workingDir: '/tmp', - resourceRequestCpu: '10m', + envVars: [ + envVar(key: 'CYPRESS_RECORD_KEY', value: cypressRecordKey) + ], + resourceRequestCpu: '100m', resourceLimitCpu: '300m', resourceRequestMemory: '1Gi', resourceLimitMemory: '2Gi', diff --git a/e2e-cypress/files/.pre-commit-config.yaml b/e2e-cypress/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/e2e-cypress/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/e2e-cypress/files/README.md b/e2e-cypress/files/README.md index 784275b20..89367eb33 100644 --- a/e2e-cypress/files/README.md +++ b/e2e-cypress/files/README.md @@ -43,6 +43,14 @@ In order to generate one xml report per test type (installation, integration and With Cypress 12 version is now available `cy.origin()` that allows you to handle redirections. This funcionality eases the login handling. See `./support/e2e.ts` for a generic login example. +## Cypress Cloud + +Cypress Cloud has been enabled as a functionality and can be used by the quickstarter users. Some configuration needs to be done in the quickstarter for the dashboard to start recording executions. + +The steps for configuring this functionality are defined in (https://www.opendevstack.org/ods-documentation/opendevstack/latest/quickstarters/e2e-cypress.html). + +For more information on this, please contact the support team. + #### *Obsolete* This quickstarter provides a login command for Azure SSO with MSALv2 (`./support/msalv2-login.ts`) as well as sample code for a generic login (`./support/generic-login.ts`). diff --git a/e2e-cypress/files/cypress-acceptance.config.ts b/e2e-cypress/files/cypress-acceptance.config.ts index 039e97389..b5c9c6623 100644 --- a/e2e-cypress/files/cypress-acceptance.config.ts +++ b/e2e-cypress/files/cypress-acceptance.config.ts @@ -1,6 +1,7 @@ import { defineConfig } from 'cypress' import setupNodeEvents from './plugins/index.js' export default defineConfig({ + //projectId: '[Your project ID from Cypress cloud]', reporter: 'junit', reporterOptions: { mochaFile: 'build/test-results/acceptance-junit-[hash].xml', diff --git a/e2e-cypress/files/cypress-installation.config.ts b/e2e-cypress/files/cypress-installation.config.ts index 86a1ef50c..bee3fc611 100644 --- a/e2e-cypress/files/cypress-installation.config.ts +++ b/e2e-cypress/files/cypress-installation.config.ts @@ -1,7 +1,7 @@ import { defineConfig } from 'cypress' import setupNodeEvents from './plugins/index.js' export default defineConfig({ - //projectId: '[Define your project id for Cypress cloud]', + //projectId: '[Your project ID from Cypress cloud]', reporter: 'junit', reporterOptions: { mochaFile: 'build/test-results/installation-junit-[hash].xml', diff --git a/e2e-cypress/files/cypress-integration.config.ts b/e2e-cypress/files/cypress-integration.config.ts index 6023e1fe1..02f233b29 100644 --- a/e2e-cypress/files/cypress-integration.config.ts +++ b/e2e-cypress/files/cypress-integration.config.ts @@ -1,7 +1,7 @@ import { defineConfig } from 'cypress' import setupNodeEvents from './plugins/index.js' export default defineConfig({ - //projectId: '[Define your project id for Cypress cloud]', + //projectId: '[Your project ID from Cypress cloud]', reporter: 'junit', reporterOptions: { mochaFile: 'build/test-results/integration-junit-[hash].xml', diff --git a/e2e-cypress/files/package.json b/e2e-cypress/files/package.json index 9a5bdcfef..02f05932a 100644 --- a/e2e-cypress/files/package.json +++ b/e2e-cypress/files/package.json @@ -14,7 +14,8 @@ "junit-acceptance-report": "jrm build/test-results/acceptance-junit.xml 'build/test-results/acceptance-*.xml'", "delete-junit-results": "rimraf build/test-results", "e2e": "npm-run-all delete-junit-results cypress:run-installation cypress:run-integration cypress:run-acceptance", - "combine:reports": "npm-run-all junit-installation-report junit-integration-report junit-acceptance-report" + "combine:reports": "npm-run-all junit-installation-report junit-integration-report junit-acceptance-report", + "e2e:jenkins:record": "npm run delete-junit-results && npm run cypress:run-installation --record && npm run cypress:run-integration --record && npm run cypress:run-acceptance --record" }, "private": true, "devDependencies": { diff --git a/e2e-cypress/testdata/golden/sonar-scan.json b/e2e-cypress/testdata/golden/sonar-scan.json index 558cded18..4754f680c 100644 --- a/e2e-cypress/testdata/golden/sonar-scan.json +++ b/e2e-cypress/testdata/golden/sonar-scan.json @@ -1,18 +1,17 @@ { - "key": "unitt-cypress", - "organization": "default-organization", - "name": "unitt-cypress", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "isFavorite": false, "visibility": "public", "extensions": [], "qualityProfiles": [ { - "name": "Sonar way", + "name": "{{.SonarQualityProfile}}", "language": "js", "deleted": false }, { - "name": "Sonar way", + "name": "{{.SonarQualityProfile}}", "language": "ts", "deleted": false } @@ -23,8 +22,8 @@ }, "breadcrumbs": [ { - "key": "unitt-cypress", - "name": "unitt-cypress", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "qualifier": "TRK" } ] diff --git a/e2e-spock-geb/files/.pre-commit-config.yaml b/e2e-spock-geb/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/e2e-spock-geb/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/e2e-spock-geb/testdata/golden/sonar-scan.json b/e2e-spock-geb/testdata/golden/sonar-scan.json index 1eb1bdcca..fc4abe7eb 100644 --- a/e2e-spock-geb/testdata/golden/sonar-scan.json +++ b/e2e-spock-geb/testdata/golden/sonar-scan.json @@ -1,18 +1,17 @@ { - "key": "unitt-spock", - "organization": "default-organization", - "name": "unitt-spock", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "isFavorite": false, "visibility": "public", "extensions": [], "qualityProfiles": [ { - "name": "Sonar way", + "name": "{{.SonarQualityProfile}}", "language": "grvy", "deleted": false }, { - "name": "Sonar way", + "name": "{{.SonarQualityProfile}}", "language": "java", "deleted": false } @@ -23,8 +22,8 @@ }, "breadcrumbs": [ { - "key": "unitt-spock", - "name": "unitt-spock", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "qualifier": "TRK" } ] diff --git a/fe-angular/Jenkinsfile.template b/fe-angular/Jenkinsfile.template index 02515aeb1..0641949db 100644 --- a/fe-angular/Jenkinsfile.template +++ b/fe-angular/Jenkinsfile.template @@ -25,7 +25,7 @@ def stageBuild(def context) { if ('master'.equals(context.gitBranch)) { sh 'npm run build' } else { - sh 'npm run build -- --sourceMap=true' + sh 'npm run build -- --source-map=true' } } sh "cp -r dist/${context.componentId} docker/dist" diff --git a/fe-angular/files/.pre-commit-config.yaml b/fe-angular/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/fe-angular/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/fe-angular/testdata/golden/sonar-scan.json b/fe-angular/testdata/golden/sonar-scan.json index 0e301e7b8..f1e75ed46 100644 --- a/fe-angular/testdata/golden/sonar-scan.json +++ b/fe-angular/testdata/golden/sonar-scan.json @@ -1,13 +1,12 @@ { - "key": "unitt-fe-angular-test", - "organization": "default-organization", - "name": "unitt-fe-angular-test", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "isFavorite": false, "visibility": "public", "extensions": [], "qualityProfiles": [ { - "name": "Sonar way", + "name": "{{.SonarQualityProfile}}", "language": "ts", "deleted": false } @@ -18,8 +17,8 @@ }, "breadcrumbs": [ { - "key": "unitt-fe-angular-test", - "name": "unitt-fe-angular-test", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "qualifier": "TRK" } ] diff --git a/fe-ionic/files/.pre-commit-config.yaml b/fe-ionic/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/fe-ionic/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/fe-ionic/testdata/golden/sonar-scan.json b/fe-ionic/testdata/golden/sonar-scan.json index c06286544..f1e75ed46 100644 --- a/fe-ionic/testdata/golden/sonar-scan.json +++ b/fe-ionic/testdata/golden/sonar-scan.json @@ -1,13 +1,12 @@ { - "key": "unitt-fe-ionic-test", - "organization": "default-organization", - "name": "unitt-fe-ionic-test", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "isFavorite": false, "visibility": "public", "extensions": [], "qualityProfiles": [ { - "name": "Sonar way", + "name": "{{.SonarQualityProfile}}", "language": "ts", "deleted": false } @@ -18,8 +17,8 @@ }, "breadcrumbs": [ { - "key": "unitt-fe-ionic-test", - "name": "unitt-fe-ionic-test", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "qualifier": "TRK" } ] diff --git a/inf-terraform-aws/Jenkinsfile.template b/inf-terraform-aws/Jenkinsfile.template index f2181be00..aa4186962 100644 --- a/inf-terraform-aws/Jenkinsfile.template +++ b/inf-terraform-aws/Jenkinsfile.template @@ -3,7 +3,7 @@ @Library('ods-jenkins-shared-library@@shared_library_ref@') _ odsComponentPipeline( - imageStreamTag: '@ods_namespace@/jenkins-agent-terraform:@agent_image_tag@', + imageStreamTag: '@ods_namespace@/jenkins-agent-terraform-2306:@agent_image_tag@', branchToEnvironmentMapping: [ 'master': 'dev', ] diff --git a/inf-terraform-aws/files/.pre-commit-config.yaml b/inf-terraform-aws/files/.pre-commit-config.yaml index ee7a68103..921ce09aa 100644 --- a/inf-terraform-aws/files/.pre-commit-config.yaml +++ b/inf-terraform-aws/files/.pre-commit-config.yaml @@ -2,8 +2,12 @@ exclude: '.terraform' fail_fast: true repos: +- repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks - repo: https://github.com/pre-commit/pre-commit-hooks.git - rev: v4.1.0 + rev: v4.4.0 hooks: - id: check-added-large-files args: ['--maxkb=5000'] @@ -24,19 +28,33 @@ repos: args: [--autofix, --indent=2, --no-ensure-ascii] - id: trailing-whitespace +- repo: https://github.com/psf/black.git + rev: 23.3.0 + hooks: + - id: black + args: [--line-length=90] + files: (\.py)$ + +- repo: https://github.com/PyCQA/flake8.git + rev: 6.0.0 + hooks: + - id: flake8 + args: [--max-line-length=90] + files: (\.py)$ + - repo: https://github.com/awslabs/cfn-python-lint - rev: v0.58.0 + rev: v0.77.5 hooks: - id: cfn-python-lint files: cfn-templates/.*\.(json|yml|yaml)$ - repo: https://github.com/antonbabenko/pre-commit-terraform - rev: v1.62.3 + rev: v1.79.1 hooks: - id: terraform_fmt - repo: https://github.com/nichtraunzer/ods-pre-commit-hooks - rev: v0.3.7 + rev: v0.4.2 hooks: - id: terraformcreatei2o files: (\.tf)$ @@ -44,11 +62,18 @@ repos: files: (\.tf)$ - repo: https://github.com/antonbabenko/pre-commit-terraform - rev: v1.62.3 + rev: v1.79.1 hooks: - id: terraform_fmt - id: terraform_docs +- repo: https://github.com/jumanjihouse/pre-commit-hooks + rev: 3.0.0 + hooks: + - id: rubocop + args: + - --fix-layout + - repo: local hooks: - id: test @@ -59,4 +84,3 @@ repos: files: (\.tf|\.rb)$ pass_filenames: false verbose: true - diff --git a/inf-terraform-aws/files/.ruby-version b/inf-terraform-aws/files/.ruby-version index a603bb50a..be94e6f53 100644 --- a/inf-terraform-aws/files/.ruby-version +++ b/inf-terraform-aws/files/.ruby-version @@ -1 +1 @@ -2.7.5 +3.2.2 diff --git a/inf-terraform-aws/files/.terraform-version b/inf-terraform-aws/files/.terraform-version index 9d4f8239d..c514bd85c 100644 --- a/inf-terraform-aws/files/.terraform-version +++ b/inf-terraform-aws/files/.terraform-version @@ -1 +1 @@ -1.2.9 +1.4.6 diff --git a/inf-terraform-aws/files/Gemfile b/inf-terraform-aws/files/Gemfile index 2378f0f95..cadecba7e 100644 --- a/inf-terraform-aws/files/Gemfile +++ b/inf-terraform-aws/files/Gemfile @@ -1,7 +1,9 @@ +source 'https://rubygems.org' + source 'https://rubygems.org' do gem 'activesupport' gem 'irb' - gem 'kitchen-terraform', '~> 6.1.0' + gem 'kitchen-terraform', '~> 7.0' gem 'test-kitchen' gem 'rspec-retry' gem 'aws-sdk', '~> 3' @@ -9,7 +11,7 @@ end source 'https://packagecloud.io/cinc-project/stable' do gem 'inspec-core' - gem 'inspec', '4.52.9' + gem 'inspec', '~> 5.21' gem 'cinc-auditor-bin' gem 'unf_ext' gem 'chef-config' diff --git a/inf-terraform-aws/files/Gemfile.lock b/inf-terraform-aws/files/Gemfile.lock index 45b384bfe..2c90c4b6a 100644 --- a/inf-terraform-aws/files/Gemfile.lock +++ b/inf-terraform-aws/files/Gemfile.lock @@ -1,35 +1,33 @@ -GEM - specs: - GEM remote: https://packagecloud.io/cinc-project/stable/ specs: - chef-config (17.10.0) + chef-config (18.2.7) addressable - chef-utils (= 17.10.0) + chef-utils (= 18.2.7) fuzzyurl mixlib-config (>= 2.2.12, < 4.0) mixlib-shellout (>= 2.0, < 4.0) tomlrb (~> 1.2) - chef-utils (17.10.0) + chef-utils (18.2.7) concurrent-ruby - cinc-auditor-bin (4.52.9) - inspec (= 4.52.9) - inspec (4.52.9) + cinc-auditor-bin (5.21.29) + inspec (= 5.21.29) + inspec (5.21.29) cookstyle faraday_middleware (>= 0.12.2, < 1.1) - inspec-core (= 4.52.9) + inspec-core (= 5.21.29) mongo (= 2.13.2) + progress_bar (~> 1.3.3) rake - train (~> 3.0) + train (~> 3.10) train-aws (~> 0.2) train-habitat (~> 0.1) train-winrm (~> 0.2) - inspec-core (4.52.9) + inspec-core (5.21.29) addressable (~> 2.4) chef-telemetry (~> 1.0, >= 1.0.8) - faraday (>= 0.9.0, < 1.5) - faraday_middleware (~> 1.0) + faraday (>= 1, < 3) + faraday-follow_redirects (~> 0.3) hashie (>= 3.4, < 5.0) license-acceptance (>= 0.2.13, < 3.0) method_source (>= 0.8, < 2.0) @@ -38,17 +36,17 @@ GEM parallel (~> 1.9) parslet (>= 1.5, < 2.0) pry (~> 0.13) - rspec (>= 3.9, < 3.11) + rspec (>= 3.9, <= 3.11) rspec-its (~> 1.2) rubyzip (>= 1.2.2, < 3.0) semverse (~> 3.0) sslshake (~> 1.2) thor (>= 0.20, < 2.0) tomlrb (>= 1.2, < 2.1) - train-core (~> 3.0) + train-core (~> 3.10) tty-prompt (~> 0.17) tty-table (~> 0.10) - mixlib-install (3.12.19) + mixlib-install (3.12.27) mixlib-shellout mixlib-versioning thor @@ -58,215 +56,229 @@ GEM GEM remote: https://rubygems.org/ specs: - activesupport (7.0.4) + activesupport (7.0.4.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) - addressable (2.8.1) + addressable (2.8.4) public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) aws-eventstream (1.2.0) - aws-partitions (1.640.0) + aws-partitions (1.763.0) aws-sdk (3.1.0) aws-sdk-resources (~> 3) - aws-sdk-accessanalyzer (1.29.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-accessanalyzer (1.34.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-account (1.7.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-account (1.11.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-acm (1.52.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-acm (1.55.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-acmpca (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-acmpca (1.53.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-alexaforbusiness (1.56.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-alexaforbusiness (1.58.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-amplify (1.32.0) aws-sdk-core (~> 3, >= 3.120.0) aws-sigv4 (~> 1.1) - aws-sdk-amplifybackend (1.17.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-amplifybackend (1.20.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-amplifyuibuilder (1.6.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-amplifyuibuilder (1.11.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-apigateway (1.78.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-apigateway (1.81.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-apigatewaymanagementapi (1.30.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-apigatewaymanagementapi (1.32.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-apigatewayv2 (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-apigatewayv2 (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-appconfig (1.26.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-appconfig (1.30.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-appconfigdata (1.5.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-appconfigdata (1.8.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-appflow (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-appflow (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-appintegrationsservice (1.13.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-appintegrationsservice (1.16.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-applicationautoscaling (1.51.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-applicationcostprofiler (1.9.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-applicationcostprofiler (1.11.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-applicationdiscoveryservice (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-applicationdiscoveryservice (1.46.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-applicationinsights (1.33.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-applicationinsights (1.31.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-appmesh (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-appmesh (1.47.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-appregistry (1.20.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-appregistry (1.16.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-apprunner (1.22.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-apprunner (1.15.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-appstream (1.70.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-appstream (1.66.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-appsync (1.59.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-appsync (1.53.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-arczonalshift (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-athena (1.56.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-athena (1.65.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-auditmanager (1.26.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-auditmanager (1.31.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-augmentedairuntime (1.23.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-augmentedairuntime (1.25.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-autoscaling (1.63.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-autoscalingplans (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-autoscalingplans (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-backup (1.45.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-backup (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-backupgateway (1.5.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-backupgateway (1.8.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-backupstorage (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-backupstorage (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-batch (1.47.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-billingconductor (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-billingconductor (1.7.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-braket (1.19.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-braket (1.21.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-budgets (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-budgets (1.52.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-chime (1.68.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-chime (1.71.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-chimesdkidentity (1.9.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-chimesdkidentity (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-chimesdkmediapipelines (1.1.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-chimesdkmediapipelines (1.5.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-chimesdkmeetings (1.14.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-chimesdkmeetings (1.18.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-chimesdkmessaging (1.12.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-chimesdkmessaging (1.18.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloud9 (1.45.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-chimesdkvoice (1.5.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudcontrolapi (1.8.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cleanrooms (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-clouddirectory (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloud9 (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudformation (1.70.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudcontrolapi (1.10.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudfront (1.68.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-clouddirectory (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudhsm (1.39.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudformation (1.77.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudhsmv2 (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudfront (1.76.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudsearch (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudhsm (1.41.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudsearchdomain (1.33.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudhsmv2 (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudtrail (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudsearch (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudwatch (1.67.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudsearchdomain (1.34.1) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudtrail (1.58.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudtraildata (1.0.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudwatch (1.73.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-cloudwatchevents (1.46.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudwatchevidently (1.8.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudwatchevidently (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudwatchlogs (1.53.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudwatchlogs (1.62.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudwatchrum (1.4.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudwatchrum (1.9.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-codeartifact (1.21.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codeartifact (1.27.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-codebuild (1.88.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codebuild (1.90.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-codecommit (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codecatalyst (1.3.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sdk-codecommit (1.53.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-codedeploy (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codedeploy (1.52.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-codeguruprofiler (1.24.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codeguruprofiler (1.26.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-codegurureviewer (1.32.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codegurureviewer (1.35.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-codepipeline (1.53.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codepipeline (1.55.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-codestar (1.38.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codestar (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-codestarconnections (1.24.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codestarconnections (1.26.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-codestarnotifications (1.20.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codestarnotifications (1.22.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-cognitoidentity (1.31.0) aws-sdk-core (~> 3, >= 3.112.0) @@ -274,570 +286,612 @@ GEM aws-sdk-cognitoidentityprovider (1.53.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-cognitosync (1.36.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cognitosync (1.38.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-comprehend (1.62.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-comprehend (1.68.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-comprehendmedical (1.36.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-comprehendmedical (1.39.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-computeoptimizer (1.33.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-computeoptimizer (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-configservice (1.83.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-configservice (1.90.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-connect (1.76.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-connect (1.106.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-connectcampaignservice (1.1.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-connectcampaignservice (1.3.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-connectcontactlens (1.11.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-connectcases (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-connectparticipant (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-connectcontactlens (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-connectwisdomservice (1.8.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-connectparticipant (1.29.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-controltower (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-connectwisdomservice (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-core (3.158.0) - aws-eventstream (~> 1, >= 1.0.2) - aws-partitions (~> 1, >= 1.525.0) + aws-sdk-controltower (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) + aws-sdk-core (3.172.0) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-costandusagereportservice (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-costandusagereportservice (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-costexplorer (1.78.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-costexplorer (1.83.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-customerprofiles (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-customerprofiles (1.27.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-databasemigrationservice (1.53.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-dataexchange (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-dataexchange (1.33.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-datapipeline (1.38.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-datapipeline (1.36.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-datasync (1.56.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-datasync (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-dax (1.41.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-dax (1.39.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-detective (1.32.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-detective (1.29.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-devicefarm (1.54.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-devicefarm (1.52.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-devopsguru (1.30.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-devopsguru (1.25.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-directconnect (1.58.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-directconnect (1.54.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-directoryservice (1.54.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-directoryservice (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-dlm (1.56.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-dlm (1.52.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-docdb (1.47.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-docdb (1.44.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-docdbelastic (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-drs (1.7.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-drs (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-dynamodb (1.77.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-dynamodb (1.84.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-dynamodbstreams (1.39.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-dynamodbstreams (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ebs (1.26.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ebs (1.28.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ec2 (1.339.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ec2 (1.379.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ec2instanceconnect (1.25.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ec2instanceconnect (1.27.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ecr (1.56.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ecr (1.58.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ecrpublic (1.12.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ecrpublic (1.16.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ecs (1.101.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ecs (1.118.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-efs (1.54.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-efs (1.60.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-eks (1.77.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-eks (1.83.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticache (1.79.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticache (1.85.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticbeanstalk (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticbeanstalk (1.54.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticinference (1.21.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticinference (1.25.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticloadbalancing (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticloadbalancing (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticloadbalancingv2 (1.79.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticloadbalancingv2 (1.84.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticsearchservice (1.66.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticsearchservice (1.70.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-elastictranscoder (1.38.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elastictranscoder (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-emr (1.53.0) aws-sdk-core (~> 3, >= 3.121.2) aws-sigv4 (~> 1.1) - aws-sdk-emrcontainers (1.15.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-emrcontainers (1.20.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-emrserverless (1.1.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-emrserverless (1.7.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-eventbridge (1.24.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-finspace (1.11.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-finspace (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-finspacedata (1.17.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-finspacedata (1.19.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-firehose (1.48.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-firehose (1.51.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-fis (1.13.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-fis (1.16.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-fms (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-fms (1.56.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-forecastqueryservice (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-forecastqueryservice (1.24.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-forecastservice (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-forecastservice (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-frauddetector (1.34.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-frauddetector (1.39.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-fsx (1.60.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-fsx (1.65.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-gamelift (1.58.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-gamelift (1.62.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-gamesparks (1.1.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-gamesparks (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-glacier (1.46.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-glacier (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-globalaccelerator (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-globalaccelerator (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-glue (1.88.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-gluedatabrew (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-gluedatabrew (1.25.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-greengrass (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-greengrass (1.53.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-greengrassv2 (1.19.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-greengrassv2 (1.25.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-groundstation (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-groundstation (1.33.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-guardduty (1.59.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-guardduty (1.70.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-health (1.47.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-health (1.50.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-healthlake (1.13.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-healthlake (1.15.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-honeycode (1.17.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-honeycode (1.19.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iam (1.70.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iam (1.77.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-identitystore (1.21.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-identitystore (1.24.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-imagebuilder (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-imagebuilder (1.45.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-importexport (1.35.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-importexport (1.36.1) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv2 (~> 1.0) - aws-sdk-inspector (1.43.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-inspector (1.45.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-inspector2 (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-internetmonitor (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iot (1.104.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iot1clickdevicesservice (1.39.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iot1clickprojects (1.39.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-iotanalytics (1.51.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-inspector2 (1.6.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iotdataplane (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iot (1.94.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iotdeviceadvisor (1.19.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iot1clickdevicesservice (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iotevents (1.35.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iot1clickprojects (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ioteventsdata (1.29.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iotanalytics (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iotfleethub (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iotdataplane (1.39.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iotfleetwise (1.7.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iotdeviceadvisor (1.15.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iotjobsdataplane (1.38.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iotevents (1.33.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iotroborunner (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ioteventsdata (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iotsecuretunneling (1.23.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iotfleethub (1.11.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iotsitewise (1.50.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iotfleetwise (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iotthingsgraph (1.26.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iotjobsdataplane (1.36.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iottwinmaker (1.11.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iotsecuretunneling (1.21.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iotwireless (1.32.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iotsitewise (1.45.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ivs (1.29.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iotthingsgraph (1.24.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ivschat (1.9.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iottwinmaker (1.5.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ivsrealtime (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iotwireless (1.26.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kafka (1.55.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ivs (1.23.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kafkaconnect (1.9.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ivschat (1.4.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kendra (1.65.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kafka (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kendraranking (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kafkaconnect (1.7.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-keyspaces (1.6.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kendra (1.59.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kinesis (1.45.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-keyspaces (1.2.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kinesisanalytics (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kinesis (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kinesisanalyticsv2 (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kinesisanalytics (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kinesisvideo (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kinesisanalyticsv2 (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kinesisvideoarchivedmedia (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kinesisvideo (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kinesisvideomedia (1.39.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kinesisvideoarchivedmedia (1.44.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kinesisvideosignalingchannels (1.21.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kinesisvideomedia (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kinesisvideowebrtcstorage (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kinesisvideosignalingchannels (1.19.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kms (1.64.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kms (1.58.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-lakeformation (1.34.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-lakeformation (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-lambda (1.96.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-lambda (1.85.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-lambdapreview (1.36.1) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-lambdapreview (1.35.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-lex (1.47.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-lex (1.45.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-lexmodelbuildingservice (1.59.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-lexmodelbuildingservice (1.57.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-lexmodelsv2 (1.32.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-lexmodelsv2 (1.28.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-lexruntimev2 (1.19.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-lexruntimev2 (1.16.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-licensemanager (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-licensemanager (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-licensemanagerlinuxsubscriptions (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-licensemanagerusersubscriptions (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-licensemanagerusersubscriptions (1.3.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-lightsail (1.69.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-lightsail (1.75.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-locationservice (1.24.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-locationservice (1.30.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-lookoutequipment (1.13.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-lookoutequipment (1.16.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-lookoutforvision (1.16.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-lookoutforvision (1.19.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-lookoutmetrics (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-lookoutmetrics (1.24.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-machinelearning (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-machinelearning (1.39.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-macie (1.38.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-macie (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-macie2 (1.47.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-macie2 (1.53.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-mainframemodernization (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-mainframemodernization (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-managedblockchain (1.32.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-managedblockchain (1.38.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-managedgrafana (1.8.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-managedgrafana (1.14.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-marketplacecatalog (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-marketplacecatalog (1.27.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-marketplacecommerceanalytics (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-marketplacecommerceanalytics (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-marketplaceentitlementservice (1.35.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-marketplaceentitlementservice (1.37.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-marketplacemetering (1.44.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-marketplacemetering (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-mediaconnect (1.45.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-mediaconnect (1.48.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-mediaconvert (1.92.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-mediaconvert (1.105.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-medialive (1.89.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-medialive (1.98.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-mediapackage (1.56.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-mediapackage (1.59.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-mediapackagevod (1.36.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-mediapackagevod (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-mediastore (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-mediastore (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-mediastoredata (1.38.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-mediastoredata (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-mediatailor (1.55.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-mediatailor (1.61.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-memorydb (1.8.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-memorydb (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-mgn (1.14.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-mgn (1.18.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-migrationhub (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-migrationhub (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-migrationhubconfig (1.20.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-migrationhubconfig (1.22.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-migrationhuborchestrator (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-migrationhuborchestrator (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-migrationhubrefactorspaces (1.7.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-migrationhubrefactorspaces (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-migrationhubstrategyrecommendations (1.4.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-migrationhubstrategyrecommendations (1.9.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-mobile (1.35.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-mobile (1.37.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-mq (1.40.0) aws-sdk-core (~> 3, >= 3.120.0) aws-sigv4 (~> 1.1) - aws-sdk-mturk (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-mturk (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-mwaa (1.16.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-mwaa (1.20.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-neptune (1.46.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-neptune (1.50.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-networkfirewall (1.18.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-networkfirewall (1.28.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-networkmanager (1.25.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-networkmanager (1.30.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-nimblestudio (1.15.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-nimblestudio (1.18.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-opensearchservice (1.11.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-oam (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-opsworks (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-omics (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-opsworkscm (1.52.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-opensearchserverless (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-opensearchservice (1.20.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-opsworks (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-opsworkscm (1.54.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-organizations (1.59.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-outposts (1.35.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-osis (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-outposts (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-panorama (1.8.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-panorama (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-personalize (1.43.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-personalize (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-personalizeevents (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-personalizeevents (1.30.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-personalizeruntime (1.33.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-personalizeruntime (1.35.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-pi (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-pi (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-pinpoint (1.68.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-pinpoint (1.71.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-pinpointemail (1.35.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-pinpointemail (1.37.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-pinpointsmsvoice (1.32.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-pinpointsmsvoice (1.34.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-pinpointsmsvoicev2 (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-pinpointsmsvoicev2 (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-polly (1.58.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-pipes (1.3.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-pricing (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-polly (1.66.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-privatenetworks (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-pricing (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-prometheusservice (1.15.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-privatenetworks (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-proton (1.17.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-prometheusservice (1.17.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-qldb (1.25.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-proton (1.24.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-qldbsession (1.22.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-qldb (1.28.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-quicksight (1.68.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-qldbsession (1.24.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-quicksight (1.79.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-ram (1.26.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-rds (1.156.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-rds (1.178.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-rdsdataservice (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-rdsdataservice (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-recyclebin (1.8.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-recyclebin (1.5.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-redshift (1.91.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-redshift (1.85.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-redshiftdataapiservice (1.26.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-redshiftdataapiservice (1.21.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-redshiftserverless (1.7.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-redshiftserverless (1.3.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-rekognition (1.78.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-rekognition (1.70.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-resiliencehub (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-resiliencehub (1.5.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-resourceexplorer2 (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-resourcegroups (1.45.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-resourcegroups (1.48.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-resourcegroupstaggingapi (1.47.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-resourcegroupstaggingapi (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-resources (3.142.0) + aws-sdk-resources (3.163.0) aws-sdk-accessanalyzer (~> 1) aws-sdk-account (~> 1) aws-sdk-acm (~> 1) @@ -862,6 +916,7 @@ GEM aws-sdk-apprunner (~> 1) aws-sdk-appstream (~> 1) aws-sdk-appsync (~> 1) + aws-sdk-arczonalshift (~> 1) aws-sdk-athena (~> 1) aws-sdk-auditmanager (~> 1) aws-sdk-augmentedairuntime (~> 1) @@ -879,6 +934,8 @@ GEM aws-sdk-chimesdkmediapipelines (~> 1) aws-sdk-chimesdkmeetings (~> 1) aws-sdk-chimesdkmessaging (~> 1) + aws-sdk-chimesdkvoice (~> 1) + aws-sdk-cleanrooms (~> 1) aws-sdk-cloud9 (~> 1) aws-sdk-cloudcontrolapi (~> 1) aws-sdk-clouddirectory (~> 1) @@ -889,6 +946,7 @@ GEM aws-sdk-cloudsearch (~> 1) aws-sdk-cloudsearchdomain (~> 1) aws-sdk-cloudtrail (~> 1) + aws-sdk-cloudtraildata (~> 1) aws-sdk-cloudwatch (~> 1) aws-sdk-cloudwatchevents (~> 1) aws-sdk-cloudwatchevidently (~> 1) @@ -896,6 +954,7 @@ GEM aws-sdk-cloudwatchrum (~> 1) aws-sdk-codeartifact (~> 1) aws-sdk-codebuild (~> 1) + aws-sdk-codecatalyst (~> 1) aws-sdk-codecommit (~> 1) aws-sdk-codedeploy (~> 1) aws-sdk-codeguruprofiler (~> 1) @@ -913,6 +972,7 @@ GEM aws-sdk-configservice (~> 1) aws-sdk-connect (~> 1) aws-sdk-connectcampaignservice (~> 1) + aws-sdk-connectcases (~> 1) aws-sdk-connectcontactlens (~> 1) aws-sdk-connectparticipant (~> 1) aws-sdk-connectwisdomservice (~> 1) @@ -932,6 +992,7 @@ GEM aws-sdk-directoryservice (~> 1) aws-sdk-dlm (~> 1) aws-sdk-docdb (~> 1) + aws-sdk-docdbelastic (~> 1) aws-sdk-drs (~> 1) aws-sdk-dynamodb (~> 1) aws-sdk-dynamodbstreams (~> 1) @@ -982,6 +1043,7 @@ GEM aws-sdk-importexport (~> 1) aws-sdk-inspector (~> 1) aws-sdk-inspector2 (~> 1) + aws-sdk-internetmonitor (~> 1) aws-sdk-iot (~> 1) aws-sdk-iot1clickdevicesservice (~> 1) aws-sdk-iot1clickprojects (~> 1) @@ -993,6 +1055,7 @@ GEM aws-sdk-iotfleethub (~> 1) aws-sdk-iotfleetwise (~> 1) aws-sdk-iotjobsdataplane (~> 1) + aws-sdk-iotroborunner (~> 1) aws-sdk-iotsecuretunneling (~> 1) aws-sdk-iotsitewise (~> 1) aws-sdk-iotthingsgraph (~> 1) @@ -1000,9 +1063,11 @@ GEM aws-sdk-iotwireless (~> 1) aws-sdk-ivs (~> 1) aws-sdk-ivschat (~> 1) + aws-sdk-ivsrealtime (~> 1) aws-sdk-kafka (~> 1) aws-sdk-kafkaconnect (~> 1) aws-sdk-kendra (~> 1) + aws-sdk-kendraranking (~> 1) aws-sdk-keyspaces (~> 1) aws-sdk-kinesis (~> 1) aws-sdk-kinesisanalytics (~> 1) @@ -1011,6 +1076,7 @@ GEM aws-sdk-kinesisvideoarchivedmedia (~> 1) aws-sdk-kinesisvideomedia (~> 1) aws-sdk-kinesisvideosignalingchannels (~> 1) + aws-sdk-kinesisvideowebrtcstorage (~> 1) aws-sdk-kms (~> 1) aws-sdk-lakeformation (~> 1) aws-sdk-lambda (~> 1) @@ -1020,6 +1086,7 @@ GEM aws-sdk-lexmodelsv2 (~> 1) aws-sdk-lexruntimev2 (~> 1) aws-sdk-licensemanager (~> 1) + aws-sdk-licensemanagerlinuxsubscriptions (~> 1) aws-sdk-licensemanagerusersubscriptions (~> 1) aws-sdk-lightsail (~> 1) aws-sdk-locationservice (~> 1) @@ -1059,10 +1126,14 @@ GEM aws-sdk-networkfirewall (~> 1) aws-sdk-networkmanager (~> 1) aws-sdk-nimblestudio (~> 1) + aws-sdk-oam (~> 1) + aws-sdk-omics (~> 1) + aws-sdk-opensearchserverless (~> 1) aws-sdk-opensearchservice (~> 1) aws-sdk-opsworks (~> 1) aws-sdk-opsworkscm (~> 1) aws-sdk-organizations (~> 1) + aws-sdk-osis (~> 1) aws-sdk-outposts (~> 1) aws-sdk-panorama (~> 1) aws-sdk-personalize (~> 1) @@ -1073,6 +1144,7 @@ GEM aws-sdk-pinpointemail (~> 1) aws-sdk-pinpointsmsvoice (~> 1) aws-sdk-pinpointsmsvoicev2 (~> 1) + aws-sdk-pipes (~> 1) aws-sdk-polly (~> 1) aws-sdk-pricing (~> 1) aws-sdk-privatenetworks (~> 1) @@ -1090,6 +1162,7 @@ GEM aws-sdk-redshiftserverless (~> 1) aws-sdk-rekognition (~> 1) aws-sdk-resiliencehub (~> 1) + aws-sdk-resourceexplorer2 (~> 1) aws-sdk-resourcegroups (~> 1) aws-sdk-resourcegroupstaggingapi (~> 1) aws-sdk-robomaker (~> 1) @@ -1106,11 +1179,15 @@ GEM aws-sdk-sagemaker (~> 1) aws-sdk-sagemakeredgemanager (~> 1) aws-sdk-sagemakerfeaturestoreruntime (~> 1) + aws-sdk-sagemakergeospatial (~> 1) + aws-sdk-sagemakermetrics (~> 1) aws-sdk-sagemakerruntime (~> 1) aws-sdk-savingsplans (~> 1) + aws-sdk-scheduler (~> 1) aws-sdk-schemas (~> 1) aws-sdk-secretsmanager (~> 1) aws-sdk-securityhub (~> 1) + aws-sdk-securitylake (~> 1) aws-sdk-serverlessapplicationrepository (~> 1) aws-sdk-servicecatalog (~> 1) aws-sdk-servicediscovery (~> 1) @@ -1120,6 +1197,7 @@ GEM aws-sdk-shield (~> 1) aws-sdk-signer (~> 1) aws-sdk-simpledb (~> 1) + aws-sdk-simspaceweaver (~> 1) aws-sdk-sms (~> 1) aws-sdk-snowball (~> 1) aws-sdk-snowdevicemanagement (~> 1) @@ -1128,6 +1206,7 @@ GEM aws-sdk-ssm (~> 1) aws-sdk-ssmcontacts (~> 1) aws-sdk-ssmincidents (~> 1) + aws-sdk-ssmsap (~> 1) aws-sdk-ssoadmin (~> 1) aws-sdk-states (~> 1) aws-sdk-storagegateway (~> 1) @@ -1138,11 +1217,13 @@ GEM aws-sdk-textract (~> 1) aws-sdk-timestreamquery (~> 1) aws-sdk-timestreamwrite (~> 1) + aws-sdk-tnb (~> 1) aws-sdk-transcribeservice (~> 1) aws-sdk-transcribestreamingservice (~> 1) aws-sdk-transfer (~> 1) aws-sdk-translate (~> 1) aws-sdk-voiceid (~> 1) + aws-sdk-vpclattice (~> 1) aws-sdk-waf (~> 1) aws-sdk-wafregional (~> 1) aws-sdk-wafv2 (~> 1) @@ -1154,84 +1235,96 @@ GEM aws-sdk-workspaces (~> 1) aws-sdk-workspacesweb (~> 1) aws-sdk-xray (~> 1) - aws-sdk-robomaker (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-robomaker (1.53.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-rolesanywhere (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-rolesanywhere (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-route53 (1.65.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-route53 (1.71.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-route53domains (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-route53domains (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-route53recoverycluster (1.11.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-route53recoverycluster (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-route53recoverycontrolconfig (1.10.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-route53recoverycontrolconfig (1.13.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-route53recoveryreadiness (1.10.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-route53recoveryreadiness (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-route53resolver (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-route53resolver (1.41.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.114.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-s3 (1.122.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.4) aws-sdk-s3control (1.43.0) aws-sdk-core (~> 3, >= 3.122.0) aws-sigv4 (~> 1.1) - aws-sdk-s3outposts (1.13.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-s3outposts (1.17.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-sagemaker (1.178.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-sagemakeredgemanager (1.14.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-sagemaker (1.143.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-sagemakerfeaturestoreruntime (1.16.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-sagemakeredgemanager (1.12.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-sagemakergeospatial (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-sagemakerfeaturestoreruntime (1.12.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-sagemakermetrics (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-sagemakerruntime (1.43.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-sagemakerruntime (1.49.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-savingsplans (1.26.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-savingsplans (1.28.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-schemas (1.23.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-scheduler (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-schemas (1.25.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-secretsmanager (1.46.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-securityhub (1.69.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-securityhub (1.81.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-securitylake (1.3.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-serverlessapplicationrepository (1.43.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-serverlessapplicationrepository (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-servicecatalog (1.60.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-servicediscovery (1.46.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-servicediscovery (1.51.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-servicequotas (1.23.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-servicequotas (1.25.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-ses (1.41.0) aws-sdk-core (~> 3, >= 3.120.0) aws-sigv4 (~> 1.1) - aws-sdk-sesv2 (1.27.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-sesv2 (1.32.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-shield (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-shield (1.51.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-signer (1.32.0) aws-sdk-core (~> 3, >= 3.120.0) @@ -1239,107 +1332,119 @@ GEM aws-sdk-simpledb (1.29.0) aws-sdk-core (~> 3, >= 3.120.0) aws-sigv2 (~> 1.0) - aws-sdk-sms (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-simspaceweaver (1.2.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-sms (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-snowball (1.54.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-snowball (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-snowdevicemanagement (1.9.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-snowdevicemanagement (1.7.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-sns (1.60.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-sns (1.55.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-sqs (1.55.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-sqs (1.51.1) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ssm (1.150.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ssm (1.141.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ssmcontacts (1.17.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ssmcontacts (1.14.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ssmincidents (1.22.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ssmincidents (1.15.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ssmsap (1.3.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ssoadmin (1.20.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ssoadmin (1.23.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-states (1.39.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-storagegateway (1.68.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-storagegateway (1.70.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-support (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-support (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-supportapp (1.0.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-supportapp (1.4.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-swf (1.36.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-swf (1.40.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-synthetics (1.19.0) aws-sdk-core (~> 3, >= 3.121.2) aws-sigv4 (~> 1.1) - aws-sdk-textract (1.38.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-textract (1.45.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-timestreamquery (1.16.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-timestreamquery (1.18.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-timestreamwrite (1.14.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-timestreamwrite (1.17.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-transcribeservice (1.76.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-tnb (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-transcribestreamingservice (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-transcribeservice (1.82.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-transcribestreamingservice (1.46.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-transfer (1.34.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-translate (1.46.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-translate (1.50.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) + aws-sdk-voiceid (1.12.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-voiceid (1.9.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-vpclattice (1.1.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-waf (1.43.0) aws-sdk-core (~> 3, >= 3.122.0) aws-sigv4 (~> 1.1) - aws-sdk-wafregional (1.48.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-wafregional (1.50.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-wafv2 (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-wafv2 (1.56.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-wellarchitected (1.17.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-wellarchitected (1.22.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-workdocs (1.39.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-workdocs (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-worklink (1.33.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-worklink (1.35.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-workmail (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-workmail (1.53.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-workmailmessageflow (1.21.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-workmailmessageflow (1.23.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-workspaces (1.73.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-workspaces (1.80.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-workspacesweb (1.4.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-workspacesweb (1.8.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-xray (1.47.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-xray (1.52.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sigv2 (1.1.0) aws-sigv4 (1.5.2) @@ -1361,58 +1466,63 @@ GEM chef-config concurrent-ruby (~> 1.0) coderay (1.1.3) - concurrent-ruby (1.1.10) - cookstyle (7.32.1) + concurrent-ruby (1.2.2) + cookstyle (7.32.2) rubocop (= 1.25.1) declarative (0.0.20) - delegate (0.2.0) + delegate (0.3.0) diff-lcs (1.5.0) docker-api (2.2.0) excon (>= 0.47.0) multi_json domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - dry-configurable (0.15.0) - concurrent-ruby (~> 1.0) - dry-core (~> 0.6) - dry-container (0.11.0) - concurrent-ruby (~> 1.0) - dry-core (0.8.1) + dry-configurable (1.0.1) + dry-core (~> 1.0, < 2) + zeitwerk (~> 2.6) + dry-core (1.0.0) concurrent-ruby (~> 1.0) - dry-inflector (0.3.0) + zeitwerk (~> 2.6) + dry-inflector (1.0.0) dry-initializer (3.1.1) - dry-logic (1.2.0) + dry-logic (1.5.0) concurrent-ruby (~> 1.0) - dry-core (~> 0.5, >= 0.5) - dry-schema (1.10.6) + dry-core (~> 1.0, < 2) + zeitwerk (~> 2.6) + dry-schema (1.13.1) concurrent-ruby (~> 1.0) - dry-configurable (~> 0.13, >= 0.13.0) - dry-core (~> 0.5, >= 0.5) + dry-configurable (~> 1.0, >= 1.0.1) + dry-core (~> 1.0, < 2) dry-initializer (~> 3.0) - dry-logic (~> 1.2) - dry-types (~> 1.5) - dry-types (1.5.1) + dry-logic (>= 1.4, < 2) + dry-types (>= 1.7, < 2) + zeitwerk (~> 2.6) + dry-types (1.7.1) concurrent-ruby (~> 1.0) - dry-container (~> 0.3) - dry-core (~> 0.5, >= 0.5) - dry-inflector (~> 0.1, >= 0.1.2) - dry-logic (~> 1.0, >= 1.0.2) - dry-validation (1.8.1) + dry-core (~> 1.0) + dry-inflector (~> 1.0) + dry-logic (~> 1.4) + zeitwerk (~> 2.6) + dry-validation (1.10.0) concurrent-ruby (~> 1.0) - dry-container (~> 0.7, >= 0.7.1) - dry-core (~> 0.5, >= 0.5) + dry-core (~> 1.0, < 2) dry-initializer (~> 3.0) - dry-schema (~> 1.8, >= 1.8.0) + dry-schema (>= 1.12, < 2) + zeitwerk (~> 2.6) ed25519 (1.3.0) - erubi (1.11.0) - excon (0.93.0) - faraday (1.4.3) + erubi (1.12.0) + excon (0.99.0) + faraday (1.10.3) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.1) - multipart-post (>= 1.2, < 3) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) ruby2_keywords (>= 0.0.4) faraday-cookie_jar (0.0.7) faraday (>= 0.8.0) @@ -1420,8 +1530,16 @@ GEM faraday-em_http (1.0.0) faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) + faraday-follow_redirects (0.3.0) + faraday (>= 1, < 3) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.4) + multipart-post (~> 2) faraday-net_http (1.0.1) faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) faraday_middleware (1.0.0) faraday (~> 1.0) ffi (1.15.5) @@ -1448,24 +1566,24 @@ GEM builder (>= 2.1.2) rexml (~> 3.0) hashie (4.1.0) + highline (2.1.0) http-cookie (1.0.5) domain_name (~> 0.5) httpclient (2.8.3) - i18n (1.12.0) + i18n (1.13.0) concurrent-ruby (~> 1.0) inifile (3.0.0) - io-console (0.5.11) - irb (1.4.1) + io-console (0.6.0) + irb (1.6.4) reline (>= 0.3.0) - jmespath (1.6.1) - json (2.6.2) - jwt (2.5.0) - kitchen-terraform (6.1.0) - delegate (>= 0.1.0, < 0.3.0) + jmespath (1.6.2) + json (2.6.3) + jwt (2.7.0) + kitchen-terraform (7.0.2) + delegate (~> 0.3.0) dry-validation (~> 1.6) - inspec (>= 3, < 5, != 4.24.32, != 4.24.28, != 4.24.26) + inspec (~> 5.21, >= 5.21.29) json (~> 2.3) - mixlib-shellout (~> 3.0) test-kitchen (>= 2.1, < 4.0) tty-which (~> 0.5.0) license-acceptance (2.1.13) @@ -1480,7 +1598,7 @@ GEM memoist (0.16.2) method_source (1.0.0) mini_mime (1.1.2) - minitest (5.16.3) + minitest (5.18.0) mixlib-config (3.0.27) tomlrb mixlib-log (3.0.9) @@ -1498,28 +1616,32 @@ GEM faraday-cookie_jar (~> 0.0.6) ms_rest (~> 0.7.6) multi_json (1.15.0) - multipart-post (2.2.3) - net-scp (3.0.0) - net-ssh (>= 2.6.5, < 7.0.0) - net-ssh (6.1.0) + multipart-post (2.3.0) + net-scp (4.0.0) + net-ssh (>= 2.6.5, < 8.0.0) + net-ssh (7.1.0) net-ssh-gateway (2.0.0) net-ssh (>= 4.0.0) nori (2.6.0) + options (2.3.2) os (1.1.4) - parallel (1.22.1) - parser (3.1.2.1) + parallel (1.23.0) + parser (3.2.2.1) ast (~> 2.4.1) parslet (1.8.2) pastel (0.8.0) tty-color (~> 0.5) - pry (0.14.1) + progress_bar (1.3.3) + highline (>= 1.6, < 3) + options (~> 2.3.0) + pry (0.14.2) coderay (~> 1.1) method_source (~> 1.0) - public_suffix (5.0.0) + public_suffix (5.0.1) rainbow (3.1.1) rake (13.0.6) - regexp_parser (2.6.0) - reline (0.3.1) + regexp_parser (2.8.0) + reline (0.3.3) io-console (~> 0.5) representable (3.2.0) declarative (< 0.1.0) @@ -1527,24 +1649,24 @@ GEM uber (< 0.2.0) retriable (3.1.2) rexml (3.2.5) - rspec (3.10.0) - rspec-core (~> 3.10.0) - rspec-expectations (~> 3.10.0) - rspec-mocks (~> 3.10.0) - rspec-core (3.10.2) - rspec-support (~> 3.10.0) - rspec-expectations (3.10.2) + rspec (3.11.0) + rspec-core (~> 3.11.0) + rspec-expectations (~> 3.11.0) + rspec-mocks (~> 3.11.0) + rspec-core (3.11.0) + rspec-support (~> 3.11.0) + rspec-expectations (3.11.1) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) + rspec-support (~> 3.11.0) rspec-its (1.3.0) rspec-core (>= 3.0.0) rspec-expectations (>= 3.0.0) - rspec-mocks (3.10.3) + rspec-mocks (3.11.2) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) + rspec-support (~> 3.11.0) rspec-retry (0.6.2) rspec-core (> 3.3) - rspec-support (3.10.3) + rspec-support (3.11.1) rubocop (1.25.1) parallel (~> 1.10) parser (>= 3.1.0.0) @@ -1554,9 +1676,9 @@ GEM rubocop-ast (>= 1.15.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.21.0) - parser (>= 3.1.1.0) - ruby-progressbar (1.11.0) + rubocop-ast (1.28.1) + parser (>= 3.2.1.0) + ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) rubyntlm (0.6.3) rubyzip (2.3.2) @@ -1572,25 +1694,25 @@ GEM unicode-display_width (>= 1.5, < 3.0) unicode_utils (~> 1.4) strings-ansi (0.2.0) - test-kitchen (3.3.2) + test-kitchen (3.5.0) bcrypt_pbkdf (~> 1.0) chef-utils (>= 16.4.35) ed25519 (~> 1.2) license-acceptance (>= 1.0.11, < 3.0) mixlib-install (~> 3.6) mixlib-shellout (>= 1.2, < 4.0) - net-scp (>= 1.1, < 4.0) - net-ssh (>= 2.9, < 7.0) + net-scp (>= 1.1, < 5.0) + net-ssh (>= 2.9, < 8.0) net-ssh-gateway (>= 1.2, < 3.0) thor (>= 0.19, < 2.0) winrm (~> 2.0) winrm-elevated (~> 1.0) winrm-fs (~> 1.1) - thor (1.2.1) + thor (1.2.2) timeliness (0.3.10) tomlrb (1.3.0) trailblazer-option (0.1.2) - train (3.10.1) + train (3.10.7) activesupport (>= 6.0.3.1) azure_graph_rbac (~> 0.16) azure_mgmt_key_vault (~> 0.17) @@ -1601,7 +1723,7 @@ GEM google-api-client (>= 0.23.9, <= 0.52.0) googleauth (>= 0.6.6, <= 0.14.0) inifile (~> 3.0) - train-core (= 3.10.1) + train-core (= 3.10.7) train-winrm (~> 0.2) train-aws (0.2.24) aws-sdk-alexaforbusiness (~> 1.0) @@ -1679,13 +1801,13 @@ GEM aws-sdk-synthetics (~> 1.19.0) aws-sdk-transfer (>= 1.26, < 1.35) aws-sdk-waf (~> 1.43.0) - train-core (3.10.1) + train-core (3.10.7) addressable (~> 2.5) ffi (!= 1.13.0) json (>= 1.8, < 3.0) mixlib-shellout (>= 2.0, < 4.0) - net-scp (>= 1.2, < 4.0) - net-ssh (>= 2.9, < 7.0) + net-scp (>= 1.2, < 5.0) + net-ssh (>= 2.9, < 8.0) train-habitat (0.2.22) train-winrm (0.2.13) winrm (>= 2.3.6, < 3.0) @@ -1710,12 +1832,12 @@ GEM strings (~> 0.2.0) tty-screen (~> 0.8) tty-which (0.5.0) - tzinfo (2.0.5) + tzinfo (2.0.6) concurrent-ruby (~> 1.0) uber (0.1.0) unf (0.1.4) unf_ext - unicode-display_width (2.3.0) + unicode-display_width (2.4.2) unicode_utils (1.4.0) winrm (2.3.6) builder (>= 2.1.2) @@ -1736,9 +1858,9 @@ GEM rubyzip (~> 2.0) winrm (~> 2.0) wisper (2.0.1) + zeitwerk (2.6.8) PLATFORMS - ruby x86_64-linux DEPENDENCIES @@ -1747,10 +1869,10 @@ DEPENDENCIES chef-config! chef-utils! cinc-auditor-bin! - inspec (= 4.52.9)! + inspec (~> 5.21)! inspec-core! irb! - kitchen-terraform (~> 6.1.0)! + kitchen-terraform (~> 7.0)! mixlib-install! mixlib-versioning! rspec-retry! @@ -1758,4 +1880,4 @@ DEPENDENCIES unf_ext! BUNDLED WITH - 2.2.23 + 2.4.13 diff --git a/inf-terraform-aws/files/Makefile b/inf-terraform-aws/files/Makefile index 27eb9ade1..f829aae54 100644 --- a/inf-terraform-aws/files/Makefile +++ b/inf-terraform-aws/files/Makefile @@ -15,6 +15,15 @@ TF_WORKSPACE = default # tfenv hack DEBUG := 0 +# Statefile Parameters +ACCOUNT_ID := $(shell aws sts get-caller-identity --query 'Account' --output text) +TF_BACKEND_S3KEY_MOD := $(shell echo "$(TF_BACKEND_S3KEY)" | sed "s/\//-/g") +TF_BACKEND_S3KEY_MOD := $(shell echo "$(TF_BACKEND_S3KEY_MOD)" | sed "s/-/\//") + +TFSTATE_BUCKET := $(ACCOUNT_ID)-terraform-state-bucket +TFSTATE_KEY := $(TF_BACKEND_S3KEY_MOD)-terraform-state +TFSTATE_TABLE := $(ACCOUNT_ID)-terraform-state-lock-table + .PHONY: default default: test @@ -130,7 +139,12 @@ install-python-env: .PHONY: init-terraform # Install Terraform workspace. init-terraform: - echo 1 | terraform init -backend=true -force-copy -input=false -backend-config="workspace_key_prefix=$(TF_BACKEND_PREFIX)" -backend-config="key=$(TF_BACKEND_S3KEY)/terraform.tfstate" + + @echo "Bucket: ${TFSTATE_BUCKET}" + @echo "Key : ${TFSTATE_KEY}" + @echo "Table : ${TFSTATE_TABLE}" + + echo 1 | terraform init -backend-config="bucket=$(TFSTATE_BUCKET)" -backend-config="key=$(TFSTATE_KEY)" -backend-config="dynamodb_table=$(TFSTATE_TABLE)" -force-copy -input=false .PHONY: install-test-deps # Install testing dependencies. @@ -140,7 +154,7 @@ install-test-deps: install-ruby-gems install-python-env # run cinc-auditor without use of kitchen-terraform and create yaml for mapping terraform outputs to inspec inputs. cinc-auditor-test: sh ./lib/scripts/createstackfixtureoutputs2yml.sh - bundle exec cinc-auditor exec test/integration/default --no-create-lockfile --no-distinct-exit --input-file ./test/integration/$$profile/files/inputs-from-tfo-stack.yml --target aws:// + bundle exec cinc-auditor exec test/integration/default --no-create-lockfile --no-distinct-exit --input-file ./test/integration/default/files/inputs-from-tfo-stack.yml --target aws:// .PHONY: clean # Reset Working directory (take care if something has deployed upfront) diff --git a/inf-terraform-aws/files/Pipfile b/inf-terraform-aws/files/Pipfile index 601f3cd9d..b679ceaa2 100644 --- a/inf-terraform-aws/files/Pipfile +++ b/inf-terraform-aws/files/Pipfile @@ -6,8 +6,8 @@ verify_ssl = true [dev-packages] [packages] -python-hcl2 = "==2.0.3" -boto3 = "==1.20.48" +python-hcl2 = "~=2.0" +boto3 = "~=1.26" yq = ">2" [requires] diff --git a/inf-terraform-aws/files/README.md b/inf-terraform-aws/files/README.md index 5621c12c0..980fd74c4 100644 --- a/inf-terraform-aws/files/README.md +++ b/inf-terraform-aws/files/README.md @@ -16,16 +16,16 @@ The behavior of a stack is determined by its purpose and the set of input parame | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0 | -| [aws](#requirement\_aws) | 4.31.0 | -| [random](#requirement\_random) | 3.4.3 | +| [aws](#requirement\_aws) | 4.67.0 | +| [random](#requirement\_random) | 3.5.1 | ## Providers | Name | Version | |------|---------| -| [aws](#provider\_aws) | 4.31.0 | +| [aws](#provider\_aws) | 4.67.0 | | [local](#provider\_local) | n/a | -| [random](#provider\_random) | 3.4.3 | +| [random](#provider\_random) | 3.5.1 | | [time](#provider\_time) | n/a | ## Modules @@ -36,9 +36,9 @@ No modules. | Name | Type | |------|------| -| [aws_cloudformation_stack.cft-s3](https://registry.terraform.io/providers/hashicorp/aws/4.31.0/docs/resources/cloudformation_stack) | resource | +| [aws_cloudformation_stack.cft-s3](https://registry.terraform.io/providers/hashicorp/aws/4.67.0/docs/resources/cloudformation_stack) | resource | | [local_file.terraform-data](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource | -| [random_id.id](https://registry.terraform.io/providers/hashicorp/random/3.4.3/docs/resources/id) | resource | +| [random_id.id](https://registry.terraform.io/providers/hashicorp/random/3.5.1/docs/resources/id) | resource | | [time_static.deployment](https://registry.terraform.io/providers/hashicorp/time/latest/docs/resources/static) | resource | ## Inputs @@ -88,9 +88,9 @@ Runing `make check-config` will do a basic verification on the stack setup and p ``` $ make check-config -Account "XXXXXXXXXXXX" is configured for the "dev" environment...........Passed -There is no account configured for the "test" environment................ Warn -There is no account configured for the "prod" environment................ Warn +Account "XXXXXXXXXXXX" is configured for the dev environment.............Passed +There is no account configured for the test environment.................. Warn +There is no account configured for the prod environment.................. Warn AWS account configured using SSO.........................................Passed Using "YYYYYYYYYYYYYY:ZZZZZZZZ@MyOrganization.com".....................Passed Backend configured to "MyStateFileLocation"..............................Passed diff --git a/inf-terraform-aws/files/backend.tf b/inf-terraform-aws/files/backend.tf index 750f1e655..824d6152d 100644 --- a/inf-terraform-aws/files/backend.tf +++ b/inf-terraform-aws/files/backend.tf @@ -1,7 +1,5 @@ terraform { backend "s3" { - bucket = "" region = "eu-west-1" - acl = "bucket-owner-full-control" } } diff --git a/inf-terraform-aws/files/cfn-templates/cfs3.json b/inf-terraform-aws/files/cfn-templates/cfs3.json deleted file mode 100644 index 374d38831..000000000 --- a/inf-terraform-aws/files/cfn-templates/cfs3.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "AWSTemplateFormatVersion": "2010-09-09", - "Description": "CloudFormation template of an S3 bucket for the AWS Quickstarter.", - "Outputs": { - "S3BucketName": { - "Description": "Bucket Created using this template.", - "Value": { - "Ref": "S3Bucket" - } - } - }, - "Resources": { - "S3Bucket": { - "Properties": { - "AccessControl": "Private", - "BucketEncryption": { - "ServerSideEncryptionConfiguration": [ - { - "ServerSideEncryptionByDefault": { - "SSEAlgorithm": "AES256" - } - } - ] - } - }, - "Type": "AWS::S3::Bucket" - } - } -} diff --git a/inf-terraform-aws/files/inputs2outputs.tf b/inf-terraform-aws/files/inputs2outputs.tf index 57c457989..13ae9729f 100644 --- a/inf-terraform-aws/files/inputs2outputs.tf +++ b/inf-terraform-aws/files/inputs2outputs.tf @@ -5,7 +5,6 @@ output "inputs2outputs" { description = "all inputs passed to outputs" value = [{ - data_bucket_name = var.data_bucket_name meta_environment = var.meta_environment name = var.name }] diff --git a/inf-terraform-aws/files/lib/scripts/aws/check_conf.sh b/inf-terraform-aws/files/lib/scripts/aws/check_conf.sh index b2baa0d31..84ab3cc54 100755 --- a/inf-terraform-aws/files/lib/scripts/aws/check_conf.sh +++ b/inf-terraform-aws/files/lib/scripts/aws/check_conf.sh @@ -48,7 +48,7 @@ function note() { } function check_backend() { - BUCKET=$(grep "bucket =" backend.tf | awk -F '=' '{print $2}'|tr -d '"'|xargs) + BUCKET="$ACCOUNT-terraform-state-bucket" if [ -n "$BUCKET" ]; then if [ "$BUCKET" = "$DEFAULTBUCKET" ]; then nok "TF Backend is not configured. Check your backend.tf file" diff --git a/inf-terraform-aws/files/lib/scripts/createstackfixtureoutputs2yml.sh b/inf-terraform-aws/files/lib/scripts/createstackfixtureoutputs2yml.sh index 10cc87bd3..fced6fcd0 100755 --- a/inf-terraform-aws/files/lib/scripts/createstackfixtureoutputs2yml.sh +++ b/inf-terraform-aws/files/lib/scripts/createstackfixtureoutputs2yml.sh @@ -29,9 +29,9 @@ cd ${CWD}/test/fixtures/default terraform output -json > "${TOJFILE}" # Convert terraform json outputs to yaml. -# Use symbolize_names for keys ("id" -> :id) -# Symbolize_names is required, as kitchen-terraform outputs are created as inspec inputs using this type for keys. +# Do not use symbolize_names for keys ("id" -> :id). +# Symbolize_names is no longer required, as kitchen-terraform outputs are created as inspec inputs using this type for keys. jq 'with_entries(.value |= .value)|with_entries(.key = "output_" + .key)' "${TOJFILE}" | \ - ruby -ryaml -rjson -e 'puts YAML.dump(JSON.parse(STDIN.read, :symbolize_names => true))' > "${TOYFILE}" + ruby -ryaml -rjson -e 'puts YAML.dump(JSON.parse(STDIN.read, :symbolize_names => false))' > "${TOYFILE}" popd diff --git a/inf-terraform-aws/files/lib/scripts/createstackoutputs2yml.sh b/inf-terraform-aws/files/lib/scripts/createstackoutputs2yml.sh index fd786688d..88c30d319 100755 --- a/inf-terraform-aws/files/lib/scripts/createstackoutputs2yml.sh +++ b/inf-terraform-aws/files/lib/scripts/createstackoutputs2yml.sh @@ -28,9 +28,9 @@ pushd . terraform output -json > "${TOJFILE}" # Convert terraform json outputs to yaml. -# Use symbolize_names for keys ("id" -> :id) -# Symbolize_names is required, as kitchen-terraform outputs are created as inspec inputs using this type for keys. +# Do not use symbolize_names for keys ("id" -> :id). +# Symbolize_names is no longer required, as kitchen-terraform outputs are created as inspec inputs using this type for keys. jq 'with_entries(.value |= .value)|with_entries(.key = "output_" + .key)' "${TOJFILE}" | \ - ruby -ryaml -rjson -e 'puts YAML.dump(JSON.parse(STDIN.read, :symbolize_names => true))' > "${TOYFILE}" + ruby -ryaml -rjson -e 'puts YAML.dump(JSON.parse(STDIN.read, :symbolize_names => false))' > "${TOYFILE}" popd diff --git a/inf-terraform-aws/files/main.tf b/inf-terraform-aws/files/main.tf index 012f1cdfa..7c71a719a 100644 --- a/inf-terraform-aws/files/main.tf +++ b/inf-terraform-aws/files/main.tf @@ -1,8 +1,6 @@ locals { unique_name = var.name - cf_stack_name = "cft-s3" - tags = merge(local.common_tags, { DeploymentDate = formatdate("YYYYMMDD", timestamp()) InitialDeploymentDate = time_static.deployment.rfc3339 @@ -11,10 +9,5 @@ locals { resource "time_static" "deployment" {} -resource "aws_cloudformation_stack" "cft-s3" { - name = var.name - template_body = file("${path.module}/cfn-templates/cfs3.json") - tags = local.tags -} - +data "aws_region" "current" {} diff --git a/inf-terraform-aws/files/outputs.tf b/inf-terraform-aws/files/outputs.tf index 22f56eecf..5e7946870 100644 --- a/inf-terraform-aws/files/outputs.tf +++ b/inf-terraform-aws/files/outputs.tf @@ -13,3 +13,8 @@ output "meta_environment" { description = "The type of the environment." value = var.meta_environment } + +output "aws_region" { + description = "The current region." + value = data.aws_region.current.name +} diff --git a/inf-terraform-aws/files/terraform-data.tf b/inf-terraform-aws/files/terraform-data.tf index 4c2bcae10..63265d73c 100644 --- a/inf-terraform-aws/files/terraform-data.tf +++ b/inf-terraform-aws/files/terraform-data.tf @@ -1,10 +1,9 @@ locals { terraform-data = { - id = local.id - name = var.name - tags = local.tags - data_bucket_name = var.data_bucket_name - cf_stack_outputs = aws_cloudformation_stack.cft-s3.outputs + id = local.id + name = var.name + tags = local.tags + current_region = data.aws_region.current.name } } diff --git a/inf-terraform-aws/files/test/fixtures/default/random.tf b/inf-terraform-aws/files/test/fixtures/default/random.tf index 6cce0e995..0cc81ef09 100644 --- a/inf-terraform-aws/files/test/fixtures/default/random.tf +++ b/inf-terraform-aws/files/test/fixtures/default/random.tf @@ -4,16 +4,6 @@ resource "random_id" "id" { byte_length = 4 } -resource "random_string" "passwordrds" { - length = 16 - min_lower = 1 - min_upper = 1 - number = true - special = true - override_special = "!#+%" -} - locals { - id = random_id.id.hex - password = random_string.passwordrds.result + id = random_id.id.hex } diff --git a/inf-terraform-aws/files/test/integration/default/controls/default.rb b/inf-terraform-aws/files/test/integration/default/controls/default.rb index 41019179b..cad5d7f69 100644 --- a/inf-terraform-aws/files/test/integration/default/controls/default.rb +++ b/inf-terraform-aws/files/test/integration/default/controls/default.rb @@ -15,33 +15,8 @@ desc "This test suite asserts the correct functionality of the stack under test." tag name - cfClient = SpecHelper::AWS.sdk.client(Aws::CloudFormation) - cfStackName = name - - # ########################################################### - # Test if Cloudformation Stack has been succesfully deployed - # ########################################################### - describe "CloudFormation Stack #{cfStackName}" do - cfStack = cfClient.describe_stacks({stack_name: cfStackName}).stacks[0] - - context 'status' do - it { expect(cfStack.stack_status).to eq("CREATE_COMPLETE").or eq("UPDATE_COMPLETE") } - end - end - - cfStackOutputs = t['cf_stack_outputs'] - cfStackOutputsHash = cfStackOutputs.to_h - s3BucketName = cfStackOutputsHash["S3BucketName"] - - # ########################################################### - # Tests on resources deployed by the Cloudformation Stack - # ########################################################### - describe aws_s3_bucket(bucket_name: s3BucketName) do - it { should exist } - it { should_not be_public } - its('bucket_policy') { should be_empty } - its('region') { should eq 'eu-west-1' } - it { should have_default_encryption_enabled } + describe aws_region(region_name: t['current_region']) do + its('endpoint') { should be_in ['ec2.eu-west-1.amazonaws.com','ec2.us-east-1.amazonaws.com'] } end describe "Stack Testing" do diff --git a/inf-terraform-aws/files/test/integration/default/inspec.yml b/inf-terraform-aws/files/test/integration/default/inspec.yml index ae03fc836..4ae1a130d 100644 --- a/inf-terraform-aws/files/test/integration/default/inspec.yml +++ b/inf-terraform-aws/files/test/integration/default/inspec.yml @@ -7,4 +7,4 @@ supports: depends: - name: inspec-aws git: https://github.com/inspec/inspec-aws - tag: v1.80.0 + tag: v1.83.60 diff --git a/inf-terraform-aws/files/test/integration/default/inspec.yml.tmpl b/inf-terraform-aws/files/test/integration/default/inspec.yml.tmpl index 640f36021..c4935f920 100644 --- a/inf-terraform-aws/files/test/integration/default/inspec.yml.tmpl +++ b/inf-terraform-aws/files/test/integration/default/inspec.yml.tmpl @@ -5,4 +5,4 @@ supports: depends: - name: inspec-aws git: https://github.com/inspec/inspec-aws - tag: v1.80.0 + tag: v1.83.60 diff --git a/inf-terraform-aws/files/variables.tf b/inf-terraform-aws/files/variables.tf index 452742e25..49cc900c6 100644 --- a/inf-terraform-aws/files/variables.tf +++ b/inf-terraform-aws/files/variables.tf @@ -31,13 +31,3 @@ variable "meta_environment" { default = "DEVELOPMENT" } -# --------------------------------------------- -# S3 Bucket Variables -# --------------------------------------------- - -variable "data_bucket_name" { - description = "The name of the S3 data bucket." - type = string - default = "quickstarter" -} - diff --git a/inf-terraform-aws/files/versions.tf b/inf-terraform-aws/files/versions.tf index c92829025..88efbc759 100644 --- a/inf-terraform-aws/files/versions.tf +++ b/inf-terraform-aws/files/versions.tf @@ -3,11 +3,11 @@ terraform { required_providers { aws = { source = "hashicorp/aws" - version = "4.31.0" + version = "4.67.0" } random = { source = "hashicorp/random" - version = "3.4.3" + version = "3.5.1" } } } diff --git a/inf-terraform-azure/Jenkinsfile.template b/inf-terraform-azure/Jenkinsfile.template index 77e946e7e..4e867ce70 100644 --- a/inf-terraform-azure/Jenkinsfile.template +++ b/inf-terraform-azure/Jenkinsfile.template @@ -27,7 +27,7 @@ import org.ods.util.GitCredentialStore odsComponentPipeline( - imageStreamTag: '@ods_namespace@/jenkins-agent-terraform:@agent_image_tag@', + imageStreamTag: '@ods_namespace@/jenkins-agent-terraform-2306:@agent_image_tag@', branchToEnvironmentMapping: [ 'master': 'dev', ] diff --git a/inf-terraform-azure/files/.pre-commit-config.yaml b/inf-terraform-azure/files/.pre-commit-config.yaml index 59f6567f6..248faf615 100644 --- a/inf-terraform-azure/files/.pre-commit-config.yaml +++ b/inf-terraform-azure/files/.pre-commit-config.yaml @@ -1,8 +1,12 @@ exclude: .terraform fail_fast: true repos: +- repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks - repo: https://github.com/pre-commit/pre-commit-hooks.git - rev: v4.1.0 + rev: v4.4.0 hooks: - id: check-added-large-files args: @@ -26,38 +30,47 @@ repos: - --indent=2 - --no-ensure-ascii - id: trailing-whitespace + - repo: https://github.com/psf/black.git - rev: 21.7b0 + rev: 23.3.0 hooks: - id: black + args: [--line-length=90] files: (\.py)$ + - repo: https://github.com/PyCQA/flake8.git - rev: 4.0.1 + rev: 6.0.0 hooks: - id: flake8 + args: [--max-line-length=90] files: (\.py)$ + - repo: https://github.com/antonbabenko/pre-commit-terraform - rev: v1.64.1 + rev: v1.79.1 hooks: - id: terraform_fmt + - repo: https://github.com/nichtraunzer/ods-pre-commit-hooks - rev: v0.3.7 + rev: v0.4.2 hooks: - id: terraformcreatei2o files: (\.tf)$ - id: terraformstackmoduleoutputs files: (\.tf)$ + - repo: https://github.com/antonbabenko/pre-commit-terraform - rev: v1.64.1 + rev: v1.79.1 hooks: - id: terraform_fmt - id: terraform_docs + - repo: https://github.com/jumanjihouse/pre-commit-hooks - rev: 2.1.6 + rev: 3.0.0 hooks: - id: rubocop args: - --fix-layout + - repo: local hooks: - id: test @@ -68,4 +81,3 @@ repos: files: (\.tf|\.rb)$ pass_filenames: false verbose: true - diff --git a/inf-terraform-azure/files/.ruby-version b/inf-terraform-azure/files/.ruby-version index a603bb50a..be94e6f53 100644 --- a/inf-terraform-azure/files/.ruby-version +++ b/inf-terraform-azure/files/.ruby-version @@ -1 +1 @@ -2.7.5 +3.2.2 diff --git a/inf-terraform-azure/files/.terraform-version b/inf-terraform-azure/files/.terraform-version index 9d4f8239d..c514bd85c 100644 --- a/inf-terraform-azure/files/.terraform-version +++ b/inf-terraform-azure/files/.terraform-version @@ -1 +1 @@ -1.2.9 +1.4.6 diff --git a/inf-terraform-azure/files/Gemfile b/inf-terraform-azure/files/Gemfile index 4e452a2f2..91329d08c 100644 --- a/inf-terraform-azure/files/Gemfile +++ b/inf-terraform-azure/files/Gemfile @@ -1,17 +1,16 @@ +source 'https://rubygems.org' + source 'https://rubygems.org' do - if Gem.ruby_version < Gem::Version.new('2.7.0') - gem 'activesupport', '< 7.0.0' - end - gem 'activesupport', '< 7.0.0' + gem 'activesupport' gem 'irb' - gem 'kitchen-terraform', '~> 6.1.0' + gem 'kitchen-terraform', '~> 7.0' gem 'test-kitchen' gem 'rspec-retry' end source 'https://packagecloud.io/cinc-project/stable' do gem 'inspec-core' - gem 'inspec', '4.52.9' + gem 'inspec', '~> 5.21' gem 'cinc-auditor-bin' gem 'unf_ext' gem 'chef-config' diff --git a/inf-terraform-azure/files/Gemfile.lock b/inf-terraform-azure/files/Gemfile.lock index 7974fc60a..3bb2bb7f7 100644 --- a/inf-terraform-azure/files/Gemfile.lock +++ b/inf-terraform-azure/files/Gemfile.lock @@ -1,35 +1,33 @@ -GEM - specs: - GEM remote: https://packagecloud.io/cinc-project/stable/ specs: - chef-config (17.10.0) + chef-config (18.2.7) addressable - chef-utils (= 17.10.0) + chef-utils (= 18.2.7) fuzzyurl mixlib-config (>= 2.2.12, < 4.0) mixlib-shellout (>= 2.0, < 4.0) tomlrb (~> 1.2) - chef-utils (17.10.0) + chef-utils (18.2.7) concurrent-ruby - cinc-auditor-bin (4.52.9) - inspec (= 4.52.9) - inspec (4.52.9) + cinc-auditor-bin (5.21.29) + inspec (= 5.21.29) + inspec (5.21.29) cookstyle faraday_middleware (>= 0.12.2, < 1.1) - inspec-core (= 4.52.9) + inspec-core (= 5.21.29) mongo (= 2.13.2) + progress_bar (~> 1.3.3) rake - train (~> 3.0) + train (~> 3.10) train-aws (~> 0.2) train-habitat (~> 0.1) train-winrm (~> 0.2) - inspec-core (4.52.9) + inspec-core (5.21.29) addressable (~> 2.4) chef-telemetry (~> 1.0, >= 1.0.8) - faraday (>= 0.9.0, < 1.5) - faraday_middleware (~> 1.0) + faraday (>= 1, < 3) + faraday-follow_redirects (~> 0.3) hashie (>= 3.4, < 5.0) license-acceptance (>= 0.2.13, < 3.0) method_source (>= 0.8, < 2.0) @@ -38,17 +36,17 @@ GEM parallel (~> 1.9) parslet (>= 1.5, < 2.0) pry (~> 0.13) - rspec (>= 3.9, < 3.11) + rspec (>= 3.9, <= 3.11) rspec-its (~> 1.2) rubyzip (>= 1.2.2, < 3.0) semverse (~> 3.0) sslshake (~> 1.2) thor (>= 0.20, < 2.0) tomlrb (>= 1.2, < 2.1) - train-core (~> 3.0) + train-core (~> 3.10) tty-prompt (~> 0.17) tty-table (~> 0.10) - mixlib-install (3.12.19) + mixlib-install (3.12.27) mixlib-shellout mixlib-versioning thor @@ -58,34 +56,33 @@ GEM GEM remote: https://rubygems.org/ specs: - activesupport (6.1.7) + activesupport (7.0.4.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.8.1) + addressable (2.8.4) public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) aws-eventstream (1.2.0) - aws-partitions (1.643.0) - aws-sdk-alexaforbusiness (1.56.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-partitions (1.763.0) + aws-sdk-alexaforbusiness (1.58.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-amplify (1.32.0) aws-sdk-core (~> 3, >= 3.120.0) aws-sigv4 (~> 1.1) - aws-sdk-apigateway (1.78.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-apigateway (1.81.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-apigatewayv2 (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-apigatewayv2 (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-applicationautoscaling (1.51.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-athena (1.56.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-athena (1.65.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-autoscaling (1.63.0) aws-sdk-core (~> 3, >= 3.112.0) @@ -93,41 +90,41 @@ GEM aws-sdk-batch (1.47.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-budgets (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-budgets (1.52.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudformation (1.70.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudformation (1.77.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudfront (1.68.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudfront (1.76.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudhsm (1.39.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudhsm (1.41.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudhsmv2 (1.42.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudhsmv2 (1.44.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudtrail (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudtrail (1.58.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudwatch (1.67.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudwatch (1.73.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-cloudwatchevents (1.46.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-cloudwatchlogs (1.53.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-cloudwatchlogs (1.62.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-codecommit (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codecommit (1.53.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-codedeploy (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codedeploy (1.52.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-codepipeline (1.53.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-codepipeline (1.55.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-cognitoidentity (1.31.0) aws-sdk-core (~> 3, >= 3.112.0) @@ -135,55 +132,55 @@ GEM aws-sdk-cognitoidentityprovider (1.53.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-configservice (1.83.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-configservice (1.90.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-core (3.158.1) + aws-sdk-core (3.172.0) aws-eventstream (~> 1, >= 1.0.2) - aws-partitions (~> 1, >= 1.525.0) - aws-sigv4 (~> 1.1) + aws-partitions (~> 1, >= 1.651.0) + aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-costandusagereportservice (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-costandusagereportservice (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-databasemigrationservice (1.53.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-dynamodb (1.77.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-dynamodb (1.84.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ec2 (1.341.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ec2 (1.379.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ecr (1.56.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ecr (1.58.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ecrpublic (1.12.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ecrpublic (1.16.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ecs (1.102.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ecs (1.118.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-efs (1.54.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-efs (1.60.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-eks (1.77.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-eks (1.83.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticache (1.79.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticache (1.85.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticbeanstalk (1.51.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticbeanstalk (1.54.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticloadbalancing (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticloadbalancing (1.42.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticloadbalancingv2 (1.79.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticloadbalancingv2 (1.84.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-elasticsearchservice (1.66.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-elasticsearchservice (1.70.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-emr (1.53.0) aws-sdk-core (~> 3, >= 3.121.2) @@ -191,38 +188,38 @@ GEM aws-sdk-eventbridge (1.24.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-firehose (1.48.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-firehose (1.51.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-glue (1.88.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-guardduty (1.59.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-guardduty (1.70.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-iam (1.70.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-iam (1.77.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kafka (1.50.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kafka (1.55.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kinesis (1.41.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kinesis (1.45.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-kms (1.58.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-kms (1.64.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-lambda (1.85.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-lambda (1.96.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-mq (1.40.0) aws-sdk-core (~> 3, >= 3.120.0) aws-sigv4 (~> 1.1) - aws-sdk-networkfirewall (1.19.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-networkfirewall (1.28.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-networkmanager (1.25.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-networkmanager (1.30.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-organizations (1.59.0) aws-sdk-core (~> 3, >= 3.112.0) @@ -230,23 +227,23 @@ GEM aws-sdk-ram (1.26.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-rds (1.156.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-rds (1.178.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-redshift (1.85.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-redshift (1.91.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-route53 (1.65.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-route53 (1.71.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-route53domains (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-route53domains (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-route53resolver (1.37.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-route53resolver (1.41.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.114.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-s3 (1.122.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.4) aws-sdk-s3control (1.43.0) @@ -255,8 +252,8 @@ GEM aws-sdk-secretsmanager (1.46.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-securityhub (1.69.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-securityhub (1.81.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-servicecatalog (1.60.0) aws-sdk-core (~> 3, >= 3.112.0) @@ -264,8 +261,8 @@ GEM aws-sdk-ses (1.41.0) aws-sdk-core (~> 3, >= 3.120.0) aws-sigv4 (~> 1.1) - aws-sdk-shield (1.49.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-shield (1.51.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-signer (1.32.0) aws-sdk-core (~> 3, >= 3.120.0) @@ -273,17 +270,17 @@ GEM aws-sdk-simpledb (1.29.0) aws-sdk-core (~> 3, >= 3.120.0) aws-sigv2 (~> 1.0) - aws-sdk-sms (1.40.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-sms (1.43.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-sns (1.55.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-sns (1.60.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-sqs (1.51.1) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-sqs (1.55.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-ssm (1.141.0) - aws-sdk-core (~> 3, >= 3.127.0) + aws-sdk-ssm (1.150.0) + aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) aws-sdk-states (1.39.0) aws-sdk-core (~> 3, >= 3.112.0) @@ -317,58 +314,63 @@ GEM chef-config concurrent-ruby (~> 1.0) coderay (1.1.3) - concurrent-ruby (1.1.10) - cookstyle (7.32.1) + concurrent-ruby (1.2.2) + cookstyle (7.32.2) rubocop (= 1.25.1) declarative (0.0.20) - delegate (0.2.0) + delegate (0.3.0) diff-lcs (1.5.0) docker-api (2.2.0) excon (>= 0.47.0) multi_json domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - dry-configurable (0.15.0) - concurrent-ruby (~> 1.0) - dry-core (~> 0.6) - dry-container (0.11.0) - concurrent-ruby (~> 1.0) - dry-core (0.8.1) + dry-configurable (1.0.1) + dry-core (~> 1.0, < 2) + zeitwerk (~> 2.6) + dry-core (1.0.0) concurrent-ruby (~> 1.0) - dry-inflector (0.3.0) + zeitwerk (~> 2.6) + dry-inflector (1.0.0) dry-initializer (3.1.1) - dry-logic (1.2.0) + dry-logic (1.5.0) concurrent-ruby (~> 1.0) - dry-core (~> 0.5, >= 0.5) - dry-schema (1.10.6) + dry-core (~> 1.0, < 2) + zeitwerk (~> 2.6) + dry-schema (1.13.1) concurrent-ruby (~> 1.0) - dry-configurable (~> 0.13, >= 0.13.0) - dry-core (~> 0.5, >= 0.5) + dry-configurable (~> 1.0, >= 1.0.1) + dry-core (~> 1.0, < 2) dry-initializer (~> 3.0) - dry-logic (~> 1.2) - dry-types (~> 1.5) - dry-types (1.5.1) + dry-logic (>= 1.4, < 2) + dry-types (>= 1.7, < 2) + zeitwerk (~> 2.6) + dry-types (1.7.1) concurrent-ruby (~> 1.0) - dry-container (~> 0.3) - dry-core (~> 0.5, >= 0.5) - dry-inflector (~> 0.1, >= 0.1.2) - dry-logic (~> 1.0, >= 1.0.2) - dry-validation (1.8.1) + dry-core (~> 1.0) + dry-inflector (~> 1.0) + dry-logic (~> 1.4) + zeitwerk (~> 2.6) + dry-validation (1.10.0) concurrent-ruby (~> 1.0) - dry-container (~> 0.7, >= 0.7.1) - dry-core (~> 0.5, >= 0.5) + dry-core (~> 1.0, < 2) dry-initializer (~> 3.0) - dry-schema (~> 1.8, >= 1.8.0) + dry-schema (>= 1.12, < 2) + zeitwerk (~> 2.6) ed25519 (1.3.0) - erubi (1.11.0) - excon (0.93.0) - faraday (1.4.3) + erubi (1.12.0) + excon (0.99.0) + faraday (1.10.3) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.1) - multipart-post (>= 1.2, < 3) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) ruby2_keywords (>= 0.0.4) faraday-cookie_jar (0.0.7) faraday (>= 0.8.0) @@ -376,8 +378,16 @@ GEM faraday-em_http (1.0.0) faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) + faraday-follow_redirects (0.3.0) + faraday (>= 1, < 3) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.4) + multipart-post (~> 2) faraday-net_http (1.0.1) faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) faraday_middleware (1.0.0) faraday (~> 1.0) ffi (1.15.5) @@ -404,24 +414,24 @@ GEM builder (>= 2.1.2) rexml (~> 3.0) hashie (4.1.0) + highline (2.1.0) http-cookie (1.0.5) domain_name (~> 0.5) httpclient (2.8.3) - i18n (1.12.0) + i18n (1.13.0) concurrent-ruby (~> 1.0) inifile (3.0.0) - io-console (0.5.11) - irb (1.4.2) + io-console (0.6.0) + irb (1.6.4) reline (>= 0.3.0) - jmespath (1.6.1) - json (2.6.2) - jwt (2.5.0) - kitchen-terraform (6.1.0) - delegate (>= 0.1.0, < 0.3.0) + jmespath (1.6.2) + json (2.6.3) + jwt (2.7.0) + kitchen-terraform (7.0.2) + delegate (~> 0.3.0) dry-validation (~> 1.6) - inspec (>= 3, < 5, != 4.24.32, != 4.24.28, != 4.24.26) + inspec (~> 5.21, >= 5.21.29) json (~> 2.3) - mixlib-shellout (~> 3.0) test-kitchen (>= 2.1, < 4.0) tty-which (~> 0.5.0) license-acceptance (2.1.13) @@ -436,7 +446,7 @@ GEM memoist (0.16.2) method_source (1.0.0) mini_mime (1.1.2) - minitest (5.16.3) + minitest (5.18.0) mixlib-config (3.0.27) tomlrb mixlib-log (3.0.9) @@ -454,28 +464,32 @@ GEM faraday-cookie_jar (~> 0.0.6) ms_rest (~> 0.7.6) multi_json (1.15.0) - multipart-post (2.2.3) - net-scp (3.0.0) - net-ssh (>= 2.6.5, < 7.0.0) - net-ssh (6.1.0) + multipart-post (2.3.0) + net-scp (4.0.0) + net-ssh (>= 2.6.5, < 8.0.0) + net-ssh (7.1.0) net-ssh-gateway (2.0.0) net-ssh (>= 4.0.0) nori (2.6.0) + options (2.3.2) os (1.1.4) - parallel (1.22.1) - parser (3.1.2.1) + parallel (1.23.0) + parser (3.2.2.1) ast (~> 2.4.1) parslet (1.8.2) pastel (0.8.0) tty-color (~> 0.5) - pry (0.14.1) + progress_bar (1.3.3) + highline (>= 1.6, < 3) + options (~> 2.3.0) + pry (0.14.2) coderay (~> 1.1) method_source (~> 1.0) - public_suffix (5.0.0) + public_suffix (5.0.1) rainbow (3.1.1) rake (13.0.6) - regexp_parser (2.6.0) - reline (0.3.1) + regexp_parser (2.8.0) + reline (0.3.3) io-console (~> 0.5) representable (3.2.0) declarative (< 0.1.0) @@ -483,24 +497,24 @@ GEM uber (< 0.2.0) retriable (3.1.2) rexml (3.2.5) - rspec (3.10.0) - rspec-core (~> 3.10.0) - rspec-expectations (~> 3.10.0) - rspec-mocks (~> 3.10.0) - rspec-core (3.10.2) - rspec-support (~> 3.10.0) - rspec-expectations (3.10.2) + rspec (3.11.0) + rspec-core (~> 3.11.0) + rspec-expectations (~> 3.11.0) + rspec-mocks (~> 3.11.0) + rspec-core (3.11.0) + rspec-support (~> 3.11.0) + rspec-expectations (3.11.1) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) + rspec-support (~> 3.11.0) rspec-its (1.3.0) rspec-core (>= 3.0.0) rspec-expectations (>= 3.0.0) - rspec-mocks (3.10.3) + rspec-mocks (3.11.2) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.10.0) + rspec-support (~> 3.11.0) rspec-retry (0.6.2) rspec-core (> 3.3) - rspec-support (3.10.3) + rspec-support (3.11.1) rubocop (1.25.1) parallel (~> 1.10) parser (>= 3.1.0.0) @@ -510,9 +524,9 @@ GEM rubocop-ast (>= 1.15.1, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.21.0) - parser (>= 3.1.1.0) - ruby-progressbar (1.11.0) + rubocop-ast (1.28.1) + parser (>= 3.2.1.0) + ruby-progressbar (1.13.0) ruby2_keywords (0.0.5) rubyntlm (0.6.3) rubyzip (2.3.2) @@ -528,25 +542,25 @@ GEM unicode-display_width (>= 1.5, < 3.0) unicode_utils (~> 1.4) strings-ansi (0.2.0) - test-kitchen (3.3.2) + test-kitchen (3.5.0) bcrypt_pbkdf (~> 1.0) chef-utils (>= 16.4.35) ed25519 (~> 1.2) license-acceptance (>= 1.0.11, < 3.0) mixlib-install (~> 3.6) mixlib-shellout (>= 1.2, < 4.0) - net-scp (>= 1.1, < 4.0) - net-ssh (>= 2.9, < 7.0) + net-scp (>= 1.1, < 5.0) + net-ssh (>= 2.9, < 8.0) net-ssh-gateway (>= 1.2, < 3.0) thor (>= 0.19, < 2.0) winrm (~> 2.0) winrm-elevated (~> 1.0) winrm-fs (~> 1.1) - thor (1.2.1) + thor (1.2.2) timeliness (0.3.10) tomlrb (1.3.0) trailblazer-option (0.1.2) - train (3.10.1) + train (3.10.7) activesupport (>= 6.0.3.1) azure_graph_rbac (~> 0.16) azure_mgmt_key_vault (~> 0.17) @@ -557,7 +571,7 @@ GEM google-api-client (>= 0.23.9, <= 0.52.0) googleauth (>= 0.6.6, <= 0.14.0) inifile (~> 3.0) - train-core (= 3.10.1) + train-core (= 3.10.7) train-winrm (~> 0.2) train-aws (0.2.24) aws-sdk-alexaforbusiness (~> 1.0) @@ -635,13 +649,13 @@ GEM aws-sdk-synthetics (~> 1.19.0) aws-sdk-transfer (>= 1.26, < 1.35) aws-sdk-waf (~> 1.43.0) - train-core (3.10.1) + train-core (3.10.7) addressable (~> 2.5) ffi (!= 1.13.0) json (>= 1.8, < 3.0) mixlib-shellout (>= 2.0, < 4.0) - net-scp (>= 1.2, < 4.0) - net-ssh (>= 2.9, < 7.0) + net-scp (>= 1.2, < 5.0) + net-ssh (>= 2.9, < 8.0) train-habitat (0.2.22) train-winrm (0.2.13) winrm (>= 2.3.6, < 3.0) @@ -666,12 +680,12 @@ GEM strings (~> 0.2.0) tty-screen (~> 0.8) tty-which (0.5.0) - tzinfo (2.0.5) + tzinfo (2.0.6) concurrent-ruby (~> 1.0) uber (0.1.0) unf (0.1.4) unf_ext - unicode-display_width (2.3.0) + unicode-display_width (2.4.2) unicode_utils (1.4.0) winrm (2.3.6) builder (>= 2.1.2) @@ -692,21 +706,20 @@ GEM rubyzip (~> 2.0) winrm (~> 2.0) wisper (2.0.1) - zeitwerk (2.6.1) + zeitwerk (2.6.8) PLATFORMS - ruby x86_64-linux DEPENDENCIES - activesupport (< 7.0.0)! + activesupport! chef-config! chef-utils! cinc-auditor-bin! - inspec (= 4.52.9)! + inspec (~> 5.21)! inspec-core! irb! - kitchen-terraform (~> 6.1.0)! + kitchen-terraform (~> 7.0)! mixlib-install! mixlib-versioning! rspec-retry! @@ -714,4 +727,4 @@ DEPENDENCIES unf_ext! BUNDLED WITH - 2.2.23 + 2.4.13 diff --git a/inf-terraform-azure/files/Pipfile b/inf-terraform-azure/files/Pipfile index 606005a08..6523fe36f 100644 --- a/inf-terraform-azure/files/Pipfile +++ b/inf-terraform-azure/files/Pipfile @@ -6,8 +6,8 @@ verify_ssl = true [dev-packages] [packages] -python-hcl2 = "==2.0.3" -azure-mgmt-compute = "==25.0.0" +python-hcl2 = "~=2.0" +azure-mgmt-compute = "~=29.1" yq = ">2" [requires] diff --git a/inf-terraform-azure/files/README.md b/inf-terraform-azure/files/README.md index d8e1e0e19..cb4d10c15 100644 --- a/inf-terraform-azure/files/README.md +++ b/inf-terraform-azure/files/README.md @@ -16,19 +16,19 @@ The behavior of a stack is determined by its purpose and the set of input parame | Name | Version | |------|---------| | [terraform](#requirement\_terraform) | >= 1.0.0 | -| [azurerm](#requirement\_azurerm) | 3.25.0 | -| [local](#requirement\_local) | ~> 2.2.3 | -| [random](#requirement\_random) | ~> 3.4.3 | -| [time](#requirement\_time) | 0.8.0 | +| [azurerm](#requirement\_azurerm) | 3.56.0 | +| [local](#requirement\_local) | ~> 2.4.0 | +| [random](#requirement\_random) | ~> 3.5.1 | +| [time](#requirement\_time) | 0.9.1 | ## Providers | Name | Version | |------|---------| -| [azurerm](#provider\_azurerm) | 3.25.0 | -| [local](#provider\_local) | ~> 2.2.3 | -| [random](#provider\_random) | ~> 3.4.3 | -| [time](#provider\_time) | 0.8.0 | +| [azurerm](#provider\_azurerm) | 3.56.0 | +| [local](#provider\_local) | ~> 2.4.0 | +| [random](#provider\_random) | ~> 3.5.1 | +| [time](#provider\_time) | 0.9.1 | ## Modules @@ -38,11 +38,11 @@ No modules. | Name | Type | |------|------| -| [azurerm_resource_group.this](https://registry.terraform.io/providers/hashicorp/azurerm/3.25.0/docs/resources/resource_group) | resource | -| [azurerm_resource_group_template_deployment.this](https://registry.terraform.io/providers/hashicorp/azurerm/3.25.0/docs/resources/resource_group_template_deployment) | resource | +| [azurerm_resource_group.this](https://registry.terraform.io/providers/hashicorp/azurerm/3.56.0/docs/resources/resource_group) | resource | +| [azurerm_resource_group_template_deployment.this](https://registry.terraform.io/providers/hashicorp/azurerm/3.56.0/docs/resources/resource_group_template_deployment) | resource | | [local_file.terraform-data](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/file) | resource | | [random_id.id](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/id) | resource | -| [time_static.deployment](https://registry.terraform.io/providers/hashicorp/time/0.8.0/docs/resources/static) | resource | +| [time_static.deployment](https://registry.terraform.io/providers/hashicorp/time/0.9.1/docs/resources/static) | resource | ## Inputs diff --git a/inf-terraform-azure/files/lib/scripts/createstackfixtureoutputs2yml.sh b/inf-terraform-azure/files/lib/scripts/createstackfixtureoutputs2yml.sh index 10cc87bd3..fced6fcd0 100755 --- a/inf-terraform-azure/files/lib/scripts/createstackfixtureoutputs2yml.sh +++ b/inf-terraform-azure/files/lib/scripts/createstackfixtureoutputs2yml.sh @@ -29,9 +29,9 @@ cd ${CWD}/test/fixtures/default terraform output -json > "${TOJFILE}" # Convert terraform json outputs to yaml. -# Use symbolize_names for keys ("id" -> :id) -# Symbolize_names is required, as kitchen-terraform outputs are created as inspec inputs using this type for keys. +# Do not use symbolize_names for keys ("id" -> :id). +# Symbolize_names is no longer required, as kitchen-terraform outputs are created as inspec inputs using this type for keys. jq 'with_entries(.value |= .value)|with_entries(.key = "output_" + .key)' "${TOJFILE}" | \ - ruby -ryaml -rjson -e 'puts YAML.dump(JSON.parse(STDIN.read, :symbolize_names => true))' > "${TOYFILE}" + ruby -ryaml -rjson -e 'puts YAML.dump(JSON.parse(STDIN.read, :symbolize_names => false))' > "${TOYFILE}" popd diff --git a/inf-terraform-azure/files/lib/scripts/createstackoutputs2yml.sh b/inf-terraform-azure/files/lib/scripts/createstackoutputs2yml.sh index fd786688d..88c30d319 100755 --- a/inf-terraform-azure/files/lib/scripts/createstackoutputs2yml.sh +++ b/inf-terraform-azure/files/lib/scripts/createstackoutputs2yml.sh @@ -28,9 +28,9 @@ pushd . terraform output -json > "${TOJFILE}" # Convert terraform json outputs to yaml. -# Use symbolize_names for keys ("id" -> :id) -# Symbolize_names is required, as kitchen-terraform outputs are created as inspec inputs using this type for keys. +# Do not use symbolize_names for keys ("id" -> :id). +# Symbolize_names is no longer required, as kitchen-terraform outputs are created as inspec inputs using this type for keys. jq 'with_entries(.value |= .value)|with_entries(.key = "output_" + .key)' "${TOJFILE}" | \ - ruby -ryaml -rjson -e 'puts YAML.dump(JSON.parse(STDIN.read, :symbolize_names => true))' > "${TOYFILE}" + ruby -ryaml -rjson -e 'puts YAML.dump(JSON.parse(STDIN.read, :symbolize_names => false))' > "${TOYFILE}" popd diff --git a/inf-terraform-azure/files/test/fixtures/default/moduleoutputs.tf b/inf-terraform-azure/files/test/fixtures/default/moduleoutputs.tf index d993370b7..e8d6d702a 100644 --- a/inf-terraform-azure/files/test/fixtures/default/moduleoutputs.tf +++ b/inf-terraform-azure/files/test/fixtures/default/moduleoutputs.tf @@ -1,5 +1,5 @@ # This file has been created automatically. -output "module_stack" { +output "module_ods_quickstarters" { value = module.stack-azure-quickstarter-test.* } diff --git a/inf-terraform-azure/files/test/integration/default/inspec.yml b/inf-terraform-azure/files/test/integration/default/inspec.yml index d84987551..7041229d4 100644 --- a/inf-terraform-azure/files/test/integration/default/inspec.yml +++ b/inf-terraform-azure/files/test/integration/default/inspec.yml @@ -7,4 +7,4 @@ supports: depends: - name: inspec-azure git: https://github.com/inspec/inspec-azure - tag: v1.86.0 + tag: v1.118.41 diff --git a/inf-terraform-azure/files/test/integration/default/inspec.yml.tmpl b/inf-terraform-azure/files/test/integration/default/inspec.yml.tmpl index c4b0d5f0e..2015f9d60 100644 --- a/inf-terraform-azure/files/test/integration/default/inspec.yml.tmpl +++ b/inf-terraform-azure/files/test/integration/default/inspec.yml.tmpl @@ -5,4 +5,4 @@ supports: depends: - name: inspec-azure git: https://github.com/inspec/inspec-azure - tag: v1.86.0 + tag: v1.118.41 diff --git a/inf-terraform-azure/files/variables.tf b/inf-terraform-azure/files/variables.tf index a9f1dfbca..e7cbdb4db 100644 --- a/inf-terraform-azure/files/variables.tf +++ b/inf-terraform-azure/files/variables.tf @@ -23,7 +23,7 @@ variable "name" { description = "The name of the stack." type = string - default = "stack-azure-quickstarter-delete-me" + default = "stack-azure-quickstarter" } variable "is_test" { diff --git a/inf-terraform-azure/files/versions.tf b/inf-terraform-azure/files/versions.tf index 712e1c767..611097223 100644 --- a/inf-terraform-azure/files/versions.tf +++ b/inf-terraform-azure/files/versions.tf @@ -3,19 +3,19 @@ terraform { required_providers { azurerm = { source = "hashicorp/azurerm" - version = "3.25.0" + version = "3.56.0" } local = { source = "hashicorp/local" - version = "~> 2.2.3" + version = "~> 2.4.0" } random = { source = "hashicorp/random" - version = "~> 3.4.3" + version = "~> 3.5.1" } time = { source = "hashicorp/time" - version = "0.8.0" + version = "0.9.1" } } } diff --git a/ods-document-gen-svc/testdata/golden/sonar-scan.json b/ods-document-gen-svc/testdata/golden/sonar-scan.json index 573d019b0..013d7530c 100644 --- a/ods-document-gen-svc/testdata/golden/sonar-scan.json +++ b/ods-document-gen-svc/testdata/golden/sonar-scan.json @@ -1,13 +1,12 @@ { - "key": "unitt-docgen", - "organization": "default-organization", - "name": "unitt-docgen", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "isFavorite": false, "visibility": "public", "extensions": [], "qualityProfiles": [ { - "name": "Sonar way", + "name": "{{.SonarQualityProfile}}", "language": "grvy", "deleted": false } @@ -18,8 +17,8 @@ }, "breadcrumbs": [ { - "key": "unitt-docgen", - "name": "unitt-docgen", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "qualifier": "TRK" } ] diff --git a/ods-provisioning-app/testdata/golden/sonar-scan.json b/ods-provisioning-app/testdata/golden/sonar-scan.json index 8e3aaaa80..e7ecc4ec3 100644 --- a/ods-provisioning-app/testdata/golden/sonar-scan.json +++ b/ods-provisioning-app/testdata/golden/sonar-scan.json @@ -1,13 +1,12 @@ { - "key": "unitt-provapp", - "organization": "default-organization", - "name": "unitt-provapp", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "isFavorite": false, "visibility": "public", "extensions": [], "qualityProfiles": [ { - "name": "Sonar way", + "name": "{{.SonarQualityProfile}}", "language": "java", "deleted": false } @@ -18,8 +17,8 @@ }, "breadcrumbs": [ { - "key": "unitt-provapp", - "name": "unitt-provapp", + "key": "{{.ProjectID}}-{{.ComponentID}}", + "name": "{{.ProjectID}}-{{.ComponentID}}", "qualifier": "TRK" } ] diff --git a/release-manager/Jenkinsfile.template b/release-manager/Jenkinsfile.template index de5786599..dec87c3bc 100644 --- a/release-manager/Jenkinsfile.template +++ b/release-manager/Jenkinsfile.template @@ -4,5 +4,5 @@ odsOrchestrationPipeline( debug: true, - odsImageTag: '@ods_image_tag@' + odsImageTag: '@agent_image_tag@' ) diff --git a/release-manager/files/.pre-commit-config.yaml b/release-manager/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/release-manager/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks diff --git a/release-manager/testdata/fixtures/metadata.yml b/release-manager/testdata/fixtures/metadata.yml index 08ea1132e..9e3fdaaaf 100644 --- a/release-manager/testdata/fixtures/metadata.yml +++ b/release-manager/testdata/fixtures/metadata.yml @@ -1,11 +1,11 @@ -id: unitt -name: Project unitt -description: Description of unitt. +id: {{.ProjectID}} +name: Project {{.ProjectID}} +description: Description of {{.ProjectID}}. services: bitbucket: credentials: - id: unitt-cd-cd-user-with-password + id: {{.ProjectID}}-cd-cd-user-with-password nexus: repository: diff --git a/saas-documentation/files/.pre-commit-config.yaml b/saas-documentation/files/.pre-commit-config.yaml new file mode 100644 index 000000000..c9528f476 --- /dev/null +++ b/saas-documentation/files/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.16.1 + hooks: + - id: gitleaks