From 03c1b11e90b7a644191a38f9f09064b73c295490 Mon Sep 17 00:00:00 2001 From: Harsh Mishra Date: Fri, 27 Jun 2025 12:28:14 +0530 Subject: [PATCH 01/14] wip (1) --- scripts/redirects/README.md | 223 ++ scripts/redirects/aws_urls.txt | 487 ++++ scripts/redirects/generate_config_template.py | 162 ++ scripts/redirects/generate_redirects.py | 99 + scripts/redirects/redirects_config.json | 26 + .../redirects/redirects_config_template.json | 2529 +++++++++++++++++ scripts/redirects/requirements.txt | 2 + scripts/redirects/scrap_sitemap.py | 18 + scripts/redirects/snowflake_urls.txt | 52 + scripts/redirects/test_redirects.py | 241 ++ src/content/docs/aws/services/sagemaker.mdx | 2 + 11 files changed, 3841 insertions(+) create mode 100644 scripts/redirects/README.md create mode 100644 scripts/redirects/aws_urls.txt create mode 100644 scripts/redirects/generate_config_template.py create mode 100644 scripts/redirects/generate_redirects.py create mode 100644 scripts/redirects/redirects_config.json create mode 100644 scripts/redirects/redirects_config_template.json create mode 100644 scripts/redirects/requirements.txt create mode 100644 scripts/redirects/scrap_sitemap.py create mode 100644 scripts/redirects/snowflake_urls.txt create mode 100644 scripts/redirects/test_redirects.py diff --git a/scripts/redirects/README.md b/scripts/redirects/README.md new file mode 100644 index 00000000..0cfee5a5 --- /dev/null +++ b/scripts/redirects/README.md @@ -0,0 +1,223 @@ +# LocalStack Docs Redirect Management + +This directory contains scripts to help manage redirects for LocalStack's docs migration from: +- `docs.localstack.cloud` โ†’ `docs.localstack.cloud/aws/` +- `snowflake.localstack.cloud` โ†’ `docs.localstack.cloud/snowflake/` + +## ๐Ÿ“ Files Overview + +| File | Purpose | +|------|---------| +| `scrap_sitemap.py` | Extract URLs from XML sitemaps | +| `generate_config_template.py` | Generate JSON template from scraped URLs | +| `redirects_config.json` | Manual redirect mappings (you edit this) | +| `generate_redirects.py` | Convert JSON config to CloudFlare `_redirects` format | +| `test_redirects.py` | Test redirects against staging environment | + +## ๐Ÿš€ Workflow + +### 1. Scrape Existing URLs + +First, get all URLs from your current sites: + +```bash +# Get AWS docs URLs +python scrap_sitemap.py > aws_urls.txt + +# Or for Snowflake (modify the script URL) +# Edit scrap_sitemap.py to change the sitemap URL to snowflake.localstack.cloud +``` + +### 2. Generate Config Template + +Create a template JSON config with all URLs: + +```bash +# From sitemaps directly +python generate_config_template.py \ + --aws-sitemap "https://docs.localstack.cloud/sitemap.xml" \ + --snowflake-sitemap "https://snowflake.localstack.cloud/sitemap.xml" \ + --output redirects_config_template.json + +# Or from saved URL files +python generate_config_template.py \ + --aws-file aws_urls.txt \ + --snowflake-file snowflake_urls.txt \ + --output redirects_config_template.json +``` + +### 3. Manual Mapping + +Edit the generated template to map old URLs to new URLs: + +```json +{ + "aws": [ + { + "old_link": "https://docs.localstack.cloud/getting-started/", + "new_link": "https://docs.localstack.cloud/aws/getting-started/", + "status_code": 301 + } + ], + "snowflake": [ + { + "old_link": "https://snowflake.localstack.cloud/features/", + "new_link": "https://docs.localstack.cloud/snowflake/features/", + "status_code": 301 + } + ] +} +``` + +**Important:** +- Remove the `_note` fields after manual review +- Update `new_link` values to match your actual new URL structure +- Save as `redirects_config.json` + +### 4. Generate CloudFlare Redirects + +Convert your JSON config to CloudFlare's `_redirects` format: + +```bash +python generate_redirects.py \ + --config redirects_config.json \ + --output _redirects +``` + +This creates a `_redirects` file like: +``` +# LocalStack Docs Redirects +# Generated automatically from redirects_config.json + +# Static redirects +/getting-started/ /aws/getting-started/ 301 +/user-guide/ /aws/capabilities/ 301 +``` + +### 5. Test Redirects + +Test your redirects against the staging environment: + +```bash +python test_redirects.py \ + --config redirects_config.json \ + --staging-url "https://a5c92421.localstack-docs.pages.dev" \ + --report redirect_test_report.md +``` + +This will: +- Test each redirect against your staging URL +- Show pass/fail results in real-time +- Generate a detailed markdown report + +## ๐Ÿ› ๏ธ Script Details + +### `generate_config_template.py` + +Generate a JSON template from scraped URLs. + +```bash +python generate_config_template.py --help +``` + +**Options:** +- `--aws-sitemap URL` - Load AWS URLs from sitemap +- `--snowflake-sitemap URL` - Load Snowflake URLs from sitemap +- `--aws-file FILE` - Load AWS URLs from text file +- `--snowflake-file FILE` - Load Snowflake URLs from text file +- `--output FILE` - Output template file + +### `generate_redirects.py` + +Convert JSON config to CloudFlare `_redirects` format. + +```bash +python generate_redirects.py --help +``` + +**Options:** +- `--config FILE` - JSON config file (default: `redirects_config.json`) +- `--output FILE` - Output redirects file (default: `_redirects`) + +### `test_redirects.py` + +Test redirects against staging environment. + +```bash +python test_redirects.py --help +``` + +**Options:** +- `--config FILE` - JSON config file +- `--staging-url URL` - Staging base URL +- `--timeout SECONDS` - Request timeout +- `--report FILE` - Save detailed report to file + +## ๐Ÿ“‹ CloudFlare Setup + +1. Upload the generated `_redirects` file to your CloudFlare Pages project root +2. CloudFlare will automatically apply the redirects +3. Test with your staging URL first before going live + +**CloudFlare Limits:** +- Max 2,000 static redirects +- Max 100 dynamic redirects +- Max 2,100 total redirects +- 1,000 character limit per redirect + +## ๐Ÿงช Testing Strategy + +1. **Staging First**: Always test with staging URL +2. **Sample Testing**: Test a subset of critical URLs manually +3. **Automated Testing**: Run the test script regularly +4. **Monitor**: Check for 404s after going live + +## ๐Ÿ“ Example Complete Workflow + +```bash +# 1. Generate template from sitemaps +python generate_config_template.py \ + --aws-sitemap "https://docs.localstack.cloud/sitemap.xml" \ + --snowflake-sitemap "https://snowflake.localstack.cloud/sitemap.xml" + +# 2. Manually edit redirects_config_template.json โ†’ redirects_config.json + +# 3. Generate CloudFlare redirects file +python generate_redirects.py + +# 4. Test redirects +python test_redirects.py --report test_results.md + +# 5. Upload _redirects file to CloudFlare Pages +``` + +## ๐Ÿšจ Important Notes + +- **Manual Review Required**: Always manually review and update the generated mappings +- **URL Structure**: Ensure new URLs match your actual site structure +- **Status Codes**: Use 301 for permanent redirects, 302 for temporary +- **Testing**: Test thoroughly on staging before production +- **Staging URL**: Update staging URL as needed in commands + +## ๐Ÿ†˜ Troubleshooting + +**Common Issues:** + +1. **Import Error**: Make sure `requests` and `beautifulsoup4` are installed: + ```bash + pip install requests beautifulsoup4 + ``` + +2. **Sitemap Not Found**: Check sitemap URLs are correct and accessible + +3. **Redirect Not Working**: + - Verify the `_redirects` file is in the correct location + - Check CloudFlare Pages build logs + - Ensure paths match exactly + +4. **Too Many Redirects**: Check for redirect loops in your mappings + +## ๐Ÿ“š Resources + +- [CloudFlare Pages Redirects Documentation](https://developers.cloudflare.com/pages/configuration/redirects/) +- [HTTP Status Codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) \ No newline at end of file diff --git a/scripts/redirects/aws_urls.txt b/scripts/redirects/aws_urls.txt new file mode 100644 index 00000000..83f2c5d7 --- /dev/null +++ b/scripts/redirects/aws_urls.txt @@ -0,0 +1,487 @@ +/user-guide/aws/feature-coverage/ +/references/network-troubleshooting/endpoint-url/ +/user-guide/integrations/sdks/ +/academy/localstack-101/course-overview/ +/academy/localstack-deployment/course-overview/ +/user-guide/localstack-enterprise/enterprise-image/ +/user-guide/cloud-sandbox/ephemeral-instance/ +/user-guide/extensions/getting-started/ +/user-guide/lambda-tools/hot-reloading/ +/user-guide/security-testing/iam-enforcement/ +/user-guide/tools/localstack-sdk/java/ +/user-guide/aws/ +/user-guide/tools/localstack-sdk/ +/references/network-troubleshooting/ +/developer-hub/ +/overview/ +/user-guide/tools/localstack-sdk/python/ +/tutorials/schema-evolution-glue-msk/ +/user-guide/localstack-enterprise/single-sign-on/azure-ad/ +/legal/third-party-software-tools/ +/user-guide/cloud-sandbox/application-previews/ +/user-guide/state-management/cloud-pods/ +/academy/localstack-deployment/deploy-app-ls/ +/tutorials/lambda-ecr-container-images/ +/user-guide/security-testing/explainable-iam/ +/getting-started/ +/user-guide/integrations/ +/user-guide/localstack-enterprise/k8s-operator/ +/user-guide/extensions/managing-extensions/ +/user-guide/state-management/persistence/ +/user-guide/lambda-tools/debugging/ +/references/network-troubleshooting/transparent-endpoint-injection/ +/academy/localstack-101/what-is-localstack/ +/references/network-troubleshooting/created-resources/ +/tutorials/java-notification-app/ +/user-guide/ci/ +/user-guide/extensions/developing-extensions/ +/user-guide/localstack-enterprise/enterprise-support/ +/user-guide/state-management/export-import-state/ +/user-guide/extensions/ +/user-guide/security-testing/iam-policy-stream/ +/academy/localstack-deployment/ls-integrations/ +/tutorials/elb-load-balancing/ +/user-guide/lambda-tools/vscode-extension/ +/academy/localstack-101/why-localstack/ +/user-guide/ci/circle-ci/ +/academy/localstack-deployment/infra-terraform/ +/user-guide/extensions/extensions-library/ +/academy/localstack-101/getting-started/ +/tutorials/s3-static-website-terraform/ +/user-guide/state-management/launchpad/ +/user-guide/localstack-enterprise/single-sign-on/ +/user-guide/ci/bitbucket/ +/user-guide/state-management/pods-cli/ +/academy/localstack-deployment/infra-cloudformation/ +/tutorials/reproducible-machine-learning-cloud-pods/ +/user-guide/ci/github-actions/ +/user-guide/localstack-enterprise/kubernetes-executor/ +/references/lambda-provider-v2/ +/references/coverage/ +/user-guide/extensions/official-extensions/ +/user-guide/tools/testing-utils/ +/academy/localstack-101/web-app-resource-browser/ +/tutorials/ecs-ecr-container-app/ +/academy/localstack-101/full-project-demo/ +/user-guide/ci/gitlab-ci/ +/academy/localstack-deployment/iam-policy-stream/ +/academy/localstack-101/cloud-pods/ +/user-guide/ci/codebuild/ +/tutorials/cloud-pods-collaborative-debugging/ +/user-guide/tools/localsurf/ +/tutorials/replicate-aws-resources-localstack-extension/ +/academy/localstack-deployment/github-action-ls/ +/user-guide/ci/travis-ci/ +/user-guide/ +/academy/localstack-deployment/cloud-pods/ +/tutorials/ephemeral-application-previews/ +/user-guide/tools/localstack-desktop/ +/user-guide/tools/localstack-docker-extension/ +/user-guide/web-application/accounts/ +/references/configuration/ +/getting-started/installation/ +/user-guide/state-management/ +/user-guide/tools/transparent-endpoint-injection/ +/tutorials/ +/user-guide/chaos-engineering/ +/user-guide/tools/dns-server/ +/user-guide/security-testing/ +/references/changelog/ +/user-guide/cloud-sandbox/ +/user-guide/tools/event-studio/ +/user-guide/tools/aws-replicator/ +/references/iam-coverage/ +/tutorials/gitlab_ci_testcontainers/ +/tutorials/using-terraform-with-testcontainers-and-localstack/ +/tutorials/iam-policy-stream/ +/applications/ +/getting-started/auth-token/ +/user-guide/web-application/workspace/ +/academy/ +/getting-started/quickstart/ +/user-guide/web-application/users-and-licenses/ +/getting-started/faq/ +/user-guide/tools/ +/user-guide/lambda-tools/ +/references/arm64-support/ +/references/credentials/ +/references/cross-account-access/ +/references/custom-tls-certificates/ +/references/docker-images/ +/references/external-ports/ +/references/filesystem/ +/references/init-hooks/ +/references/internal-endpoints/ +/user-guide/web-application/ +/references/logging/ +/references/multi-account-setups/ +/references/podman/ +/references/ +/references/usage-tracking/ +/getting-started/help-and-support/ +/user-guide/localstack-enterprise/ +/references/licensing/ +/references/regions-coverage/ +/user-guide/web-application/resource-browser/ +/user-guide/web-application/instance-management/ +/user-guide/web-application/stack-insights/ +/user-guide/localstack-enterprise/ci-analytics/ +/user-guide/web-application/stack-overview/ +/user-guide/web-application/ci-keys/ +/references/api-key/ +/applications/temp/ +/contributing/ +/references/network-troubleshooting/readme/ +/user-guide/integrations/sdks/dotnet/ +/references/coverage/coverage_account/ +/user-guide/aws/account/ +/references/coverage/coverage_acm/ +/references/coverage/coverage_acm-pca/ +/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager/ +/references/coverage/coverage_amplify/ +/user-guide/aws/amplify/ +/tags/api-gateway/ +/user-guide/aws/apigateway/ +/references/coverage/coverage_apigateway/ +/references/coverage/coverage_apigatewaymanagementapi/ +/references/coverage/coverage_apigatewayv2/ +/references/coverage/coverage_appconfig/ +/user-guide/aws/appconfig/ +/references/coverage/coverage_appconfigdata/ +/user-guide/aws/applicationautoscaling/ +/references/coverage/coverage_application-autoscaling/ +/references/coverage/coverage_appsync/ +/tags/appsync/ +/user-guide/aws/appsync/ +/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/ +/user-guide/integrations/architect/ +/references/coverage/coverage_athena/ +/user-guide/aws/athena/ +/user-guide/aws/autoscaling/ +/references/coverage/coverage_autoscaling/ +/user-guide/integrations/aws-cdk/ +/user-guide/integrations/chalice/ +/user-guide/integrations/aws-cli/ +/user-guide/integrations/copilot/ +/user-guide/chaos-engineering/fault-injection-service/ +/tags/aws-java-sdk/ +/user-guide/integrations/aws-sam/ +/references/coverage/coverage_backup/ +/user-guide/aws/backup/ +/tags/base/ +/tags/bash/ +/references/coverage/coverage_batch/ +/user-guide/aws/batch/ +/references/coverage/coverage_bedrock/ +/user-guide/aws/bedrock/ +/references/coverage/coverage_bedrock-runtime/ +/tags/big-data/ +/user-guide/integrations/sdks/cpp/ +/categories/ +/references/coverage/coverage_ce/ +/user-guide/aws/acm/ +/user-guide/chaos-engineering/chaos-api/ +/tags/chaos-engineering/ +/user-guide/chaos-engineering/chaos-application-dashboard/ +/tutorials/route-53-failover/ +/tutorials/simulating-outages/ +/user-guide/integrations/cloud-custodian/ +/tags/cloud-pods/ +/references/coverage/coverage_cloudcontrol/ +/references/coverage/coverage_cloudformation/ +/tags/cloudformation/ +/user-guide/aws/cloudformation/ +/references/coverage/coverage_cloudfront/ +/user-guide/aws/cloudfront/ +/references/coverage/coverage_cloudtrail/ +/user-guide/aws/cloudtrail/ +/references/coverage/coverage_cloudwatch/ +/tags/cloudwatch/ +/user-guide/aws/cloudwatch/ +/user-guide/aws/logs/ +/references/coverage/coverage_codeartifact/ +/references/coverage/coverage_codebuild/ +/user-guide/aws/codebuild/ +/references/coverage/coverage_codecommit/ +/user-guide/aws/codecommit/ +/references/coverage/coverage_codeconnections/ +/references/coverage/coverage_codedeploy/ +/user-guide/aws/codedeploy/ +/references/coverage/coverage_codepipeline/ +/user-guide/aws/codepipeline/ +/references/coverage/coverage_codestar-connections/ +/user-guide/aws/cognito/ +/references/coverage/coverage_cognito-identity/ +/references/coverage/coverage_cognito-idp/ +/tags/compliance/ +/references/coverage/coverage_config/ +/user-guide/aws/config/ +/tags/container/ +/tags/container-image/ +/user-guide/aws/ce/ +/user-guide/integrations/crossplane/ +/user-guide/aws/firehose/ +/tags/data-analytics/ +/user-guide/aws/dms/ +/tags/databases/ +/user-guide/integrations/devcontainers/ +/academy/localstack-deployment/ +/references/coverage/coverage_dms/ +/references/coverage/coverage_docdb/ +/tags/docker/ +/tags/docker-in-docker/ +/ +/user-guide/aws/docdb/ +/references/coverage/coverage_dynamodb/ +/tags/dynamodb/ +/user-guide/aws/dynamodb/ +/user-guide/aws/dynamodbstreams/ +/references/coverage/coverage_dynamodbstreams/ +/references/coverage/coverage_ec2/ +/references/coverage/coverage_ecr/ +/tags/ecr/ +/references/coverage/coverage_ecs/ +/tags/ecs/ +/references/coverage/coverage_efs/ +/references/coverage/coverage_eks/ +/user-guide/integrations/eksctl/ +/user-guide/aws/elasticbeanstalk/ +/user-guide/aws/ec2/ +/user-guide/aws/ecr/ +/user-guide/aws/ecs/ +/user-guide/aws/efs/ +/user-guide/aws/eks/ +/tags/elastic-load-balancing/ +/user-guide/aws/elb/ +/user-guide/aws/emr/ +/user-guide/aws/elastictranscoder/ +/references/coverage/coverage_elasticache/ +/user-guide/aws/elasticache/ +/references/coverage/coverage_elasticbeanstalk/ +/user-guide/aws/es/ +/references/coverage/coverage_elastictranscoder/ +/references/coverage/coverage_elb/ +/references/coverage/coverage_elbv2/ +/user-guide/aws/elementalmediaconvert/ +/user-guide/aws/mediastore/ +/references/coverage/coverage_emr/ +/references/coverage/coverage_emr-serverless/ +/tags/enterprise/ +/tags/enterprise-plan/ +/references/coverage/coverage_es/ +/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/ +/tags/event-driven-architecture/ +/user-guide/aws/events/ +/user-guide/aws/pipes/ +/user-guide/aws/scheduler/ +/references/coverage/coverage_events/ +/tags/fargate/ +/user-guide/aws/fis/ +/references/coverage/coverage_firehose/ +/references/coverage/coverage_fis/ +/user-guide/integrations/former2/ +/tags/free/ +/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/ +/tags/gitlab/ +/tags/gitlab-runners/ +/user-guide/integrations/gitpod/ +/references/coverage/coverage_glacier/ +/user-guide/aws/glacier/ +/references/coverage/coverage_glue/ +/user-guide/aws/glue/ +/tags/glue-schema-registry/ +/user-guide/integrations/sdks/go/ +/tags/graphql/ +/references/coverage/coverage_iam/ +/tags/iam/ +/tags/identity/ +/user-guide/aws/iam/ +/user-guide/aws/identitystore/ +/references/coverage/coverage_identitystore/ +/tags/init-hooks/ +/tags/internal-endpoints/ +/references/coverage/coverage_iot/ +/user-guide/aws/iot/ +/user-guide/aws/iotanalytics/ +/user-guide/aws/iotdata/ +/user-guide/aws/iotwireless/ +/references/coverage/coverage_iot-data/ +/references/coverage/coverage_iotanalytics/ +/references/coverage/coverage_iotwireless/ +/tags/java/ +/user-guide/integrations/sdks/java/ +/tags/javascript/ +/user-guide/integrations/sdks/javascript/ +/references/coverage/coverage_kafka/ +/tags/kafka/ +/user-guide/aws/kms/ +/references/coverage/coverage_kinesis/ +/user-guide/aws/kinesisanalytics/ +/user-guide/aws/kinesis/ +/references/coverage/coverage_kinesisanalytics/ +/references/coverage/coverage_kinesisanalyticsv2/ +/references/coverage/coverage_kms/ +/user-guide/integrations/kubernetes/ +/user-guide/aws/lakeformation/ +/references/coverage/coverage_lakeformation/ +/references/coverage/coverage_lambda/ +/tags/lambda/ +/user-guide/aws/lambda/ +/tags/lambda-layers/ +/tags/lambda-trigger/ +/user-guide/integrations/lambdatest-hyperexecute/ +/legal/ +/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/ +/academy/localstack-101/ +/tags/localstack-endpoints/ +/tags/localsurf/ +/tags/logging/ +/references/coverage/coverage_logs/ +/tags/machine-learning/ +/user-guide/aws/managedblockchain/ +/user-guide/aws/kinesisanalyticsv2/ +/user-guide/aws/msk/ +/user-guide/aws/mwaa/ +/references/coverage/coverage_managedblockchain/ +/references/coverage/coverage_mediaconvert/ +/references/coverage/coverage_mediastore/ +/references/coverage/coverage_mediastore-data/ +/references/coverage/coverage_memorydb/ +/user-guide/aws/memorydb/ +/applications/messaging-processing-application-with-sqs-dynamodb-and-fargate/ +/tags/microservices/ +/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint/ +/references/coverage/coverage_mq/ +/user-guide/aws/mq/ +/tags/msk/ +/references/coverage/coverage_mwaa/ +/references/coverage/coverage_neptune/ +/user-guide/aws/neptune/ +/tags/networking/ +/tags/nginx/ +/tags/node.js/ +/applications/note-taking-application-using-aws-sdk-for-javascript/ +/references/coverage/coverage_opensearch/ +/user-guide/aws/opensearch/ +/user-guide/integrations/openshift/ +/references/coverage/coverage_organizations/ +/user-guide/aws/organizations/ +/persistence/ +/user-guide/state-management/support/ +/user-guide/integrations/sdks/php/ +/references/coverage/coverage_pinpoint/ +/user-guide/aws/pinpoint/ +/references/coverage/coverage_pipes/ +/user-guide/aws/pca/ +/user-guide/integrations/pulumi/ +/user-guide/integrations/sdks/python/ +/references/coverage/coverage_qldb/ +/references/coverage/coverage_qldb-session/ +/user-guide/aws/qldb/ +/user-guide/integrations/quarkus/ +/applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation/ +/references/coverage/coverage_ram/ +/user-guide/integrations/rancher-desktop/ +/references/coverage/coverage_rds/ +/tags/rds/ +/references/coverage/coverage_rds-data/ +/tags/rds-proxy/ +/references/coverage/coverage_redshift/ +/user-guide/aws/redshift/ +/references/coverage/coverage_redshift-data/ +/user-guide/aws/rds/ +/tags/reproducible/ +/user-guide/aws/ram/ +/user-guide/aws/resource_groups/ +/references/coverage/coverage_resource-groups/ +/references/coverage/coverage_resourcegroupstaggingapi/ +/user-guide/aws/route53/ +/user-guide/aws/route53resolver/ +/references/coverage/coverage_route53/ +/tags/route53/ +/references/coverage/coverage_route53resolver/ +/user-guide/integrations/sdks/ruby/ +/tags/rule-based-authentication/ +/references/coverage/coverage_s3/ +/tags/s3/ +/tags/s3-website/ +/references/coverage/coverage_s3control/ +/references/coverage/coverage_sagemaker/ +/user-guide/aws/sagemaker/ +/references/coverage/coverage_sagemaker-runtime/ +/references/coverage/coverage_scheduler/ +/tags/schema-evolution/ +/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/ +/user-guide/aws/secretsmanager/ +/references/coverage/coverage_secretsmanager/ +/tags/security/ +/user-guide/aws/sts/ +/user-guide/integrations/kafka/ +/tags/serverless/ +/user-guide/aws/serverlessrepo/ +/applications/serverless-container-based-apis-with-amazon-ecs-api-gateway/ +/tags/serverless-framework/ +/user-guide/integrations/serverless-framework/ +/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/ +/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/ +/applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds/ +/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses/ +/tags/serverless-containers/ +/tags/serverless-localstack-plugin/ +/references/coverage/coverage_serverlessrepo/ +/user-guide/aws/servicediscovery/ +/references/coverage/coverage_servicediscovery/ +/references/coverage/coverage_ses/ +/references/coverage/coverage_sesv2/ +/references/coverage/coverage_shield/ +/user-guide/aws/shield/ +/tags/simple-email-service/ +/user-guide/aws/ses/ +/tags/simple-notification-service/ +/user-guide/aws/sns/ +/tags/simple-queue-service/ +/user-guide/aws/sqs/ +/user-guide/aws/s3/ +/user-guide/aws/swf/ +/references/coverage/coverage_sns/ +/tags/spring-boot/ +/user-guide/integrations/spring-cloud-function/ +/references/coverage/coverage_sqs/ +/tags/ssl/ +/references/coverage/coverage_ssm/ +/references/coverage/coverage_sso-admin/ +/tags/static-website/ +/user-guide/aws/stepfunctions/ +/applications/step-up-authentication-using-amazon-cognito/ +/tags/step-up-auth/ +/references/coverage/coverage_stepfunctions/ +/references/coverage/coverage_sts/ +/references/coverage/coverage_support/ +/user-guide/aws/support/ +/persistence/supported/ +/persistence/supported-with-limitations/ +/references/coverage/coverage_swf/ +/user-guide/aws/ssm/ +/tags/ +/tags/terraform/ +/user-guide/integrations/terraform/ +/tags/testcontainers/ +/user-guide/integrations/testcontainers/ +/references/coverage/coverage_textract/ +/user-guide/aws/textract/ +/tags/tflocal-cli/ +/user-guide/aws/timestream/ +/references/coverage/coverage_timestream-query/ +/references/coverage/coverage_timestream-write/ +/references/coverage/coverage_transcribe/ +/user-guide/aws/transcribe/ +/references/coverage/coverage_transfer/ +/user-guide/aws/transfer/ +/tags/troubleshooting/ +/tags/ultimate/ +/user-guide/aws/verifiedpermissions/ +/references/coverage/coverage_verifiedpermissions/ +/references/coverage/coverage_wafv2/ +/user-guide/aws/waf/ +/user-guide/aws/xray/ +/references/coverage/coverage_xray/ diff --git a/scripts/redirects/generate_config_template.py b/scripts/redirects/generate_config_template.py new file mode 100644 index 00000000..16fefe06 --- /dev/null +++ b/scripts/redirects/generate_config_template.py @@ -0,0 +1,162 @@ +#!/usr/bin/env python3 +""" +Helper script to generate a template JSON config from scraped URLs. +This makes it easier to manually map old URLs to new URLs. +""" + +import json +import argparse +from pathlib import Path +from urllib.parse import urlparse +from scrap_sitemap import get_urls_of_xml + + +def generate_config_template(aws_urls=None, snowflake_urls=None, output_file="redirects_config_template.json", base_url="https://docs.localstack.cloud"): + """Generate a template JSON config with URLs to be manually mapped.""" + + config = {} + + # Process AWS URLs + if aws_urls: + config["aws"] = [] + for url in aws_urls: + parsed = urlparse(url) + old_path = parsed.path + # Ensure path starts with / + if not old_path.startswith('/'): + old_path = '/' + old_path + + # Extract meaningful path parts for suggested new path + path_parts = [p for p in parsed.path.split('/') if p] + suggested_new_path = '/'.join(path_parts) if path_parts else '' + new_path = f"/aws/{suggested_new_path}" if suggested_new_path else "/aws/" + + config["aws"].append({ + "old_link": old_path, + "new_link": new_path, + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }) + + # Process Snowflake URLs + if snowflake_urls: + config["snowflake"] = [] + for url in snowflake_urls: + parsed = urlparse(url) + old_path = parsed.path + # Ensure path starts with / + if not old_path.startswith('/'): + old_path = '/' + old_path + + # Extract meaningful path parts for suggested new path + path_parts = [p for p in parsed.path.split('/') if p] + suggested_new_path = '/'.join(path_parts) if path_parts else '' + new_path = f"/snowflake/{suggested_new_path}" if suggested_new_path else "/snowflake/" + + config["snowflake"].append({ + "old_link": old_path, + "new_link": new_path, + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }) + + # Write to file + with open(output_file, 'w') as f: + json.dump(config, f, indent=2, ensure_ascii=False) + + total_urls = len(config.get('aws', [])) + len(config.get('snowflake', [])) + print(f"โœ… Generated template config with {total_urls} URLs") + print(f"๐Ÿ“ File: {output_file}") + print(f"๐Ÿ“ All URLs are path-based (no domain) for flexibility") + print(f"\n๐Ÿ”ง Next steps:") + print(f" 1. Review and update the 'new_link' values in {output_file}") + print(f" 2. Remove the '_note' fields when done") + print(f" 3. Use generate_redirects.py to create the _redirects file") + + +def load_urls_from_sitemap(sitemap_url): + """Load URLs from a sitemap XML.""" + try: + return get_urls_of_xml(sitemap_url) + except Exception as e: + print(f"โŒ Error loading sitemap from {sitemap_url}: {e}") + return [] + + +def load_urls_from_file(file_path): + """Load URLs from a text file (one URL per line).""" + try: + with open(file_path, 'r') as f: + urls = [line.strip() for line in f if line.strip() and not line.startswith('#')] + return urls + except Exception as e: + print(f"โŒ Error loading URLs from {file_path}: {e}") + return [] + + +def main(): + parser = argparse.ArgumentParser(description='Generate redirect config template from URLs') + parser.add_argument('--aws-sitemap', + help='AWS sitemap URL (e.g., https://docs.localstack.cloud/sitemap.xml)') + parser.add_argument('--snowflake-sitemap', + help='Snowflake sitemap URL (e.g., https://snowflake.localstack.cloud/sitemap.xml)') + parser.add_argument('--aws-file', + help='Text file with AWS URLs (one per line)') + parser.add_argument('--snowflake-file', + help='Text file with Snowflake URLs (one per line)') + parser.add_argument('--base-url', default='https://docs.localstack.cloud', + help='Base URL for new links (default: https://docs.localstack.cloud)') + parser.add_argument('--output', default='redirects_config_template.json', + help='Output template file (default: redirects_config_template.json)') + + args = parser.parse_args() + + aws_urls = [] + snowflake_urls = [] + + # Load AWS URLs + if args.aws_sitemap: + print(f"๐Ÿ” Loading AWS URLs from sitemap: {args.aws_sitemap}") + aws_urls.extend(load_urls_from_sitemap(args.aws_sitemap)) + print(f" Found {len(aws_urls)} AWS URLs") + + if args.aws_file: + print(f"๐Ÿ“„ Loading AWS URLs from file: {args.aws_file}") + file_urls = load_urls_from_file(args.aws_file) + aws_urls.extend(file_urls) + print(f" Added {len(file_urls)} AWS URLs from file") + + # Load Snowflake URLs + if args.snowflake_sitemap: + print(f"โ„๏ธ Loading Snowflake URLs from sitemap: {args.snowflake_sitemap}") + snowflake_urls.extend(load_urls_from_sitemap(args.snowflake_sitemap)) + print(f" Found {len(snowflake_urls)} Snowflake URLs") + + if args.snowflake_file: + print(f"๐Ÿ“„ Loading Snowflake URLs from file: {args.snowflake_file}") + file_urls = load_urls_from_file(args.snowflake_file) + snowflake_urls.extend(file_urls) + print(f" Added {len(file_urls)} Snowflake URLs from file") + + # Remove duplicates + aws_urls = list(set(aws_urls)) + snowflake_urls = list(set(snowflake_urls)) + + if not aws_urls and not snowflake_urls: + print("โŒ No URLs found! Please provide at least one source of URLs.") + print(" Use --aws-sitemap, --snowflake-sitemap, --aws-file, or --snowflake-file") + return 1 + + print(f"\n๐Ÿ“Š Summary:") + print(f" AWS URLs: {len(aws_urls)}") + print(f" Snowflake URLs: {len(snowflake_urls)}") + print(f" Total: {len(aws_urls) + len(snowflake_urls)}") + + # Generate template + generate_config_template(aws_urls, snowflake_urls, args.output, args.base_url) + + return 0 + + +if __name__ == "__main__": + exit(main()) \ No newline at end of file diff --git a/scripts/redirects/generate_redirects.py b/scripts/redirects/generate_redirects.py new file mode 100644 index 00000000..8c68f60a --- /dev/null +++ b/scripts/redirects/generate_redirects.py @@ -0,0 +1,99 @@ +#!/usr/bin/env python3 +""" +Script to generate CloudFlare _redirects file from JSON configuration. +Converts redirect mappings to CloudFlare Pages redirect format. +""" + +import json +import argparse +from urllib.parse import urlparse +from pathlib import Path + + +def normalize_path(path): + """Normalize a path to ensure it starts with / and handle trailing slashes.""" + if not path.startswith('/'): + path = '/' + path + # Keep trailing slash behavior as-is for now + return path + + +def generate_redirects_file(config_file, output_file): + """Generate CloudFlare _redirects file from JSON config.""" + + # Load configuration + with open(config_file, 'r') as f: + config = json.load(f) + + redirects = [] + + # Process AWS redirects + if 'aws' in config: + for redirect in config['aws']: + old_path = normalize_path(redirect['old_link']) + new_path = normalize_path(redirect['new_link']) + status_code = redirect.get('status_code', 301) + + redirects.append(f"{old_path} {new_path} {status_code}") + + # Process Snowflake redirects + if 'snowflake' in config: + for redirect in config['snowflake']: + old_path = normalize_path(redirect['old_link']) + new_path = normalize_path(redirect['new_link']) + status_code = redirect.get('status_code', 301) + + redirects.append(f"{old_path} {new_path} {status_code}") + + # Write to output file + with open(output_file, 'w') as f: + f.write("# LocalStack Docs Redirects\n") + f.write("# Generated automatically from redirects_config.json\n\n") + + # Add static redirects first (CloudFlare recommendation) + static_redirects = [r for r in redirects if '*' not in r and ':' not in r] + dynamic_redirects = [r for r in redirects if '*' in r or ':' in r] + + if static_redirects: + f.write("# Static redirects\n") + for redirect in static_redirects: + f.write(f"{redirect}\n") + + if dynamic_redirects: + f.write("\n# Dynamic redirects\n") + for redirect in dynamic_redirects: + f.write(f"{redirect}\n") + + print(f"Generated {len(redirects)} redirects in {output_file}") + print(f"- Static redirects: {len(static_redirects)}") + print(f"- Dynamic redirects: {len(dynamic_redirects)}") + + +def main(): + parser = argparse.ArgumentParser(description='Generate CloudFlare _redirects file from JSON config') + parser.add_argument('--config', default='redirects_config.json', + help='Path to JSON config file (default: redirects_config.json)') + parser.add_argument('--output', default='_redirects', + help='Output file path (default: _redirects)') + + args = parser.parse_args() + + config_path = Path(args.config) + if not config_path.exists(): + print(f"Error: Config file '{config_path}' not found!") + return 1 + + try: + generate_redirects_file(config_path, args.output) + print(f"\nโœ… Successfully generated {args.output}") + print(f"๐Ÿ“‹ You can now upload this file to your CloudFlare Pages project") + + except Exception as e: + print(f"โŒ Error generating redirects: {e}") + return 1 + + return 0 + + +if __name__ == "__main__": + exit(main()) \ No newline at end of file diff --git a/scripts/redirects/redirects_config.json b/scripts/redirects/redirects_config.json new file mode 100644 index 00000000..d91b7931 --- /dev/null +++ b/scripts/redirects/redirects_config.json @@ -0,0 +1,26 @@ +{ + "aws": [ + { + "old_link": "/getting-started/", + "new_link": "/aws/getting-started/", + "status_code": 301 + }, + { + "old_link": "/user-guide/", + "new_link": "/aws/capabilities/", + "status_code": 301 + } + ], + "snowflake": [ + { + "old_link": "/getting-started/", + "new_link": "/snowflake/getting-started/", + "status_code": 301 + }, + { + "old_link": "/features/", + "new_link": "/snowflake/features/", + "status_code": 301 + } + ] +} \ No newline at end of file diff --git a/scripts/redirects/redirects_config_template.json b/scripts/redirects/redirects_config_template.json new file mode 100644 index 00000000..822be336 --- /dev/null +++ b/scripts/redirects/redirects_config_template.json @@ -0,0 +1,2529 @@ +{ + "aws": [ + { + "old_link": "/legal/third-party-software-tools/", + "new_link": "/aws/legal/third-party-software-tools", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_elb/", + "new_link": "/aws/services/elb", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/batch/", + "new_link": "/aws/services/batch", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_scheduler/", + "new_link": "/aws/services/scheduler", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/extensions/", + "new_link": "/aws/user-guide/extensions", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/tutorials/s3-static-website-terraform/", + "new_link": "/aws/tutorials/s3-static-website-terraform", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_sso-admin/", + "new_link": "/aws/services/sso-admin", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_rds-data/", + "new_link": "/aws/services/rds-data", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_ec2/", + "new_link": "/aws/services/ec2", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/licensing/", + "new_link": "/aws/references/licensing", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/legal/", + "new_link": "/aws/legal", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_iotwireless/", + "new_link": "/aws/services/iotwireless", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_mwaa/", + "new_link": "/aws/services/mwaa", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager/", + "new_link": "/aws/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_pipes/", + "new_link": "/aws/services/pipes", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/state-management/persistence/", + "new_link": "/aws/capabilities/state-management/persistence", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_mq/", + "new_link": "/aws/services/mq", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/academy/localstack-101/what-is-localstack/", + "new_link": "/aws/academy/localstack-101/what-is-localstack", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_xray/", + "new_link": "/aws/services/xray", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_cognito-identity/", + "new_link": "/aws/services/cognito-identity", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/ecs/", + "new_link": "/aws/services/ecs", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/usage-tracking/", + "new_link": "/aws/references/usage-tracking", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/dms/", + "new_link": "/aws/services/dms", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_managedblockchain/", + "new_link": "/aws/services/managedblockchain", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/", + "new_link": "/aws/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/regions-coverage/", + "new_link": "/aws/references/regions-coverage", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/tutorials/elb-load-balancing/", + "new_link": "/aws/tutorials/elb-load-balancing", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/docker-images/", + "new_link": "/aws/references/docker-images", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/eks/", + "new_link": "/aws/services/eks", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/", + "new_link": "/aws/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/cloudfront/", + "new_link": "/aws/services/cloudfront", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/note-taking-application-using-aws-sdk-for-javascript/", + "new_link": "/aws/applications/note-taking-application-using-aws-sdk-for-javascript", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/state-management/export-import-state/", + "new_link": "/aws/capabilities/state-management/export-import-state", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_s3control/", + "new_link": "/aws/services/s3control", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/custom-tls-certificates/", + "new_link": "/aws/references/custom-tls-certificates", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_codecommit/", + "new_link": "/aws/services/codecommit", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/localstack-enterprise/enterprise-image/", + "new_link": "/aws/enterprise/enterprise-image", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/tools/testing-utils/", + "new_link": "/aws/user-guide/tools/testing-utils", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/codedeploy/", + "new_link": "/aws/services/codedeploy", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_serverlessrepo/", + "new_link": "/aws/services/serverlessrepo", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/resource_groups/", + "new_link": "/aws/services/resource_groups", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_glue/", + "new_link": "/aws/services/glue", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/ssm/", + "new_link": "/aws/services/ssm", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_sts/", + "new_link": "/aws/services/sts", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/academy/localstack-101/course-overview/", + "new_link": "/aws/academy/localstack-101/course-overview", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/iotwireless/", + "new_link": "/aws/services/iotwireless", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/sdks/python/", + "new_link": "/aws/integrations/aws-sdks/net/python", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/crossplane/", + "new_link": "/aws/user-guide/integrations/crossplane", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_elbv2/", + "new_link": "/aws/services/elbv2", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/openshift/", + "new_link": "/aws/user-guide/integrations/openshift", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/memorydb/", + "new_link": "/aws/services/memorydb", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/devcontainers/", + "new_link": "/aws/user-guide/integrations/devcontainers", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_secretsmanager/", + "new_link": "/aws/services/secretsmanager", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/ci/travis-ci/", + "new_link": "/aws/integrations/continuous-integration/travis-ci", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/", + "new_link": "/aws/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/lambda-tools/", + "new_link": "/aws/user-guide/lambda-tools", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/aws-cdk/", + "new_link": "/aws/user-guide/integrations/aws-cdk", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/podman/", + "new_link": "/aws/references/podman", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_memorydb/", + "new_link": "/aws/services/memorydb", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/former2/", + "new_link": "/aws/user-guide/integrations/former2", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/localstack-enterprise/k8s-operator/", + "new_link": "/aws/enterprise/k8s-operator", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/aws-cli/", + "new_link": "/aws/user-guide/integrations/aws-cli", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_kinesisanalyticsv2/", + "new_link": "/aws/services/kinesisanalyticsv2", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_amplify/", + "new_link": "/aws/services/amplify", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/events/", + "new_link": "/aws/services/events", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/pipes/", + "new_link": "/aws/services/pipes", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/ci/circle-ci/", + "new_link": "/aws/integrations/continuous-integration/circle-ci", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/network-troubleshooting/transparent-endpoint-injection/", + "new_link": "/aws/capabilities/networking/transparent-endpoint-injection", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_kafka/", + "new_link": "/aws/services/kafka", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_servicediscovery/", + "new_link": "/aws/services/servicediscovery", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_apigateway/", + "new_link": "/aws/services/apigateway", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/tutorials/", + "new_link": "/aws/tutorials", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_kinesis/", + "new_link": "/aws/services/kinesis", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_autoscaling/", + "new_link": "/aws/services/autoscaling", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_kms/", + "new_link": "/aws/services/kms", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/step-up-authentication-using-amazon-cognito/", + "new_link": "/aws/applications/step-up-authentication-using-amazon-cognito", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_athena/", + "new_link": "/aws/services/athena", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/mediastore/", + "new_link": "/aws/services/mediastore", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_fis/", + "new_link": "/aws/services/fis", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/logs/", + "new_link": "/aws/services/cloudwatchlogs", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/academy/localstack-deployment/infra-cloudformation/", + "new_link": "/aws/academy/localstack-deployment/infra-cloudformation", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/cloud-sandbox/", + "new_link": "/aws/user-guide/cloud-sandbox", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/localstack-enterprise/ci-analytics/", + "new_link": "/aws/enterprise/ci-analytics", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/changelog/", + "new_link": "/aws/references/changelog", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/credentials/", + "new_link": "/aws/references/credentials", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_elasticbeanstalk/", + "new_link": "/aws/services/elasticbeanstalk", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/web-application/instance-management/", + "new_link": "/aws/capabilities/web-app/instance-management", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_qldb/", + "new_link": "/aws/services/qldb", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/academy/localstack-deployment/iam-policy-stream/", + "new_link": "/aws/academy/localstack-deployment/iam-policy-stream", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/cross-account-access/", + "new_link": "/aws/references/cross-account-access", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/tutorials/reproducible-machine-learning-cloud-pods/", + "new_link": "/aws/tutorials/reproducible-machine-learning-cloud-pods", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_ecs/", + "new_link": "/aws/services/ecs", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_acm/", + "new_link": "/aws/services/acm", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_cloudtrail/", + "new_link": "/aws/services/cloudtrail", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/", + "new_link": "/aws/user-guide/aws", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/lambda-provider-v2/", + "new_link": "/aws/references/lambda-provider-v2", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/web-application/ci-keys/", + "new_link": "/aws/capabilities/web-app/ci-keys", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/academy/localstack-deployment/ls-integrations/", + "new_link": "/aws/academy/localstack-deployment/ls-integrations", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_appconfigdata/", + "new_link": "/aws/services/appconfigdata", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/", + "new_link": "/aws/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/security-testing/", + "new_link": "/aws/user-guide/security-testing", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/applicationautoscaling/", + "new_link": "/aws/services/applicationautoscaling", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/bedrock/", + "new_link": "/aws/services/bedrock", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/sts/", + "new_link": "/aws/services/sts", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/docdb/", + "new_link": "/aws/services/docdb", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/tools/transparent-endpoint-injection/", + "new_link": "/aws/user-guide/tools/transparent-endpoint-injection", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/account/", + "new_link": "/aws/services/account", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_efs/", + "new_link": "/aws/services/efs", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/localstack-enterprise/", + "new_link": "/aws/user-guide/localstack-enterprise", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/getting-started/auth-token/", + "new_link": "/aws/getting-started/auth-token", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/localstack-enterprise/enterprise-support/", + "new_link": "/aws/enterprise/enterprise-support", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/support/", + "new_link": "/aws/services/support", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_resourcegroupstaggingapi/", + "new_link": "/aws/services/resourcegroupstaggingapi", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/external-ports/", + "new_link": "/aws/references/external-ports", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_ce/", + "new_link": "/aws/services/ce", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/extensions/getting-started/", + "new_link": "/aws/tooling/extensions/getting-started", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_codeartifact/", + "new_link": "/aws/services/codeartifact", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/sdks/", + "new_link": "/aws/user-guide/integrations/sdks", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/localstack-enterprise/single-sign-on/azure-ad/", + "new_link": "/aws/enterprise/single-sign-on/azure-ad", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/tools/localstack-desktop/", + "new_link": "/aws/user-guide/tools/localstack-desktop", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_es/", + "new_link": "/aws/services/es", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/sdks/javascript/", + "new_link": "/aws/integrations/aws-sdks/net/javascript", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_iam/", + "new_link": "/aws/services/iam", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/tools/localsurf/", + "new_link": "/aws/user-guide/tools/localsurf", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/extensions/extensions-library/", + "new_link": "/aws/tooling/extensions/extensions-library", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/tutorials/ecs-ecr-container-app/", + "new_link": "/aws/tutorials/ecs-ecr-container-app", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_elastictranscoder/", + "new_link": "/aws/services/elastictranscoder", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/feature-coverage/", + "new_link": "/aws/services/services", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/lambda/", + "new_link": "/aws/services/lambda", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/iam-coverage/", + "new_link": "/aws/references/iam-coverage", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/transfer/", + "new_link": "/aws/services/transfer", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_batch/", + "new_link": "/aws/services/batch", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_neptune/", + "new_link": "/aws/services/neptune", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/temp/", + "new_link": "/aws/applications/temp", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/serverless-container-based-apis-with-amazon-ecs-api-gateway/", + "new_link": "/aws/applications/serverless-container-based-apis-with-amazon-ecs-api-gateway", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/s3/", + "new_link": "/aws/services/s3", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/lambda-tools/vscode-extension/", + "new_link": "/aws/tooling/lambda-tools/vscode-extension", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/chaos-engineering/", + "new_link": "/aws/user-guide/chaos-engineering", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/persistence/supported/", + "new_link": "/aws/persistence/supported", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/ce/", + "new_link": "/aws/services/ce", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/kinesisanalyticsv2/", + "new_link": "/aws/services/kinesisanalyticsv2", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/state-management/cloud-pods/", + "new_link": "/aws/capabilities/state-management/cloud-pods", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_transcribe/", + "new_link": "/aws/services/transcribe", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_mediastore-data/", + "new_link": "/aws/services/mediastore-data", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/route53/", + "new_link": "/aws/services/route53", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/config/", + "new_link": "/aws/services/config", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_identitystore/", + "new_link": "/aws/services/identitystore", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_codedeploy/", + "new_link": "/aws/services/codedeploy", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/msk/", + "new_link": "/aws/services/msk", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/state-management/", + "new_link": "/aws/user-guide/state-management", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/copilot/", + "new_link": "/aws/user-guide/integrations/copilot", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/eksctl/", + "new_link": "/aws/user-guide/integrations/eksctl", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/getting-started/faq/", + "new_link": "/aws/getting-started/faq", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/elb/", + "new_link": "/aws/services/elb", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/kubernetes/", + "new_link": "/aws/user-guide/integrations/kubernetes", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/lakeformation/", + "new_link": "/aws/services/lakeformation", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/developer-hub/", + "new_link": "/aws/developer-hub", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_firehose/", + "new_link": "/aws/services/firehose", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/verifiedpermissions/", + "new_link": "/aws/services/verifiedpermissions", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_kinesisanalytics/", + "new_link": "/aws/services/kinesisanalytics", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/sns/", + "new_link": "/aws/services/sns", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/tools/aws-replicator/", + "new_link": "/aws/user-guide/tools/aws-replicator", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/serverless-framework/", + "new_link": "/aws/user-guide/integrations/serverless-framework", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_sqs/", + "new_link": "/aws/services/sqs", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/appsync/", + "new_link": "/aws/services/appsync", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/tutorials/schema-evolution-glue-msk/", + "new_link": "/aws/tutorials/schema-evolution-glue-msk", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/ci/bitbucket/", + "new_link": "/aws/integrations/continuous-integration/bitbucket", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/contributing/", + "new_link": "/aws/contributing", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/scheduler/", + "new_link": "/aws/services/scheduler", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/quarkus/", + "new_link": "/aws/user-guide/integrations/quarkus", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/servicediscovery/", + "new_link": "/aws/services/servicediscovery", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/academy/localstack-101/", + "new_link": "/aws/academy/localstack-101", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/xray/", + "new_link": "/aws/services/xray", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/pca/", + "new_link": "/aws/services/pca", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/waf/", + "new_link": "/aws/services/waf", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/", + "new_link": "/aws/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/apigateway/", + "new_link": "/aws/services/apigateway", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/cloud-custodian/", + "new_link": "/aws/user-guide/integrations/cloud-custodian", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_lambda/", + "new_link": "/aws/services/lambda", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/sdks/java/", + "new_link": "/aws/integrations/aws-sdks/net/java", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_logs/", + "new_link": "/aws/services/logs", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_mediastore/", + "new_link": "/aws/services/mediastore", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/kafka/", + "new_link": "/aws/user-guide/integrations/kafka", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/chaos-engineering/fault-injection-service/", + "new_link": "/aws/capabilities/chaos-engineering/fault-injection-service", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/logging/", + "new_link": "/aws/references/logging", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/tutorials/java-notification-app/", + "new_link": "/aws/tutorials/java-notification-app", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses/", + "new_link": "/aws/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/route53resolver/", + "new_link": "/aws/services/route53resolver", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_wafv2/", + "new_link": "/aws/services/wafv2", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/sdks/cpp/", + "new_link": "/aws/integrations/aws-sdks/net/cpp", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/testcontainers/", + "new_link": "/aws/user-guide/integrations/testcontainers", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/internal-endpoints/", + "new_link": "/aws/references/internal-endpoints", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/iotanalytics/", + "new_link": "/aws/services/iotanalytics", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/tutorials/lambda-ecr-container-images/", + "new_link": "/aws/tutorials/lambda-ecr-container-images", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/fis/", + "new_link": "/aws/services/fis", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/tools/localstack-docker-extension/", + "new_link": "/aws/user-guide/tools/localstack-docker-extension", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/cloudformation/", + "new_link": "/aws/services/cloudformation", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/tutorials/route-53-failover/", + "new_link": "/aws/tutorials/route-53-failover", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/web-application/resource-browser/", + "new_link": "/aws/capabilities/web-app/resource-browser", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/", + "new_link": "/aws/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_resource-groups/", + "new_link": "/aws/services/resource-groups", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/state-management/support/", + "new_link": "/aws/capabilities/state-management/support", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_redshift/", + "new_link": "/aws/services/redshift", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/lambdatest-hyperexecute/", + "new_link": "/aws/user-guide/integrations/lambdatest-hyperexecute", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/", + "new_link": "/aws/applications", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/web-application/users-and-licenses/", + "new_link": "/aws/capabilities/web-app/users-and-licenses", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/tools/localstack-sdk/", + "new_link": "/aws/user-guide/tools/localstack-sdk", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_apigatewaymanagementapi/", + "new_link": "/aws/services/apigatewaymanagementapi", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_transfer/", + "new_link": "/aws/services/transfer", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_codeconnections/", + "new_link": "/aws/services/codeconnections", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/athena/", + "new_link": "/aws/services/athena", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/extensions/official-extensions/", + "new_link": "/aws/tooling/extensions/official-extensions", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/textract/", + "new_link": "/aws/services/textract", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/tutorials/iam-policy-stream/", + "new_link": "/aws/tutorials/iam-policy-stream", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_ses/", + "new_link": "/aws/services/ses", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/tutorials/gitlab_ci_testcontainers/", + "new_link": "/aws/tutorials/gitlab_ci_testcontainers", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/aws-sam/", + "new_link": "/aws/user-guide/integrations/aws-sam", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/categories/", + "new_link": "/aws/categories", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/firehose/", + "new_link": "/aws/services/firehose", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/web-application/", + "new_link": "/aws/capabilities/web-app/", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_sagemaker/", + "new_link": "/aws/services/sagemaker", + "status_code": 301 + }, + { + "old_link": "/references/arm64-support/", + "new_link": "/aws/references/arm64-support", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/shield/", + "new_link": "/aws/services/shield", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/terraform/", + "new_link": "/aws/integrations/infrastructure-as-code/terraform", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/es/", + "new_link": "/aws/services/es", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_dms/", + "new_link": "/aws/services/dms", + "status_code": 301 + }, + { + "old_link": "/user-guide/extensions/developing-extensions/", + "new_link": "/aws/tooling/extensions/developing-extensions", + "status_code": 301 + }, + { + "old_link": "/user-guide/security-testing/explainable-iam/", + "new_link": "/aws/capabilities/security-testing/explainable-iam", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/ram/", + "new_link": "/aws/services/ram", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_ssm/", + "new_link": "/aws/services/ssm", + "status_code": 301 + }, + { + "old_link": "/references/network-troubleshooting/created-resources/", + "new_link": "/aws/capabilities/networking/created-resources", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/swf/", + "new_link": "/aws/services/swf", + "status_code": 301 + }, + { + "old_link": "/user-guide/ci/github-actions/", + "new_link": "/aws/integrations/continuous-integration/github-actions", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/serverlessrepo/", + "new_link": "/aws/services/serverlessrepo", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/sqs/", + "new_link": "/aws/services/sqs", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_ram/", + "new_link": "/aws/services/ram", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/secretsmanager/", + "new_link": "/aws/services/secretsmanager", + "status_code": 301 + }, + { + "old_link": "/user-guide/web-application/stack-insights/", + "new_link": "/aws/capabilities/web-app/stack-insights", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/autoscaling/", + "new_link": "/aws/services/autoscaling", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_opensearch/", + "new_link": "/aws/services/opensearch", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-101/cloud-pods/", + "new_link": "/aws/academy/localstack-101/cloud-pods", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_emr-serverless/", + "new_link": "/aws/services/emr", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/cloudwatch/", + "new_link": "/aws/services/cloudwatch", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/elasticbeanstalk/", + "new_link": "/aws/services/elasticbeanstalk", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_mediaconvert/", + "new_link": "/aws/services/mediaconvert", + "status_code": 301 + }, + { + "old_link": "/user-guide/state-management/launchpad/", + "new_link": "/aws/capabilities/state-management/launchpad", + "status_code": 301 + }, + { + "old_link": "/user-guide/ci/codebuild/", + "new_link": "/aws/integrations/continuous-integration/codebuild", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/iotdata/", + "new_link": "/aws/services/iotdata", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_textract/", + "new_link": "/aws/services/textract", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_codebuild/", + "new_link": "/aws/services/codebuild", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/elastictranscoder/", + "new_link": "/aws/services/elastictranscoder", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_glacier/", + "new_link": "/aws/services/glacier", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/", + "new_link": "/aws/tooling/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/timestream/", + "new_link": "/aws/services/timestream", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_pinpoint/", + "new_link": "/aws/services/pinpoint" + }, + { + "old_link": "/applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds/", + "new_link": "/aws/applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/academy/localstack-101/why-localstack/", + "new_link": "/aws/academy/localstack-101/why-localstack", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/transcribe/", + "new_link": "/aws/services/transcribe", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_cloudformation/", + "new_link": "/aws/services/cloudformation", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_apigatewayv2/", + "new_link": "/aws/services/apigateway", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/kinesis/", + "new_link": "/aws/services/kinesis", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_bedrock-runtime/", + "new_link": "/aws/services/bedrock", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_iot-data/", + "new_link": "/aws/services/iotdata", + "status_code": 301 + }, + { + "old_link": "/user-guide/cloud-sandbox/ephemeral-instance/", + "new_link": "/aws/capabilities/cloud-sandbox/ephemeral-instance", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_timestream-write/", + "new_link": "/aws/services/timestream", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/pinpoint/", + "new_link": "/aws/services/pinpoint", + "status_code": 301 + }, + { + "old_link": "/tutorials/cloud-pods-collaborative-debugging/", + "new_link": "/aws/tutorials/cloud-pods-collaborative-debugging", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_emr/", + "new_link": "/aws/services/emr", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/iam/", + "new_link": "/aws/services/iam", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/course-overview/", + "new_link": "/aws/academy/localstack-deployment/course-overview", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_codepipeline/", + "new_link": "/aws/services/codepipeline", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/infra-terraform/", + "new_link": "/aws/academy/localstack-deployment/infra-terraform", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/network-troubleshooting/", + "new_link": "/aws/capabilities/networking/", + "status_code": 301 + }, + { + "old_link": "/user-guide/ci/gitlab-ci/", + "new_link": "/aws/integrations/continuous-integration/gitlab-ci", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/kms/", + "new_link": "/aws/services/kms", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_stepfunctions/", + "new_link": "/aws/services/stepfunctions", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_sesv2/", + "new_link": "/aws/services/ses", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_events/", + "new_link": "/aws/services/events", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_timestream-query/", + "new_link": "/aws/services/timestream", + "status_code": 301 + }, + { + "old_link": "/references/network-troubleshooting/endpoint-url/", + "new_link": "/aws/capabilities/networking/endpoint-url", + "status_code": 301 + }, + { + "old_link": "/tutorials/ephemeral-application-previews/", + "new_link": "/aws/tutorials/ephemeral-application-previews", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/web-application/accounts/", + "new_link": "/aws/capabilities/web-app/accounts", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_appsync/", + "new_link": "/aws/services/appsync", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_ecr/", + "new_link": "/aws/services/ecr", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/", + "new_link": "/aws/academy/localstack-deployment", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_application-autoscaling/", + "new_link": "/aws/services/appautoscaling", + "status_code": 301 + }, + { + "old_link": "/user-guide/lambda-tools/debugging/", + "new_link": "/aws/tooling/lambda-tools/debugging", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_codestar-connections/", + "new_link": "/aws/services/codestar-connections", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/rancher-desktop/", + "new_link": "/aws/integrations/containers/rancher-desktop", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/sdks/ruby/", + "new_link": "/aws/integrations/aws-sdks/net/ruby", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/mwaa/", + "new_link": "/aws/services/mwaa", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/deploy-app-ls/", + "new_link": "/aws/academy/localstack-deployment/deploy-app-ls", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/organizations/", + "new_link": "/aws/services/organizations", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/github-action-ls/", + "new_link": "/aws/academy/localstack-deployment/github-action-ls", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/sagemaker/", + "new_link": "/aws/services/sagemaker", + "status_code": 301 + }, + { + "old_link": "/references/configuration/", + "new_link": "/aws/capabilities/config/configuration", + "status_code": 301 + }, + { + "old_link": "/user-guide/chaos-engineering/chaos-api/", + "new_link": "/aws/capabilities/chaos-engineering/chaos-api", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/glacier/", + "new_link": "/aws/services/glacier", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_qldb-session/", + "new_link": "/aws/services/qldb", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/pulumi/", + "new_link": "/aws/integrations/infrastructure-as-code/pulumi", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/cloudtrail/", + "new_link": "/aws/services/cloudtrail", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_s3/", + "new_link": "/aws/services/s3", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/emr/", + "new_link": "/aws/services/emr", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/dns-server/", + "new_link": "/aws/tooling/dns-server", + "status_code": 301 + }, + { + "old_link": "/user-guide/chaos-engineering/chaos-application-dashboard/", + "new_link": "/aws/capabilities/chaos-engineering/chaos-application-dashboard", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_route53/", + "new_link": "/aws/services/route53", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_dynamodbstreams/", + "new_link": "/aws/services/dynamodbstreams", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_dynamodb/", + "new_link": "/aws/services/dynamodb", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/ec2/", + "new_link": "/aws/services/ec2", + "status_code": 301 + }, + { + "old_link": "/user-guide/cloud-sandbox/application-previews/", + "new_link": "/aws/capabilities/cloud-sandbox/application-previews", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/spring-cloud-function/", + "new_link": "/aws/integrations/app-frameworks/spring-cloud-function", + "status_code": 301 + }, + { + "old_link": "/references/multi-account-setups/", + "new_link": "/aws/capabilities/config/multi-account-setups/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/elementalmediaconvert/", + "new_link": "/aws/services/elementalmediaconvert", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_shield/", + "new_link": "/aws/services/shield", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/dynamodb/", + "new_link": "/aws/services/dynamodb", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/event-studio/", + "new_link": "/aws/tooling/event-studio/", + "status_code": 301 + }, + { + "old_link": "/references/coverage/", + "new_link": "/aws/services/", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_acm-pca/", + "new_link": "/aws/services/acm-pca", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/opensearch/", + "new_link": "/aws/services/opensearch", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/neptune/", + "new_link": "/aws/services/neptune", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/codepipeline/", + "new_link": "/aws/services/codepipeline", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_docdb/", + "new_link": "/aws/services/docdb", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_appconfig/", + "new_link": "/aws/services/appconfig", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_iot/", + "new_link": "/aws/services/iot", + "status_code": 301 + }, + { + "old_link": "/getting-started/installation/", + "new_link": "/aws/getting-started/installation", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/architect/", + "new_link": "/aws/integrations/app-frameworks/architect/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/gitpod/", + "new_link": "/aws/integrations/containers/gitpod/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/managedblockchain/", + "new_link": "/aws/services/managedblockchain", + "status_code": 301 + }, + { + "old_link": "/applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation/", + "new_link": "/aws/applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/academy/localstack-101/web-app-resource-browser/", + "new_link": "/aws/academy/localstack-101/web-app-resource-browser", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/", + "new_link": "/aws/integrations/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/codebuild/", + "new_link": "/aws/services/codebuild", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/ses/", + "new_link": "/aws/services/ses", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_sagemaker-runtime/", + "new_link": "/aws/services/sagemaker", + "status_code": 301 + }, + { + "old_link": "/applications/messaging-processing-application-with-sqs-dynamodb-and-fargate/", + "new_link": "/aws/applications/messaging-processing-application-with-sqs-dynamodb-and-fargate", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/mq/", + "new_link": "/aws/services/mq", + "status_code": 301 + }, + { + "old_link": "/user-guide/localstack-enterprise/kubernetes-executor/", + "new_link": "/aws/enterprise/kubernetes-executor", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/iot/", + "new_link": "/aws/services/iot", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/backup/", + "new_link": "/aws/services/backup", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_organizations/", + "new_link": "/aws/services/organizations", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/kinesisanalytics/", + "new_link": "/aws/services/kinesisanalytics", + "status_code": 301 + }, + { + "old_link": "/user-guide/localstack-enterprise/single-sign-on/", + "new_link": "/aws/enterprise/sso", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/redshift/", + "new_link": "/aws/services/redshift", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_verifiedpermissions/", + "new_link": "/aws/services/verifiedpermissions", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-101/full-project-demo/", + "new_link": "/aws/academy/localstack-101/full-project-demo", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/", + "new_link": "/aws/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_iotanalytics/", + "new_link": "/aws/services/iotanalytics", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/chalice/", + "new_link": "/aws/integrations/aws-native-tools/aws-chalice/", + "status_code": 301 + }, + { + "old_link": "/user-guide/security-testing/iam-policy-stream/", + "new_link": "/aws/capabilities/security-testing/iam-policy-stream", + "status_code": 301 + }, + { + "old_link": "/user-guide/security-testing/iam-enforcement/", + "new_link": "/aws/capabilities/security-testing/iam-enforcement", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_route53resolver/", + "new_link": "/aws/services/route53resolver", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_config/", + "new_link": "/aws/services/config", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_account/", + "new_link": "/aws/services/account", + "status_code": 301 + }, + { + "old_link": "/user-guide/web-application/stack-overview/", + "new_link": "/aws/capabilities/web-app/stack-overview", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/cloud-pods/", + "new_link": "/aws/academy/localstack-deployment/cloud-pods", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/appconfig/", + "new_link": "/aws/services/appconfig", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/cognito/", + "new_link": "/aws/services/cognito", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_bedrock/", + "new_link": "/aws/services/bedrock", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/efs/", + "new_link": "/aws/services/efs", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_rds/", + "new_link": "/aws/services/rds", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_backup/", + "new_link": "/aws/services/backup", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/rds/", + "new_link": "/aws/services/rds", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/identitystore/", + "new_link": "/aws/services/identitystore", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_redshift-data/", + "new_link": "/aws/services/redshift", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/elasticache/", + "new_link": "/aws/services/elasticache", + "status_code": 301 + }, + { + "old_link": "/tutorials/using-terraform-with-testcontainers-and-localstack/", + "new_link": "/aws/tutorials/using-terraform-with-testcontainers-and-localstack", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_cloudfront/", + "new_link": "/aws/services/cloudfront", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/localstack-sdk/java/", + "new_link": "/aws/user-guide/tools/localstack-sdk/java", + "status_code": 301 + }, + { + "old_link": "/references/network-troubleshooting/readme/", + "new_link": "/aws/capabilities/networking/readme", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/codecommit/", + "new_link": "/aws/services/codecommit", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_swf/", + "new_link": "/aws/services/swf", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/sdks/go/", + "new_link": "/aws/integrations/aws-sdks/net/go", + "status_code": 301 + }, + { + "old_link": "/persistence/", + "new_link": "/aws/capabilities/state-management/persistence/", + "status_code": 301 + }, + { + "old_link": "/references/init-hooks/", + "new_link": "/aws/capabilities/config/initialization-hooks/", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_support/", + "new_link": "/aws/services/support", + "status_code": 301 + }, + { + "old_link": "/user-guide/", + "new_link": "/aws/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/qldb/", + "new_link": "/aws/services/qldb", + "status_code": 301 + }, + { + "old_link": "/tutorials/simulating-outages/", + "new_link": "/aws/tutorials/simulating-outages", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/acm/", + "new_link": "/aws/services/acm", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/sdks/php/", + "new_link": "/aws/integrations/aws-sdks/net/php", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_sns/", + "new_link": "/aws/services/sns", + "status_code": 301 + }, + { + "old_link": "/getting-started/help-and-support/", + "new_link": "/aws/getting-started/help-support", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/amplify/", + "new_link": "/aws/services/amplify", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_lakeformation/", + "new_link": "/aws/services/lakeformation", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/sdks/dotnet/", + "new_link": "/aws/integrations/aws-sdks/net/dotnet", + "status_code": 301 + }, + { + "old_link": "/academy/", + "new_link": "/aws/academy", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_cloudwatch/", + "new_link": "/aws/services/cloudwatch", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/ecr/", + "new_link": "/aws/services/ecr", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/stepfunctions/", + "new_link": "/aws/services/stepfunctions", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_elasticache/", + "new_link": "/aws/services/elasticache", + "status_code": 301 + }, + { + "old_link": "/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint/", + "new_link": "/aws/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/state-management/pods-cli/", + "new_link": "/aws/capabilities/state-management/pods-cli", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/dynamodbstreams/", + "new_link": "/aws/services/dynamodbstreams", + "status_code": 301 + }, + { + "old_link": "/references/api-key/", + "new_link": "/aws/references/api-key", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/ci/", + "new_link": "/aws/user-guide/ci", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_eks/", + "new_link": "/aws/services/eks", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_cognito-idp/", + "new_link": "/aws/services/cognito", + "status_code": 301 + }, + { + "old_link": "/user-guide/web-application/workspace/", + "new_link": "/aws/capabilities/web-app/workspace", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_cloudcontrol/", + "new_link": "/aws/services/cloudcontrol", + "status_code": 301 + }, + { + "old_link": "/tutorials/replicate-aws-resources-localstack-extension/", + "new_link": "/aws/tutorials/replicate-aws-resources-localstack-extension", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/localstack-sdk/python/", + "new_link": "/aws/tooling/localstack-sdks/python", + "status_code": 301 + }, + { + "old_link": "/user-guide/lambda-tools/hot-reloading/", + "new_link": "/aws/tooling/lambda-tools/hot-reloading", + "status_code": 301 + }, + { + "old_link": "/getting-started/quickstart/", + "new_link": "/aws/getting-started/quickstart", + "status_code": 301 + }, + { + "old_link": "/overview/", + "new_link": "/aws/getting-started", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/glue/", + "new_link": "/aws/services/glue", + "status_code": 301 + }, + { + "old_link": "/getting-started/", + "new_link": "/aws/getting-started", + "status_code": 301 + }, + { + "old_link": "/user-guide/extensions/managing-extensions/", + "new_link": "/aws/tooling/extensions/managing-extensions", + "status_code": 301 + }, + { + "old_link": "/references/filesystem/", + "new_link": "/aws/capabilities/config/filesystem/", + "status_code": 301 + } + ], + "snowflake": [ + { + "old_link": "/user-guide/state-management/", + "new_link": "/snowflake/capabilities/state-management/", + "status_code": 301 + }, + { + "old_link": "/tutorials/credit-scoring-with-localstack-snowpark/", + "new_link": "/snowflake/tutorials/aws-lambda-localstack-snowpark/", + "status_code": 301 + }, + { + "old_link": "/user-guide/init-hooks/", + "new_link": "/snowflake/capabilities/init-hooks/", + "status_code": 301 + }, + { + "old_link": "/user-guide/authentication/", + "new_link": "/snowflake/features/authentication/", + "status_code": 301 + }, + { + "old_link": "/references/configuration/", + "new_link": "/snowflake/capabilities/configuration/", + "status_code": 301 + }, + { + "old_link": "/user-guide/tasks/", + "new_link": "/snowflake/features/tasks/", + "status_code": 301 + }, + { + "old_link": "/user-guide/snowflake-drivers/", + "new_link": "/snowflake/integrations/snowflake-drivers/", + "status_code": 301 + }, + { + "old_link": "/user-guide/tags/", + "new_link": "/snowflake/features/tags/", + "status_code": 301 + }, + { + "old_link": "/user-guide/stages/", + "new_link": "/snowflake/features/stages/", + "status_code": 301 + }, + { + "old_link": "/getting-started/installation/", + "new_link": "/snowflake/getting-started/", + "status_code": 301 + }, + { + "old_link": "/references/coverage-features/", + "new_link": "/snowflake/features/", + "status_code": 301 + }, + { + "old_link": "/user-guide/streamlit/", + "new_link": "/snowflake/features/streamlit/", + "status_code": 301 + }, + { + "old_link": "/user-guide/clones/", + "new_link": "/snowflake/features/clones/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/snowsql/", + "new_link": "/snowflake/integrations/snowsql/", + "status_code": 301 + }, + { + "old_link": "/getting-started/", + "new_link": "/snowflake/getting-started/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/snow-cli/", + "new_link": "/snowflake/integrations/snow-cli/", + "status_code": 301 + }, + { + "old_link": "/user-guide/snowpipe/", + "new_link": "/snowflake/features/snowpipe/", + "status_code": 301 + }, + { + "old_link": "/user-guide/streams/", + "new_link": "/snowflake/features/streams/", + "status_code": 301 + }, + { + "old_link": "/user-guide/materalized-views/", + "new_link": "/snowflake/features/materalized-views/", + "status_code": 301 + }, + { + "old_link": "/tutorials/aws-lambda-localstack-snowpark/", + "new_link": "/snowflake/tutorials/aws-lambda-localstack-snowpark/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/continuous-integration/", + "new_link": "/snowflake/integrations/continuous-integration/", + "status_code": 301 + }, + { + "old_link": "/introduction/", + "new_link": "/snowflake/", + "status_code": 301 + }, + { + "old_link": "/user-guide/user-defined-functions/", + "new_link": "/snowflake/features/user-defined-functions/", + "status_code": 301 + }, + { + "old_link": "/getting-started/faq/", + "new_link": "/snowflake/getting-started/faq/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/dbeaver/", + "new_link": "/snowflake/integrations/dbeaver/", + "status_code": 301 + }, + { + "old_link": "/user-guide/cross-database-resource-sharing/", + "new_link": "/snowflake/features/cross-database-resource-sharing/", + "status_code": 301 + }, + { + "old_link": "/user-guide/row-access-policies/", + "new_link": "/snowflake/features/row-access-policies/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/dbt/", + "new_link": "/snowflake/integrations/dbt/", + "status_code": 301 + }, + { + "old_link": "/user-guide/", + "new_link": "/snowflake/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/airflow/", + "new_link": "/snowflake/integrations/airflow/", + "status_code": 301 + }, + { + "old_link": "/user-guide/user-interface/", + "new_link": "/snowflake/tooling/user-interface/", + "status_code": 301 + }, + { + "old_link": "/user-guide/accounts/", + "new_link": "/snowflake/features/accounts/", + "status_code": 301 + }, + { + "old_link": "/user-guide/hybird-tables/", + "new_link": "/snowflake/features/hybrid-tables/", + "status_code": 301 + }, + { + "old_link": "/references/changelog/", + "new_link": "/snowflake/changelog/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/flyway/", + "new_link": "/snowflake/integrations/flyway/", + "status_code": 301 + }, + { + "old_link": "/user-guide/dynamic-tables/", + "new_link": "/snowflake/features/dynamic-tables/", + "status_code": 301 + }, + { + "old_link": "/user-guide/native-apps/", + "new_link": "/snowflake/features/native-apps/", + "status_code": 301 + }, + { + "old_link": "/references/coverage-functions/", + "new_link": "/snowflake/sql-functions/", + "status_code": 301 + }, + { + "old_link": "/user-guide/storage-integrations/", + "new_link": "/snowflake/features/storage-integrations/", + "status_code": 301 + }, + { + "old_link": "/user-guide/polaris-catalog/", + "new_link": "/snowflake/features/polaris-catalog/", + "status_code": 301 + }, + { + "old_link": "/getting-started/quickstart/", + "new_link": "/snowflake/getting-started/quickstart/", + "status_code": 301 + }, + { + "old_link": "/user-guide/iceberg-tables/", + "new_link": "/snowflake/features/iceberg-tables/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/terraform/", + "new_link": "/snowflake/integrations/terraform/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/pulumi/", + "new_link": "/snowflake/integrations/pulumi/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/", + "new_link": "/snowflake/integrations/", + "status_code": 301 + }, + { + "old_link": "/user-guide/transaction-management/", + "new_link": "/snowflake/features/transaction-management/", + "status_code": 301 + }, + { + "old_link": "/user-guide/snowpark/", + "new_link": "/snowflake/integrations/snowpark/", + "status_code": 301 + }, + { + "old_link": "/tutorials/", + "new_link": "/snowflake/tutorials/", + "status_code": 301 + } + ] +} \ No newline at end of file diff --git a/scripts/redirects/requirements.txt b/scripts/redirects/requirements.txt new file mode 100644 index 00000000..1190bd8f --- /dev/null +++ b/scripts/redirects/requirements.txt @@ -0,0 +1,2 @@ +requests +beautifulsoup4 diff --git a/scripts/redirects/scrap_sitemap.py b/scripts/redirects/scrap_sitemap.py new file mode 100644 index 00000000..877eb766 --- /dev/null +++ b/scripts/redirects/scrap_sitemap.py @@ -0,0 +1,18 @@ +from bs4 import BeautifulSoup +import requests + +def get_urls_of_xml(xml_url): + r = requests.get(xml_url) + xml = r.text + soup = BeautifulSoup(xml) + + links_arr = [] + for link in soup.findAll('loc'): + linkstr = link.getText('', True) + links_arr.append(linkstr) + + return links_arr + +links_data_arr = get_urls_of_xml("https://snowflake.localstack.cloud/sitemap.xml") +for link in links_data_arr: + print(f"{link}") diff --git a/scripts/redirects/snowflake_urls.txt b/scripts/redirects/snowflake_urls.txt new file mode 100644 index 00000000..6b462758 --- /dev/null +++ b/scripts/redirects/snowflake_urls.txt @@ -0,0 +1,52 @@ +https://snowflake.localstack.cloud/tutorials/credit-scoring-with-localstack-snowpark/ +https://snowflake.localstack.cloud/references/coverage-features/ +https://snowflake.localstack.cloud/getting-started/installation/ +https://snowflake.localstack.cloud/introduction/ +https://snowflake.localstack.cloud/user-guide/snowflake-drivers/ +https://snowflake.localstack.cloud/references/coverage-functions/ +https://snowflake.localstack.cloud/references/changelog/ +https://snowflake.localstack.cloud/tutorials/aws-lambda-localstack-snowpark/ +https://snowflake.localstack.cloud/getting-started/ +https://snowflake.localstack.cloud/getting-started/quickstart/ +https://snowflake.localstack.cloud/user-guide/integrations/snow-cli/ +https://snowflake.localstack.cloud/user-guide/snowpark/ +https://snowflake.localstack.cloud/user-guide/integrations/terraform/ +https://snowflake.localstack.cloud/references/configuration/ +https://snowflake.localstack.cloud/getting-started/faq/ +https://snowflake.localstack.cloud/user-guide/integrations/pulumi/ +https://snowflake.localstack.cloud/user-guide/ +https://snowflake.localstack.cloud/user-guide/integrations/continuous-integration/ +https://snowflake.localstack.cloud/user-guide/integrations/snowsql/ +https://snowflake.localstack.cloud/user-guide/tasks/ +https://snowflake.localstack.cloud/tutorials/ +https://snowflake.localstack.cloud/user-guide/integrations/airflow/ +https://snowflake.localstack.cloud/user-guide/integrations/dbeaver/ +https://snowflake.localstack.cloud/user-guide/integrations/dbt/ +https://snowflake.localstack.cloud/references/ +https://snowflake.localstack.cloud/user-guide/user-defined-functions/ +https://snowflake.localstack.cloud/user-guide/cross-database-resource-sharing/ +https://snowflake.localstack.cloud/user-guide/integrations/flyway/ +https://snowflake.localstack.cloud/user-guide/streams/ +https://snowflake.localstack.cloud/user-guide/stages/ +https://snowflake.localstack.cloud/user-guide/state-management/ +https://snowflake.localstack.cloud/user-guide/streamlit/ +https://snowflake.localstack.cloud/user-guide/user-interface/ +https://snowflake.localstack.cloud/user-guide/snowpipe/ +https://snowflake.localstack.cloud/user-guide/iceberg-tables/ +https://snowflake.localstack.cloud/user-guide/hybird-tables/ +https://snowflake.localstack.cloud/user-guide/dynamic-tables/ +https://snowflake.localstack.cloud/user-guide/storage-integrations/ +https://snowflake.localstack.cloud/user-guide/tags/ +https://snowflake.localstack.cloud/user-guide/clones/ +https://snowflake.localstack.cloud/user-guide/accounts/ +https://snowflake.localstack.cloud/user-guide/native-apps/ +https://snowflake.localstack.cloud/user-guide/polaris-catalog/ +https://snowflake.localstack.cloud/user-guide/init-hooks/ +https://snowflake.localstack.cloud/user-guide/materalized-views/ +https://snowflake.localstack.cloud/user-guide/transaction-management/ +https://snowflake.localstack.cloud/user-guide/row-access-policies/ +https://snowflake.localstack.cloud/user-guide/authentication/ +https://snowflake.localstack.cloud/user-guide/integrations/ +https://snowflake.localstack.cloud/categories/ +https://snowflake.localstack.cloud/ +https://snowflake.localstack.cloud/tags/ diff --git a/scripts/redirects/test_redirects.py b/scripts/redirects/test_redirects.py new file mode 100644 index 00000000..22780ba1 --- /dev/null +++ b/scripts/redirects/test_redirects.py @@ -0,0 +1,241 @@ +#!/usr/bin/env python3 +""" +Script to test redirects by checking if old URLs redirect to expected new URLs. +Uses the staging environment to test the redirect behavior. +""" + +import json +import requests +import argparse +from urllib.parse import urlparse, urljoin +from pathlib import Path +import time +from typing import List, Tuple + + +class RedirectTester: + def __init__(self, staging_base_url: str, timeout: int = 10): + self.staging_base_url = staging_base_url.rstrip('/') + self.timeout = timeout + self.session = requests.Session() + self.session.headers.update({ + 'User-Agent': 'LocalStack-Redirect-Tester/1.0' + }) + + def test_redirect(self, old_path: str, expected_new_path: str) -> Tuple[bool, str, int, str]: + """ + Test if old_path redirects to expected_new_path. + + Args: + old_path: Path to test (e.g., "/user-guide/") + expected_new_path: Expected redirect path (e.g., "/aws/user-guide/") + + Returns: + (success, final_url, status_code, message) + """ + try: + # Build full staging URL from path + staging_url = f"{self.staging_base_url}{old_path}" + + # Make request with redirect following + response = self.session.get( + staging_url, + allow_redirects=True, + timeout=self.timeout + ) + + final_url = response.url + status_code = response.status_code + + # Build expected full URL + expected_staging_url = f"{self.staging_base_url}{expected_new_path}" + + # Check if redirect worked correctly + if final_url == expected_staging_url: + return True, final_url, status_code, "โœ… Redirect successful" + else: + return False, final_url, status_code, f"โŒ Expected: {expected_staging_url}, Got: {final_url}" + + except requests.exceptions.Timeout: + return False, "", 0, "โฐ Request timeout" + except requests.exceptions.RequestException as e: + return False, "", 0, f"๐Ÿ”Œ Request failed: {str(e)}" + except Exception as e: + return False, "", 0, f"๐Ÿ’ฅ Unexpected error: {str(e)}" + + def test_all_redirects(self, config_file: Path) -> dict: + """Test all redirects from the config file.""" + + with open(config_file, 'r') as f: + config = json.load(f) + + results = { + 'total': 0, + 'passed': 0, + 'failed': 0, + 'details': [] + } + + # Test AWS redirects + if 'aws' in config: + print(f"\n๐Ÿ” Testing AWS redirects...") + for i, redirect in enumerate(config['aws'], 1): + old_path = redirect['old_link'] + new_path = redirect['new_link'] + + print(f" [{i}] Testing: {old_path}") + success, final_url, status_code, message = self.test_redirect(old_path, new_path) + + results['total'] += 1 + if success: + results['passed'] += 1 + print(f" {message}") + else: + results['failed'] += 1 + print(f" {message}") + + results['details'].append({ + 'product': 'aws', + 'old_url': old_path, + 'expected_new_url': new_path, + 'final_url': final_url, + 'status_code': status_code, + 'success': success, + 'message': message + }) + + # Small delay to be respectful + time.sleep(0.5) + + # Test Snowflake redirects + if 'snowflake' in config: + print(f"\nโ„๏ธ Testing Snowflake redirects...") + for i, redirect in enumerate(config['snowflake'], 1): + old_path = redirect['old_link'] + new_path = redirect['new_link'] + + print(f" [{i}] Testing: {old_path}") + success, final_url, status_code, message = self.test_redirect(old_path, new_path) + + results['total'] += 1 + if success: + results['passed'] += 1 + print(f" {message}") + else: + results['failed'] += 1 + print(f" {message}") + + results['details'].append({ + 'product': 'snowflake', + 'old_url': old_path, + 'expected_new_url': new_path, + 'final_url': final_url, + 'status_code': status_code, + 'success': success, + 'message': message + }) + + # Small delay to be respectful + time.sleep(0.5) + + return results + + def generate_report(self, results: dict, output_file: str = None): + """Generate a detailed test report.""" + + report = [] + report.append("# LocalStack Redirect Test Report") + report.append(f"**Generated:** {time.strftime('%Y-%m-%d %H:%M:%S')}") + report.append(f"**Staging URL:** {self.staging_base_url}") + report.append("") + report.append("## Summary") + report.append(f"- **Total tests:** {results['total']}") + report.append(f"- **Passed:** {results['passed']} โœ…") + report.append(f"- **Failed:** {results['failed']} โŒ") + report.append(f"- **Success rate:** {(results['passed'] / results['total'] * 100):.1f}%" if results['total'] > 0 else "- **Success rate:** N/A") + report.append("") + + if results['failed'] > 0: + report.append("## Failed Tests") + for detail in results['details']: + if not detail['success']: + report.append(f"### {detail['product'].upper()}: {detail['old_url']}") + report.append(f"- **Expected:** {detail['expected_new_url']}") + report.append(f"- **Got:** {detail['final_url']}") + report.append(f"- **Status:** {detail['status_code']}") + report.append(f"- **Message:** {detail['message']}") + report.append("") + + report.append("## All Test Details") + for detail in results['details']: + status_icon = "โœ…" if detail['success'] else "โŒ" + report.append(f"### {status_icon} {detail['product'].upper()}: {detail['old_url']}") + report.append(f"- **Expected:** {detail['expected_new_url']}") + report.append(f"- **Final URL:** {detail['final_url']}") + report.append(f"- **Status Code:** {detail['status_code']}") + report.append(f"- **Message:** {detail['message']}") + report.append("") + + report_text = "\n".join(report) + + if output_file: + with open(output_file, 'w') as f: + f.write(report_text) + print(f"\n๐Ÿ“‹ Detailed report saved to: {output_file}") + + return report_text + + +def main(): + parser = argparse.ArgumentParser(description='Test LocalStack redirects') + parser.add_argument('--config', default='redirects_config.json', + help='Path to JSON config file (default: redirects_config.json)') + parser.add_argument('--staging-url', default='https://a5c92421.localstack-docs.pages.dev', + help='Staging base URL (default: https://a5c92421.localstack-docs.pages.dev)') + parser.add_argument('--timeout', type=int, default=10, + help='Request timeout in seconds (default: 10)') + parser.add_argument('--report', + help='Save detailed report to file (optional)') + + args = parser.parse_args() + + config_path = Path(args.config) + if not config_path.exists(): + print(f"โŒ Error: Config file '{config_path}' not found!") + return 1 + + print(f"๐Ÿš€ Starting redirect tests...") + print(f"๐Ÿ“ Staging URL: {args.staging_url}") + print(f"โš™๏ธ Config file: {config_path}") + + tester = RedirectTester(args.staging_url, args.timeout) + + try: + results = tester.test_all_redirects(config_path) + + print(f"\n" + "="*50) + print(f"๐Ÿ“Š TEST RESULTS SUMMARY") + print(f"="*50) + print(f"Total tests: {results['total']}") + print(f"Passed: {results['passed']} โœ…") + print(f"Failed: {results['failed']} โŒ") + + if results['total'] > 0: + success_rate = results['passed'] / results['total'] * 100 + print(f"Success rate: {success_rate:.1f}%") + + if args.report: + tester.generate_report(results, args.report) + + return 0 if results['failed'] == 0 else 1 + else: + print("No tests found in config file!") + return 1 + + except Exception as e: + print(f"๐Ÿ’ฅ Error running tests: {e}") + return 1 + + +if __name__ == "__main__": + exit(main()) \ No newline at end of file diff --git a/src/content/docs/aws/services/sagemaker.mdx b/src/content/docs/aws/services/sagemaker.mdx index 84216c5b..d5e49756 100644 --- a/src/content/docs/aws/services/sagemaker.mdx +++ b/src/content/docs/aws/services/sagemaker.mdx @@ -121,3 +121,5 @@ Currently, GPU models are not supported by the LocalStack SageMaker implementati ## API Coverage + + From 31c7d59e99290f88660e0983032f63db804ecf60 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Fri, 27 Jun 2025 14:41:38 +0530 Subject: [PATCH 02/14] wip (2) --- .../redirects/redirects_config_template.json | 647 +++++++----------- 1 file changed, 233 insertions(+), 414 deletions(-) diff --git a/scripts/redirects/redirects_config_template.json b/scripts/redirects/redirects_config_template.json index 822be336..df80d239 100644 --- a/scripts/redirects/redirects_config_template.json +++ b/scripts/redirects/redirects_config_template.json @@ -9,26 +9,22 @@ { "old_link": "/references/coverage/coverage_elb/", "new_link": "/aws/services/elb", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/batch/", "new_link": "/aws/services/batch", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_scheduler/", "new_link": "/aws/services/scheduler", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/extensions/", - "new_link": "/aws/user-guide/extensions", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/extensions", + "status_code": 301 }, { "old_link": "/tutorials/s3-static-website-terraform/", @@ -44,15 +40,13 @@ }, { "old_link": "/references/coverage/coverage_rds-data/", - "new_link": "/aws/services/rds-data", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/rds", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_ec2/", "new_link": "/aws/services/ec2", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/licensing/", @@ -69,14 +63,12 @@ { "old_link": "/references/coverage/coverage_iotwireless/", "new_link": "/aws/services/iotwireless", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_mwaa/", "new_link": "/aws/services/mwaa", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager/", @@ -87,20 +79,17 @@ { "old_link": "/references/coverage/coverage_pipes/", "new_link": "/aws/services/pipes", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/state-management/persistence/", "new_link": "/aws/capabilities/state-management/persistence", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_mq/", "new_link": "/aws/services/mq", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/academy/localstack-101/what-is-localstack/", @@ -111,20 +100,17 @@ { "old_link": "/references/coverage/coverage_xray/", "new_link": "/aws/services/xray", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_cognito-identity/", - "new_link": "/aws/services/cognito-identity", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/cognito", + "status_code": 301 }, { "old_link": "/user-guide/aws/ecs/", "new_link": "/aws/services/ecs", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/usage-tracking/", @@ -135,14 +121,12 @@ { "old_link": "/user-guide/aws/dms/", "new_link": "/aws/services/dms", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_managedblockchain/", "new_link": "/aws/services/managedblockchain", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/", @@ -164,15 +148,13 @@ }, { "old_link": "/references/docker-images/", - "new_link": "/aws/references/docker-images", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/config/docker-images", + "status_code": 301 }, { "old_link": "/user-guide/aws/eks/", "new_link": "/aws/services/eks", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/", @@ -183,8 +165,7 @@ { "old_link": "/user-guide/aws/cloudfront/", "new_link": "/aws/services/cloudfront", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/applications/note-taking-application-using-aws-sdk-for-javascript/", @@ -195,74 +176,62 @@ { "old_link": "/user-guide/state-management/export-import-state/", "new_link": "/aws/capabilities/state-management/export-import-state", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_s3control/", - "new_link": "/aws/services/s3control", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/s3", + "status_code": 301 }, { "old_link": "/references/custom-tls-certificates/", - "new_link": "/aws/references/custom-tls-certificates", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/security-testing/custom-tls-certificates", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_codecommit/", "new_link": "/aws/services/codecommit", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/localstack-enterprise/enterprise-image/", "new_link": "/aws/enterprise/enterprise-image", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/tools/testing-utils/", - "new_link": "/aws/user-guide/tools/testing-utils", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/tooling/testing-utils", + "status_code": 301 }, { "old_link": "/user-guide/aws/codedeploy/", "new_link": "/aws/services/codedeploy", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_serverlessrepo/", "new_link": "/aws/services/serverlessrepo", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/resource_groups/", "new_link": "/aws/services/resource_groups", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_glue/", "new_link": "/aws/services/glue", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/ssm/", "new_link": "/aws/services/ssm", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_sts/", "new_link": "/aws/services/sts", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/academy/localstack-101/course-overview/", @@ -273,56 +242,47 @@ { "old_link": "/user-guide/aws/iotwireless/", "new_link": "/aws/services/iotwireless", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/integrations/sdks/python/", "new_link": "/aws/integrations/aws-sdks/net/python", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/integrations/crossplane/", - "new_link": "/aws/user-guide/integrations/crossplane", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/infrastructure-as-code/crossplane", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_elbv2/", - "new_link": "/aws/services/elbv2", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/elb", + "status_code": 301 }, { "old_link": "/user-guide/integrations/openshift/", - "new_link": "/aws/user-guide/integrations/openshift", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/containers/openshift", + "status_code": 301 }, { "old_link": "/user-guide/aws/memorydb/", "new_link": "/aws/services/memorydb", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/integrations/devcontainers/", - "new_link": "/aws/user-guide/integrations/devcontainers", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/containers/devcontainers", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_secretsmanager/", "new_link": "/aws/services/secretsmanager", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/ci/travis-ci/", "new_link": "/aws/integrations/continuous-integration/travis-ci", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/", @@ -332,123 +292,103 @@ }, { "old_link": "/user-guide/lambda-tools/", - "new_link": "/aws/user-guide/lambda-tools", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/tooling/lambda-tools", + "status_code": 301 }, { "old_link": "/user-guide/integrations/aws-cdk/", - "new_link": "/aws/user-guide/integrations/aws-cdk", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/aws-native-tools/aws-cdk", + "status_code": 301 }, { "old_link": "/references/podman/", - "new_link": "/aws/references/podman", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/config/podman", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_memorydb/", "new_link": "/aws/services/memorydb", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/integrations/former2/", - "new_link": "/aws/user-guide/integrations/former2", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/infrastructure-as-code/former2", + "status_code": 301 }, { "old_link": "/user-guide/localstack-enterprise/k8s-operator/", "new_link": "/aws/enterprise/k8s-operator", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/integrations/aws-cli/", - "new_link": "/aws/user-guide/integrations/aws-cli", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/aws-native-tools/aws-cli", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_kinesisanalyticsv2/", - "new_link": "/aws/services/kinesisanalyticsv2", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/apacheflink", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_amplify/", "new_link": "/aws/services/amplify", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/events/", "new_link": "/aws/services/events", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/pipes/", "new_link": "/aws/services/pipes", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/ci/circle-ci/", "new_link": "/aws/integrations/continuous-integration/circle-ci", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/network-troubleshooting/transparent-endpoint-injection/", "new_link": "/aws/capabilities/networking/transparent-endpoint-injection", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_kafka/", - "new_link": "/aws/services/kafka", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/msk", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_servicediscovery/", "new_link": "/aws/services/servicediscovery", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_apigateway/", "new_link": "/aws/services/apigateway", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/tutorials/", "new_link": "/aws/tutorials", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_kinesis/", "new_link": "/aws/services/kinesis", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_autoscaling/", "new_link": "/aws/services/autoscaling", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_kms/", "new_link": "/aws/services/kms", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/applications/step-up-authentication-using-amazon-cognito/", @@ -459,26 +399,22 @@ { "old_link": "/references/coverage/coverage_athena/", "new_link": "/aws/services/athena", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/mediastore/", "new_link": "/aws/services/mediastore", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_fis/", "new_link": "/aws/services/fis", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/logs/", "new_link": "/aws/services/cloudwatchlogs", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/academy/localstack-deployment/infra-cloudformation/", @@ -488,9 +424,8 @@ }, { "old_link": "/user-guide/cloud-sandbox/", - "new_link": "/aws/user-guide/cloud-sandbox", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/cloud-sandbox", + "status_code": 301 }, { "old_link": "/user-guide/localstack-enterprise/ci-analytics/", @@ -506,27 +441,23 @@ }, { "old_link": "/references/credentials/", - "new_link": "/aws/references/credentials", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/config/credentials", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_elasticbeanstalk/", "new_link": "/aws/services/elasticbeanstalk", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/web-application/instance-management/", "new_link": "/aws/capabilities/web-app/instance-management", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_qldb/", "new_link": "/aws/services/qldb", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/academy/localstack-deployment/iam-policy-stream/", @@ -549,38 +480,32 @@ { "old_link": "/references/coverage/coverage_ecs/", "new_link": "/aws/services/ecs", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_acm/", "new_link": "/aws/services/acm", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_cloudtrail/", "new_link": "/aws/services/cloudtrail", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/", - "new_link": "/aws/user-guide/aws", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/", + "status_code": 301 }, { "old_link": "/references/lambda-provider-v2/", - "new_link": "/aws/references/lambda-provider-v2", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/lambda", + "status_code": 301 }, { "old_link": "/user-guide/web-application/ci-keys/", "new_link": "/aws/capabilities/web-app/ci-keys", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/academy/localstack-deployment/ls-integrations/", @@ -590,9 +515,8 @@ }, { "old_link": "/references/coverage/coverage_appconfigdata/", - "new_link": "/aws/services/appconfigdata", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/appconfig", + "status_code": 301 }, { "old_link": "/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/", @@ -602,99 +526,83 @@ }, { "old_link": "/user-guide/security-testing/", - "new_link": "/aws/user-guide/security-testing", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/security-testing/", + "status_code": 301 }, { "old_link": "/user-guide/aws/applicationautoscaling/", - "new_link": "/aws/services/applicationautoscaling", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/appautoscaling", + "status_code": 301 }, { "old_link": "/user-guide/aws/bedrock/", "new_link": "/aws/services/bedrock", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/sts/", "new_link": "/aws/services/sts", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/docdb/", "new_link": "/aws/services/docdb", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/tools/transparent-endpoint-injection/", - "new_link": "/aws/user-guide/tools/transparent-endpoint-injection", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, + "new_link": "/aws/capabilities/networking/transparent-endpoint-injection", + "status_code": 301 + }, { "old_link": "/user-guide/aws/account/", "new_link": "/aws/services/account", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_efs/", "new_link": "/aws/services/efs", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/localstack-enterprise/", - "new_link": "/aws/user-guide/localstack-enterprise", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/enterprise/", + "status_code": 301 }, { "old_link": "/getting-started/auth-token/", "new_link": "/aws/getting-started/auth-token", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/localstack-enterprise/enterprise-support/", "new_link": "/aws/enterprise/enterprise-support", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/support/", "new_link": "/aws/services/support", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_resourcegroupstaggingapi/", - "new_link": "/aws/services/resourcegroupstaggingapi", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/resourcegroups", + "status_code": 301 }, { "old_link": "/references/external-ports/", - "new_link": "/aws/references/external-ports", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/networking/external-port-range", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_ce/", "new_link": "/aws/services/ce", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/extensions/getting-started/", "new_link": "/aws/tooling/extensions/getting-started", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_codeartifact/", @@ -704,9 +612,8 @@ }, { "old_link": "/user-guide/integrations/sdks/", - "new_link": "/aws/user-guide/integrations/sdks", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/aws-sdks/", + "status_code": 301 }, { "old_link": "/user-guide/localstack-enterprise/single-sign-on/azure-ad/", @@ -716,39 +623,33 @@ }, { "old_link": "/user-guide/tools/localstack-desktop/", - "new_link": "/aws/user-guide/tools/localstack-desktop", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/web-app/localstack-desktop", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_es/", "new_link": "/aws/services/es", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/integrations/sdks/javascript/", "new_link": "/aws/integrations/aws-sdks/net/javascript", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_iam/", "new_link": "/aws/services/iam", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/tools/localsurf/", - "new_link": "/aws/user-guide/tools/localsurf", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/tooling/localsurf", + "status_code": 301 }, { "old_link": "/user-guide/extensions/extensions-library/", "new_link": "/aws/tooling/extensions/extensions-library", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/tutorials/ecs-ecr-container-app/", @@ -759,20 +660,17 @@ { "old_link": "/references/coverage/coverage_elastictranscoder/", "new_link": "/aws/services/elastictranscoder", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/feature-coverage/", - "new_link": "/aws/services/services", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/", + "status_code": 301 }, { "old_link": "/user-guide/aws/lambda/", "new_link": "/aws/services/lambda", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/iam-coverage/", @@ -783,20 +681,17 @@ { "old_link": "/user-guide/aws/transfer/", "new_link": "/aws/services/transfer", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_batch/", "new_link": "/aws/services/batch", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_neptune/", "new_link": "/aws/services/neptune", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/applications/temp/", @@ -813,128 +708,107 @@ { "old_link": "/user-guide/aws/s3/", "new_link": "/aws/services/s3", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/lambda-tools/vscode-extension/", "new_link": "/aws/tooling/lambda-tools/vscode-extension", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/chaos-engineering/", - "new_link": "/aws/user-guide/chaos-engineering", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/chaos-engineering/", + "status_code": 301 }, { "old_link": "/persistence/supported/", - "new_link": "/aws/persistence/supported", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/state-management/persistence-coverage", + "status_code": 301 }, { "old_link": "/user-guide/aws/ce/", "new_link": "/aws/services/ce", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/kinesisanalyticsv2/", "new_link": "/aws/services/kinesisanalyticsv2", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/state-management/cloud-pods/", "new_link": "/aws/capabilities/state-management/cloud-pods", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_transcribe/", "new_link": "/aws/services/transcribe", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_mediastore-data/", - "new_link": "/aws/services/mediastore-data", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/mediastore", + "status_code": 301 }, { "old_link": "/user-guide/aws/route53/", "new_link": "/aws/services/route53", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/config/", "new_link": "/aws/services/config", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_identitystore/", "new_link": "/aws/services/identitystore", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_codedeploy/", "new_link": "/aws/services/codedeploy", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/msk/", "new_link": "/aws/services/msk", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/state-management/", - "new_link": "/aws/user-guide/state-management", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/state-management/", + "status_code": 301 }, { "old_link": "/user-guide/integrations/copilot/", - "new_link": "/aws/user-guide/integrations/copilot", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/aws-native-tools/aws-copilot-cli/", + "status_code": 301 }, { "old_link": "/user-guide/integrations/eksctl/", - "new_link": "/aws/user-guide/integrations/eksctl", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/containers/eksctl/", + "status_code": 301 }, { "old_link": "/getting-started/faq/", "new_link": "/aws/getting-started/faq", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/elb/", "new_link": "/aws/services/elb", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/integrations/kubernetes/", - "new_link": "/aws/user-guide/integrations/kubernetes", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/containers/kubernetes/", + "status_code": 301 }, { "old_link": "/user-guide/aws/lakeformation/", "new_link": "/aws/services/lakeformation", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/developer-hub/", @@ -945,50 +819,42 @@ { "old_link": "/references/coverage/coverage_firehose/", "new_link": "/aws/services/firehose", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/verifiedpermissions/", "new_link": "/aws/services/verifiedpermissions", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_kinesisanalytics/", "new_link": "/aws/services/kinesisanalytics", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/sns/", "new_link": "/aws/services/sns", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/tools/aws-replicator/", - "new_link": "/aws/user-guide/tools/aws-replicator", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/tooling/aws-replicator", + "status_code": 301 }, { "old_link": "/user-guide/integrations/serverless-framework/", - "new_link": "/aws/user-guide/integrations/serverless-framework", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/app-frameworks/serverless-framework", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_sqs/", "new_link": "/aws/services/sqs", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/appsync/", "new_link": "/aws/services/appsync", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/tutorials/schema-evolution-glue-msk/", @@ -999,8 +865,7 @@ { "old_link": "/user-guide/ci/bitbucket/", "new_link": "/aws/integrations/continuous-integration/bitbucket", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/contributing/", @@ -1011,20 +876,17 @@ { "old_link": "/user-guide/aws/scheduler/", "new_link": "/aws/services/scheduler", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/integrations/quarkus/", - "new_link": "/aws/user-guide/integrations/quarkus", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/app-frameworks/quarkus", + "status_code": 301 }, { "old_link": "/user-guide/aws/servicediscovery/", "new_link": "/aws/services/servicediscovery", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/academy/localstack-101/", @@ -1035,20 +897,17 @@ { "old_link": "/user-guide/aws/xray/", "new_link": "/aws/services/xray", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/pca/", "new_link": "/aws/services/pca", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/waf/", "new_link": "/aws/services/waf", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/", @@ -1059,56 +918,47 @@ { "old_link": "/user-guide/aws/apigateway/", "new_link": "/aws/services/apigateway", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/integrations/cloud-custodian/", - "new_link": "/aws/user-guide/integrations/cloud-custodian", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/infrastructure-as-code/cloud-custodian/", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_lambda/", "new_link": "/aws/services/lambda", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/integrations/sdks/java/", "new_link": "/aws/integrations/aws-sdks/net/java", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_logs/", "new_link": "/aws/services/logs", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_mediastore/", "new_link": "/aws/services/mediastore", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/integrations/kafka/", - "new_link": "/aws/user-guide/integrations/kafka", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/messaging/selfmanaged-kafka-cluster/", + "status_code": 301 }, { "old_link": "/user-guide/chaos-engineering/fault-injection-service/", "new_link": "/aws/capabilities/chaos-engineering/fault-injection-service", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/logging/", - "new_link": "/aws/references/logging", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/config/logging", + "status_code": 301 }, { "old_link": "/tutorials/java-notification-app/", @@ -1125,38 +975,32 @@ { "old_link": "/user-guide/aws/route53resolver/", "new_link": "/aws/services/route53resolver", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_wafv2/", - "new_link": "/aws/services/wafv2", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/waf", + "status_code": 301 }, { "old_link": "/user-guide/integrations/sdks/cpp/", "new_link": "/aws/integrations/aws-sdks/net/cpp", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/integrations/testcontainers/", - "new_link": "/aws/user-guide/integrations/testcontainers", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/testing/testcontainers", + "status_code": 301 }, { "old_link": "/references/internal-endpoints/", - "new_link": "/aws/references/internal-endpoints", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/networking/internal-endpoints", + "status_code": 301 }, { "old_link": "/user-guide/aws/iotanalytics/", "new_link": "/aws/services/iotanalytics", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/tutorials/lambda-ecr-container-images/", @@ -1167,20 +1011,17 @@ { "old_link": "/user-guide/aws/fis/", "new_link": "/aws/services/fis", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/tools/localstack-docker-extension/", - "new_link": "/aws/user-guide/tools/localstack-docker-extension", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/tooling/localstack-docker-extension/", + "status_code": 301 }, { "old_link": "/user-guide/aws/cloudformation/", "new_link": "/aws/services/cloudformation", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/tutorials/route-53-failover/", @@ -1191,8 +1032,7 @@ { "old_link": "/user-guide/web-application/resource-browser/", "new_link": "/aws/capabilities/web-app/resource-browser", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/", @@ -1202,57 +1042,48 @@ }, { "old_link": "/references/coverage/coverage_resource-groups/", - "new_link": "/aws/services/resource-groups", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/resourcegroups", + "status_code": 301 }, { "old_link": "/user-guide/state-management/support/", - "new_link": "/aws/capabilities/state-management/support", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/state-management/persistence-coverage", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_redshift/", "new_link": "/aws/services/redshift", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/integrations/lambdatest-hyperexecute/", - "new_link": "/aws/user-guide/integrations/lambdatest-hyperexecute", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/testing/lambdatest-hyperexecute/", + "status_code": 301 }, { "old_link": "/applications/", - "new_link": "/aws/applications", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/sample-apps/", + "status_code": 301 }, { "old_link": "/user-guide/web-application/users-and-licenses/", "new_link": "/aws/capabilities/web-app/users-and-licenses", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/tools/localstack-sdk/", - "new_link": "/aws/user-guide/tools/localstack-sdk", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/tooling/localstack-sdks/", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_apigatewaymanagementapi/", - "new_link": "/aws/services/apigatewaymanagementapi", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/services/apigateway", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_transfer/", "new_link": "/aws/services/transfer", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_codeconnections/", @@ -1263,20 +1094,17 @@ { "old_link": "/user-guide/aws/athena/", "new_link": "/aws/services/athena", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/extensions/official-extensions/", "new_link": "/aws/tooling/extensions/official-extensions", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/textract/", "new_link": "/aws/services/textract", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/tutorials/iam-policy-stream/", @@ -1287,8 +1115,7 @@ { "old_link": "/references/coverage/coverage_ses/", "new_link": "/aws/services/ses", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/tutorials/gitlab_ci_testcontainers/", @@ -1298,21 +1125,13 @@ }, { "old_link": "/user-guide/integrations/aws-sam/", - "new_link": "/aws/user-guide/integrations/aws-sam", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/categories/", - "new_link": "/aws/categories", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/integrations/aws-native-tools/aws-sam", + "status_code": 301 }, { "old_link": "/user-guide/aws/firehose/", "new_link": "/aws/services/firehose", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/web-application/", From ed5a50c3f7dd98ae2602c94dc262fa2654021305 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Fri, 27 Jun 2025 15:07:17 +0530 Subject: [PATCH 03/14] wip (3) --- scripts/redirects/generate_config_template.py | 162 -- scripts/redirects/redirects_config.json | 2334 +++++++++++++++- .../redirects/redirects_config_template.json | 2348 ----------------- 3 files changed, 2328 insertions(+), 2516 deletions(-) delete mode 100644 scripts/redirects/generate_config_template.py delete mode 100644 scripts/redirects/redirects_config_template.json diff --git a/scripts/redirects/generate_config_template.py b/scripts/redirects/generate_config_template.py deleted file mode 100644 index 16fefe06..00000000 --- a/scripts/redirects/generate_config_template.py +++ /dev/null @@ -1,162 +0,0 @@ -#!/usr/bin/env python3 -""" -Helper script to generate a template JSON config from scraped URLs. -This makes it easier to manually map old URLs to new URLs. -""" - -import json -import argparse -from pathlib import Path -from urllib.parse import urlparse -from scrap_sitemap import get_urls_of_xml - - -def generate_config_template(aws_urls=None, snowflake_urls=None, output_file="redirects_config_template.json", base_url="https://docs.localstack.cloud"): - """Generate a template JSON config with URLs to be manually mapped.""" - - config = {} - - # Process AWS URLs - if aws_urls: - config["aws"] = [] - for url in aws_urls: - parsed = urlparse(url) - old_path = parsed.path - # Ensure path starts with / - if not old_path.startswith('/'): - old_path = '/' + old_path - - # Extract meaningful path parts for suggested new path - path_parts = [p for p in parsed.path.split('/') if p] - suggested_new_path = '/'.join(path_parts) if path_parts else '' - new_path = f"/aws/{suggested_new_path}" if suggested_new_path else "/aws/" - - config["aws"].append({ - "old_link": old_path, - "new_link": new_path, - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }) - - # Process Snowflake URLs - if snowflake_urls: - config["snowflake"] = [] - for url in snowflake_urls: - parsed = urlparse(url) - old_path = parsed.path - # Ensure path starts with / - if not old_path.startswith('/'): - old_path = '/' + old_path - - # Extract meaningful path parts for suggested new path - path_parts = [p for p in parsed.path.split('/') if p] - suggested_new_path = '/'.join(path_parts) if path_parts else '' - new_path = f"/snowflake/{suggested_new_path}" if suggested_new_path else "/snowflake/" - - config["snowflake"].append({ - "old_link": old_path, - "new_link": new_path, - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }) - - # Write to file - with open(output_file, 'w') as f: - json.dump(config, f, indent=2, ensure_ascii=False) - - total_urls = len(config.get('aws', [])) + len(config.get('snowflake', [])) - print(f"โœ… Generated template config with {total_urls} URLs") - print(f"๐Ÿ“ File: {output_file}") - print(f"๐Ÿ“ All URLs are path-based (no domain) for flexibility") - print(f"\n๐Ÿ”ง Next steps:") - print(f" 1. Review and update the 'new_link' values in {output_file}") - print(f" 2. Remove the '_note' fields when done") - print(f" 3. Use generate_redirects.py to create the _redirects file") - - -def load_urls_from_sitemap(sitemap_url): - """Load URLs from a sitemap XML.""" - try: - return get_urls_of_xml(sitemap_url) - except Exception as e: - print(f"โŒ Error loading sitemap from {sitemap_url}: {e}") - return [] - - -def load_urls_from_file(file_path): - """Load URLs from a text file (one URL per line).""" - try: - with open(file_path, 'r') as f: - urls = [line.strip() for line in f if line.strip() and not line.startswith('#')] - return urls - except Exception as e: - print(f"โŒ Error loading URLs from {file_path}: {e}") - return [] - - -def main(): - parser = argparse.ArgumentParser(description='Generate redirect config template from URLs') - parser.add_argument('--aws-sitemap', - help='AWS sitemap URL (e.g., https://docs.localstack.cloud/sitemap.xml)') - parser.add_argument('--snowflake-sitemap', - help='Snowflake sitemap URL (e.g., https://snowflake.localstack.cloud/sitemap.xml)') - parser.add_argument('--aws-file', - help='Text file with AWS URLs (one per line)') - parser.add_argument('--snowflake-file', - help='Text file with Snowflake URLs (one per line)') - parser.add_argument('--base-url', default='https://docs.localstack.cloud', - help='Base URL for new links (default: https://docs.localstack.cloud)') - parser.add_argument('--output', default='redirects_config_template.json', - help='Output template file (default: redirects_config_template.json)') - - args = parser.parse_args() - - aws_urls = [] - snowflake_urls = [] - - # Load AWS URLs - if args.aws_sitemap: - print(f"๐Ÿ” Loading AWS URLs from sitemap: {args.aws_sitemap}") - aws_urls.extend(load_urls_from_sitemap(args.aws_sitemap)) - print(f" Found {len(aws_urls)} AWS URLs") - - if args.aws_file: - print(f"๐Ÿ“„ Loading AWS URLs from file: {args.aws_file}") - file_urls = load_urls_from_file(args.aws_file) - aws_urls.extend(file_urls) - print(f" Added {len(file_urls)} AWS URLs from file") - - # Load Snowflake URLs - if args.snowflake_sitemap: - print(f"โ„๏ธ Loading Snowflake URLs from sitemap: {args.snowflake_sitemap}") - snowflake_urls.extend(load_urls_from_sitemap(args.snowflake_sitemap)) - print(f" Found {len(snowflake_urls)} Snowflake URLs") - - if args.snowflake_file: - print(f"๐Ÿ“„ Loading Snowflake URLs from file: {args.snowflake_file}") - file_urls = load_urls_from_file(args.snowflake_file) - snowflake_urls.extend(file_urls) - print(f" Added {len(file_urls)} Snowflake URLs from file") - - # Remove duplicates - aws_urls = list(set(aws_urls)) - snowflake_urls = list(set(snowflake_urls)) - - if not aws_urls and not snowflake_urls: - print("โŒ No URLs found! Please provide at least one source of URLs.") - print(" Use --aws-sitemap, --snowflake-sitemap, --aws-file, or --snowflake-file") - return 1 - - print(f"\n๐Ÿ“Š Summary:") - print(f" AWS URLs: {len(aws_urls)}") - print(f" Snowflake URLs: {len(snowflake_urls)}") - print(f" Total: {len(aws_urls) + len(snowflake_urls)}") - - # Generate template - generate_config_template(aws_urls, snowflake_urls, args.output, args.base_url) - - return 0 - - -if __name__ == "__main__": - exit(main()) \ No newline at end of file diff --git a/scripts/redirects/redirects_config.json b/scripts/redirects/redirects_config.json index d91b7931..df80d239 100644 --- a/scripts/redirects/redirects_config.json +++ b/scripts/redirects/redirects_config.json @@ -1,26 +1,2348 @@ { "aws": [ { - "old_link": "/getting-started/", - "new_link": "/aws/getting-started/", + "old_link": "/legal/third-party-software-tools/", + "new_link": "/aws/legal/third-party-software-tools", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_elb/", + "new_link": "/aws/services/elb", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/batch/", + "new_link": "/aws/services/batch", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_scheduler/", + "new_link": "/aws/services/scheduler", + "status_code": 301 + }, + { + "old_link": "/user-guide/extensions/", + "new_link": "/aws/capabilities/extensions", + "status_code": 301 + }, + { + "old_link": "/tutorials/s3-static-website-terraform/", + "new_link": "/aws/tutorials/s3-static-website-terraform", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_sso-admin/", + "new_link": "/aws/services/sso-admin", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_rds-data/", + "new_link": "/aws/services/rds", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_ec2/", + "new_link": "/aws/services/ec2", + "status_code": 301 + }, + { + "old_link": "/references/licensing/", + "new_link": "/aws/references/licensing", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/legal/", + "new_link": "/aws/legal", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_iotwireless/", + "new_link": "/aws/services/iotwireless", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_mwaa/", + "new_link": "/aws/services/mwaa", + "status_code": 301 + }, + { + "old_link": "/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager/", + "new_link": "/aws/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_pipes/", + "new_link": "/aws/services/pipes", + "status_code": 301 + }, + { + "old_link": "/user-guide/state-management/persistence/", + "new_link": "/aws/capabilities/state-management/persistence", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_mq/", + "new_link": "/aws/services/mq", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-101/what-is-localstack/", + "new_link": "/aws/academy/localstack-101/what-is-localstack", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_xray/", + "new_link": "/aws/services/xray", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_cognito-identity/", + "new_link": "/aws/services/cognito", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/ecs/", + "new_link": "/aws/services/ecs", + "status_code": 301 + }, + { + "old_link": "/references/usage-tracking/", + "new_link": "/aws/references/usage-tracking", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/dms/", + "new_link": "/aws/services/dms", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_managedblockchain/", + "new_link": "/aws/services/managedblockchain", + "status_code": 301 + }, + { + "old_link": "/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/", + "new_link": "/aws/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/regions-coverage/", + "new_link": "/aws/references/regions-coverage", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/tutorials/elb-load-balancing/", + "new_link": "/aws/tutorials/elb-load-balancing", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/docker-images/", + "new_link": "/aws/capabilities/config/docker-images", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/eks/", + "new_link": "/aws/services/eks", + "status_code": 301 + }, + { + "old_link": "/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/", + "new_link": "/aws/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/cloudfront/", + "new_link": "/aws/services/cloudfront", + "status_code": 301 + }, + { + "old_link": "/applications/note-taking-application-using-aws-sdk-for-javascript/", + "new_link": "/aws/applications/note-taking-application-using-aws-sdk-for-javascript", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/state-management/export-import-state/", + "new_link": "/aws/capabilities/state-management/export-import-state", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_s3control/", + "new_link": "/aws/services/s3", + "status_code": 301 + }, + { + "old_link": "/references/custom-tls-certificates/", + "new_link": "/aws/capabilities/security-testing/custom-tls-certificates", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_codecommit/", + "new_link": "/aws/services/codecommit", + "status_code": 301 + }, + { + "old_link": "/user-guide/localstack-enterprise/enterprise-image/", + "new_link": "/aws/enterprise/enterprise-image", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/testing-utils/", + "new_link": "/aws/tooling/testing-utils", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/codedeploy/", + "new_link": "/aws/services/codedeploy", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_serverlessrepo/", + "new_link": "/aws/services/serverlessrepo", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/resource_groups/", + "new_link": "/aws/services/resource_groups", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_glue/", + "new_link": "/aws/services/glue", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/ssm/", + "new_link": "/aws/services/ssm", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_sts/", + "new_link": "/aws/services/sts", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-101/course-overview/", + "new_link": "/aws/academy/localstack-101/course-overview", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/iotwireless/", + "new_link": "/aws/services/iotwireless", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/sdks/python/", + "new_link": "/aws/integrations/aws-sdks/net/python", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/crossplane/", + "new_link": "/aws/integrations/infrastructure-as-code/crossplane", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_elbv2/", + "new_link": "/aws/services/elb", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/openshift/", + "new_link": "/aws/integrations/containers/openshift", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/memorydb/", + "new_link": "/aws/services/memorydb", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/devcontainers/", + "new_link": "/aws/integrations/containers/devcontainers", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_secretsmanager/", + "new_link": "/aws/services/secretsmanager", + "status_code": 301 + }, + { + "old_link": "/user-guide/ci/travis-ci/", + "new_link": "/aws/integrations/continuous-integration/travis-ci", + "status_code": 301 + }, + { + "old_link": "/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/", + "new_link": "/aws/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/lambda-tools/", + "new_link": "/aws/tooling/lambda-tools", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/aws-cdk/", + "new_link": "/aws/integrations/aws-native-tools/aws-cdk", + "status_code": 301 + }, + { + "old_link": "/references/podman/", + "new_link": "/aws/capabilities/config/podman", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_memorydb/", + "new_link": "/aws/services/memorydb", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/former2/", + "new_link": "/aws/integrations/infrastructure-as-code/former2", + "status_code": 301 + }, + { + "old_link": "/user-guide/localstack-enterprise/k8s-operator/", + "new_link": "/aws/enterprise/k8s-operator", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/aws-cli/", + "new_link": "/aws/integrations/aws-native-tools/aws-cli", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_kinesisanalyticsv2/", + "new_link": "/aws/services/apacheflink", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_amplify/", + "new_link": "/aws/services/amplify", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/events/", + "new_link": "/aws/services/events", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/pipes/", + "new_link": "/aws/services/pipes", + "status_code": 301 + }, + { + "old_link": "/user-guide/ci/circle-ci/", + "new_link": "/aws/integrations/continuous-integration/circle-ci", + "status_code": 301 + }, + { + "old_link": "/references/network-troubleshooting/transparent-endpoint-injection/", + "new_link": "/aws/capabilities/networking/transparent-endpoint-injection", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_kafka/", + "new_link": "/aws/services/msk", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_servicediscovery/", + "new_link": "/aws/services/servicediscovery", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_apigateway/", + "new_link": "/aws/services/apigateway", + "status_code": 301 + }, + { + "old_link": "/tutorials/", + "new_link": "/aws/tutorials", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_kinesis/", + "new_link": "/aws/services/kinesis", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_autoscaling/", + "new_link": "/aws/services/autoscaling", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_kms/", + "new_link": "/aws/services/kms", + "status_code": 301 + }, + { + "old_link": "/applications/step-up-authentication-using-amazon-cognito/", + "new_link": "/aws/applications/step-up-authentication-using-amazon-cognito", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_athena/", + "new_link": "/aws/services/athena", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/mediastore/", + "new_link": "/aws/services/mediastore", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_fis/", + "new_link": "/aws/services/fis", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/logs/", + "new_link": "/aws/services/cloudwatchlogs", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/infra-cloudformation/", + "new_link": "/aws/academy/localstack-deployment/infra-cloudformation", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/cloud-sandbox/", + "new_link": "/aws/capabilities/cloud-sandbox", + "status_code": 301 + }, + { + "old_link": "/user-guide/localstack-enterprise/ci-analytics/", + "new_link": "/aws/enterprise/ci-analytics", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/changelog/", + "new_link": "/aws/references/changelog", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/credentials/", + "new_link": "/aws/capabilities/config/credentials", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_elasticbeanstalk/", + "new_link": "/aws/services/elasticbeanstalk", + "status_code": 301 + }, + { + "old_link": "/user-guide/web-application/instance-management/", + "new_link": "/aws/capabilities/web-app/instance-management", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_qldb/", + "new_link": "/aws/services/qldb", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/iam-policy-stream/", + "new_link": "/aws/academy/localstack-deployment/iam-policy-stream", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/cross-account-access/", + "new_link": "/aws/references/cross-account-access", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/tutorials/reproducible-machine-learning-cloud-pods/", + "new_link": "/aws/tutorials/reproducible-machine-learning-cloud-pods", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_ecs/", + "new_link": "/aws/services/ecs", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_acm/", + "new_link": "/aws/services/acm", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_cloudtrail/", + "new_link": "/aws/services/cloudtrail", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/", + "new_link": "/aws/services/", + "status_code": 301 + }, + { + "old_link": "/references/lambda-provider-v2/", + "new_link": "/aws/services/lambda", + "status_code": 301 + }, + { + "old_link": "/user-guide/web-application/ci-keys/", + "new_link": "/aws/capabilities/web-app/ci-keys", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/ls-integrations/", + "new_link": "/aws/academy/localstack-deployment/ls-integrations", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_appconfigdata/", + "new_link": "/aws/services/appconfig", + "status_code": 301 + }, + { + "old_link": "/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/", + "new_link": "/aws/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/security-testing/", + "new_link": "/aws/capabilities/security-testing/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/applicationautoscaling/", + "new_link": "/aws/services/appautoscaling", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/bedrock/", + "new_link": "/aws/services/bedrock", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/sts/", + "new_link": "/aws/services/sts", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/docdb/", + "new_link": "/aws/services/docdb", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/transparent-endpoint-injection/", + "new_link": "/aws/capabilities/networking/transparent-endpoint-injection", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/account/", + "new_link": "/aws/services/account", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_efs/", + "new_link": "/aws/services/efs", + "status_code": 301 + }, + { + "old_link": "/user-guide/localstack-enterprise/", + "new_link": "/aws/enterprise/", + "status_code": 301 + }, + { + "old_link": "/getting-started/auth-token/", + "new_link": "/aws/getting-started/auth-token", + "status_code": 301 + }, + { + "old_link": "/user-guide/localstack-enterprise/enterprise-support/", + "new_link": "/aws/enterprise/enterprise-support", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/support/", + "new_link": "/aws/services/support", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_resourcegroupstaggingapi/", + "new_link": "/aws/services/resourcegroups", + "status_code": 301 + }, + { + "old_link": "/references/external-ports/", + "new_link": "/aws/capabilities/networking/external-port-range", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_ce/", + "new_link": "/aws/services/ce", + "status_code": 301 + }, + { + "old_link": "/user-guide/extensions/getting-started/", + "new_link": "/aws/tooling/extensions/getting-started", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_codeartifact/", + "new_link": "/aws/services/codeartifact", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/sdks/", + "new_link": "/aws/integrations/aws-sdks/", + "status_code": 301 + }, + { + "old_link": "/user-guide/localstack-enterprise/single-sign-on/azure-ad/", + "new_link": "/aws/enterprise/single-sign-on/azure-ad", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/tools/localstack-desktop/", + "new_link": "/aws/capabilities/web-app/localstack-desktop", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_es/", + "new_link": "/aws/services/es", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/sdks/javascript/", + "new_link": "/aws/integrations/aws-sdks/net/javascript", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_iam/", + "new_link": "/aws/services/iam", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/localsurf/", + "new_link": "/aws/tooling/localsurf", + "status_code": 301 + }, + { + "old_link": "/user-guide/extensions/extensions-library/", + "new_link": "/aws/tooling/extensions/extensions-library", + "status_code": 301 + }, + { + "old_link": "/tutorials/ecs-ecr-container-app/", + "new_link": "/aws/tutorials/ecs-ecr-container-app", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_elastictranscoder/", + "new_link": "/aws/services/elastictranscoder", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/feature-coverage/", + "new_link": "/aws/services/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/lambda/", + "new_link": "/aws/services/lambda", + "status_code": 301 + }, + { + "old_link": "/references/iam-coverage/", + "new_link": "/aws/references/iam-coverage", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/transfer/", + "new_link": "/aws/services/transfer", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_batch/", + "new_link": "/aws/services/batch", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_neptune/", + "new_link": "/aws/services/neptune", + "status_code": 301 + }, + { + "old_link": "/applications/temp/", + "new_link": "/aws/applications/temp", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/serverless-container-based-apis-with-amazon-ecs-api-gateway/", + "new_link": "/aws/applications/serverless-container-based-apis-with-amazon-ecs-api-gateway", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/s3/", + "new_link": "/aws/services/s3", + "status_code": 301 + }, + { + "old_link": "/user-guide/lambda-tools/vscode-extension/", + "new_link": "/aws/tooling/lambda-tools/vscode-extension", + "status_code": 301 + }, + { + "old_link": "/user-guide/chaos-engineering/", + "new_link": "/aws/capabilities/chaos-engineering/", + "status_code": 301 + }, + { + "old_link": "/persistence/supported/", + "new_link": "/aws/capabilities/state-management/persistence-coverage", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/ce/", + "new_link": "/aws/services/ce", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/kinesisanalyticsv2/", + "new_link": "/aws/services/kinesisanalyticsv2", + "status_code": 301 + }, + { + "old_link": "/user-guide/state-management/cloud-pods/", + "new_link": "/aws/capabilities/state-management/cloud-pods", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_transcribe/", + "new_link": "/aws/services/transcribe", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_mediastore-data/", + "new_link": "/aws/services/mediastore", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/route53/", + "new_link": "/aws/services/route53", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/config/", + "new_link": "/aws/services/config", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_identitystore/", + "new_link": "/aws/services/identitystore", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_codedeploy/", + "new_link": "/aws/services/codedeploy", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/msk/", + "new_link": "/aws/services/msk", + "status_code": 301 + }, + { + "old_link": "/user-guide/state-management/", + "new_link": "/aws/capabilities/state-management/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/copilot/", + "new_link": "/aws/integrations/aws-native-tools/aws-copilot-cli/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/eksctl/", + "new_link": "/aws/integrations/containers/eksctl/", + "status_code": 301 + }, + { + "old_link": "/getting-started/faq/", + "new_link": "/aws/getting-started/faq", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/elb/", + "new_link": "/aws/services/elb", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/kubernetes/", + "new_link": "/aws/integrations/containers/kubernetes/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/lakeformation/", + "new_link": "/aws/services/lakeformation", + "status_code": 301 + }, + { + "old_link": "/developer-hub/", + "new_link": "/aws/developer-hub", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_firehose/", + "new_link": "/aws/services/firehose", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/verifiedpermissions/", + "new_link": "/aws/services/verifiedpermissions", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_kinesisanalytics/", + "new_link": "/aws/services/kinesisanalytics", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/sns/", + "new_link": "/aws/services/sns", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/aws-replicator/", + "new_link": "/aws/tooling/aws-replicator", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/serverless-framework/", + "new_link": "/aws/integrations/app-frameworks/serverless-framework", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_sqs/", + "new_link": "/aws/services/sqs", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/appsync/", + "new_link": "/aws/services/appsync", + "status_code": 301 + }, + { + "old_link": "/tutorials/schema-evolution-glue-msk/", + "new_link": "/aws/tutorials/schema-evolution-glue-msk", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/ci/bitbucket/", + "new_link": "/aws/integrations/continuous-integration/bitbucket", + "status_code": 301 + }, + { + "old_link": "/contributing/", + "new_link": "/aws/contributing", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/scheduler/", + "new_link": "/aws/services/scheduler", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/quarkus/", + "new_link": "/aws/integrations/app-frameworks/quarkus", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/servicediscovery/", + "new_link": "/aws/services/servicediscovery", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-101/", + "new_link": "/aws/academy/localstack-101", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/xray/", + "new_link": "/aws/services/xray", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/pca/", + "new_link": "/aws/services/pca", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/waf/", + "new_link": "/aws/services/waf", + "status_code": 301 + }, + { + "old_link": "/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/", + "new_link": "/aws/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/apigateway/", + "new_link": "/aws/services/apigateway", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/cloud-custodian/", + "new_link": "/aws/integrations/infrastructure-as-code/cloud-custodian/", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_lambda/", + "new_link": "/aws/services/lambda", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/sdks/java/", + "new_link": "/aws/integrations/aws-sdks/net/java", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_logs/", + "new_link": "/aws/services/logs", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_mediastore/", + "new_link": "/aws/services/mediastore", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/kafka/", + "new_link": "/aws/integrations/messaging/selfmanaged-kafka-cluster/", + "status_code": 301 + }, + { + "old_link": "/user-guide/chaos-engineering/fault-injection-service/", + "new_link": "/aws/capabilities/chaos-engineering/fault-injection-service", + "status_code": 301 + }, + { + "old_link": "/references/logging/", + "new_link": "/aws/capabilities/config/logging", + "status_code": 301 + }, + { + "old_link": "/tutorials/java-notification-app/", + "new_link": "/aws/tutorials/java-notification-app", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses/", + "new_link": "/aws/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/route53resolver/", + "new_link": "/aws/services/route53resolver", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_wafv2/", + "new_link": "/aws/services/waf", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/sdks/cpp/", + "new_link": "/aws/integrations/aws-sdks/net/cpp", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/testcontainers/", + "new_link": "/aws/integrations/testing/testcontainers", + "status_code": 301 + }, + { + "old_link": "/references/internal-endpoints/", + "new_link": "/aws/capabilities/networking/internal-endpoints", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/iotanalytics/", + "new_link": "/aws/services/iotanalytics", + "status_code": 301 + }, + { + "old_link": "/tutorials/lambda-ecr-container-images/", + "new_link": "/aws/tutorials/lambda-ecr-container-images", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/fis/", + "new_link": "/aws/services/fis", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/localstack-docker-extension/", + "new_link": "/aws/tooling/localstack-docker-extension/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/cloudformation/", + "new_link": "/aws/services/cloudformation", + "status_code": 301 + }, + { + "old_link": "/tutorials/route-53-failover/", + "new_link": "/aws/tutorials/route-53-failover", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/web-application/resource-browser/", + "new_link": "/aws/capabilities/web-app/resource-browser", + "status_code": 301 + }, + { + "old_link": "/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/", + "new_link": "/aws/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_resource-groups/", + "new_link": "/aws/services/resourcegroups", + "status_code": 301 + }, + { + "old_link": "/user-guide/state-management/support/", + "new_link": "/aws/capabilities/state-management/persistence-coverage", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_redshift/", + "new_link": "/aws/services/redshift", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/lambdatest-hyperexecute/", + "new_link": "/aws/integrations/testing/lambdatest-hyperexecute/", + "status_code": 301 + }, + { + "old_link": "/applications/", + "new_link": "/aws/sample-apps/", + "status_code": 301 + }, + { + "old_link": "/user-guide/web-application/users-and-licenses/", + "new_link": "/aws/capabilities/web-app/users-and-licenses", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/localstack-sdk/", + "new_link": "/aws/tooling/localstack-sdks/", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_apigatewaymanagementapi/", + "new_link": "/aws/services/apigateway", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_transfer/", + "new_link": "/aws/services/transfer", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_codeconnections/", + "new_link": "/aws/services/codeconnections", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/athena/", + "new_link": "/aws/services/athena", + "status_code": 301 + }, + { + "old_link": "/user-guide/extensions/official-extensions/", + "new_link": "/aws/tooling/extensions/official-extensions", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/textract/", + "new_link": "/aws/services/textract", + "status_code": 301 + }, + { + "old_link": "/tutorials/iam-policy-stream/", + "new_link": "/aws/tutorials/iam-policy-stream", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_ses/", + "new_link": "/aws/services/ses", + "status_code": 301 + }, + { + "old_link": "/tutorials/gitlab_ci_testcontainers/", + "new_link": "/aws/tutorials/gitlab_ci_testcontainers", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/aws-sam/", + "new_link": "/aws/integrations/aws-native-tools/aws-sam", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/firehose/", + "new_link": "/aws/services/firehose", + "status_code": 301 + }, + { + "old_link": "/user-guide/web-application/", + "new_link": "/aws/capabilities/web-app/", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_sagemaker/", + "new_link": "/aws/services/sagemaker", + "status_code": 301 + }, + { + "old_link": "/references/arm64-support/", + "new_link": "/aws/references/arm64-support", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/shield/", + "new_link": "/aws/services/shield", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/terraform/", + "new_link": "/aws/integrations/infrastructure-as-code/terraform", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/es/", + "new_link": "/aws/services/es", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_dms/", + "new_link": "/aws/services/dms", + "status_code": 301 + }, + { + "old_link": "/user-guide/extensions/developing-extensions/", + "new_link": "/aws/tooling/extensions/developing-extensions", + "status_code": 301 + }, + { + "old_link": "/user-guide/security-testing/explainable-iam/", + "new_link": "/aws/capabilities/security-testing/explainable-iam", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/ram/", + "new_link": "/aws/services/ram", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_ssm/", + "new_link": "/aws/services/ssm", + "status_code": 301 + }, + { + "old_link": "/references/network-troubleshooting/created-resources/", + "new_link": "/aws/capabilities/networking/created-resources", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/swf/", + "new_link": "/aws/services/swf", + "status_code": 301 + }, + { + "old_link": "/user-guide/ci/github-actions/", + "new_link": "/aws/integrations/continuous-integration/github-actions", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/serverlessrepo/", + "new_link": "/aws/services/serverlessrepo", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/sqs/", + "new_link": "/aws/services/sqs", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_ram/", + "new_link": "/aws/services/ram", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/secretsmanager/", + "new_link": "/aws/services/secretsmanager", + "status_code": 301 + }, + { + "old_link": "/user-guide/web-application/stack-insights/", + "new_link": "/aws/capabilities/web-app/stack-insights", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/autoscaling/", + "new_link": "/aws/services/autoscaling", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_opensearch/", + "new_link": "/aws/services/opensearch", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-101/cloud-pods/", + "new_link": "/aws/academy/localstack-101/cloud-pods", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_emr-serverless/", + "new_link": "/aws/services/emr", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/cloudwatch/", + "new_link": "/aws/services/cloudwatch", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/elasticbeanstalk/", + "new_link": "/aws/services/elasticbeanstalk", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_mediaconvert/", + "new_link": "/aws/services/mediaconvert", + "status_code": 301 + }, + { + "old_link": "/user-guide/state-management/launchpad/", + "new_link": "/aws/capabilities/state-management/launchpad", + "status_code": 301 + }, + { + "old_link": "/user-guide/ci/codebuild/", + "new_link": "/aws/integrations/continuous-integration/codebuild", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/iotdata/", + "new_link": "/aws/services/iotdata", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_textract/", + "new_link": "/aws/services/textract", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_codebuild/", + "new_link": "/aws/services/codebuild", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/elastictranscoder/", + "new_link": "/aws/services/elastictranscoder", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_glacier/", + "new_link": "/aws/services/glacier", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/", + "new_link": "/aws/tooling/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/timestream/", + "new_link": "/aws/services/timestream", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_pinpoint/", + "new_link": "/aws/services/pinpoint" + }, + { + "old_link": "/applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds/", + "new_link": "/aws/applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/academy/localstack-101/why-localstack/", + "new_link": "/aws/academy/localstack-101/why-localstack", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/transcribe/", + "new_link": "/aws/services/transcribe", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_cloudformation/", + "new_link": "/aws/services/cloudformation", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_apigatewayv2/", + "new_link": "/aws/services/apigateway", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/kinesis/", + "new_link": "/aws/services/kinesis", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_bedrock-runtime/", + "new_link": "/aws/services/bedrock", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_iot-data/", + "new_link": "/aws/services/iotdata", + "status_code": 301 + }, + { + "old_link": "/user-guide/cloud-sandbox/ephemeral-instance/", + "new_link": "/aws/capabilities/cloud-sandbox/ephemeral-instance", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_timestream-write/", + "new_link": "/aws/services/timestream", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/pinpoint/", + "new_link": "/aws/services/pinpoint", + "status_code": 301 + }, + { + "old_link": "/tutorials/cloud-pods-collaborative-debugging/", + "new_link": "/aws/tutorials/cloud-pods-collaborative-debugging", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_emr/", + "new_link": "/aws/services/emr", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/iam/", + "new_link": "/aws/services/iam", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/course-overview/", + "new_link": "/aws/academy/localstack-deployment/course-overview", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_codepipeline/", + "new_link": "/aws/services/codepipeline", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/infra-terraform/", + "new_link": "/aws/academy/localstack-deployment/infra-terraform", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/network-troubleshooting/", + "new_link": "/aws/capabilities/networking/", + "status_code": 301 + }, + { + "old_link": "/user-guide/ci/gitlab-ci/", + "new_link": "/aws/integrations/continuous-integration/gitlab-ci", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/kms/", + "new_link": "/aws/services/kms", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_stepfunctions/", + "new_link": "/aws/services/stepfunctions", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_sesv2/", + "new_link": "/aws/services/ses", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_events/", + "new_link": "/aws/services/events", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_timestream-query/", + "new_link": "/aws/services/timestream", + "status_code": 301 + }, + { + "old_link": "/references/network-troubleshooting/endpoint-url/", + "new_link": "/aws/capabilities/networking/endpoint-url", + "status_code": 301 + }, + { + "old_link": "/tutorials/ephemeral-application-previews/", + "new_link": "/aws/tutorials/ephemeral-application-previews", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/web-application/accounts/", + "new_link": "/aws/capabilities/web-app/accounts", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_appsync/", + "new_link": "/aws/services/appsync", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_ecr/", + "new_link": "/aws/services/ecr", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/", + "new_link": "/aws/academy/localstack-deployment", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_application-autoscaling/", + "new_link": "/aws/services/appautoscaling", + "status_code": 301 + }, + { + "old_link": "/user-guide/lambda-tools/debugging/", + "new_link": "/aws/tooling/lambda-tools/debugging", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_codestar-connections/", + "new_link": "/aws/services/codestar-connections", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/rancher-desktop/", + "new_link": "/aws/integrations/containers/rancher-desktop", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/sdks/ruby/", + "new_link": "/aws/integrations/aws-sdks/net/ruby", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/mwaa/", + "new_link": "/aws/services/mwaa", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/deploy-app-ls/", + "new_link": "/aws/academy/localstack-deployment/deploy-app-ls", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/organizations/", + "new_link": "/aws/services/organizations", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/github-action-ls/", + "new_link": "/aws/academy/localstack-deployment/github-action-ls", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/sagemaker/", + "new_link": "/aws/services/sagemaker", + "status_code": 301 + }, + { + "old_link": "/references/configuration/", + "new_link": "/aws/capabilities/config/configuration", + "status_code": 301 + }, + { + "old_link": "/user-guide/chaos-engineering/chaos-api/", + "new_link": "/aws/capabilities/chaos-engineering/chaos-api", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/glacier/", + "new_link": "/aws/services/glacier", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_qldb-session/", + "new_link": "/aws/services/qldb", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/pulumi/", + "new_link": "/aws/integrations/infrastructure-as-code/pulumi", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/cloudtrail/", + "new_link": "/aws/services/cloudtrail", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_s3/", + "new_link": "/aws/services/s3", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/emr/", + "new_link": "/aws/services/emr", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/dns-server/", + "new_link": "/aws/tooling/dns-server", + "status_code": 301 + }, + { + "old_link": "/user-guide/chaos-engineering/chaos-application-dashboard/", + "new_link": "/aws/capabilities/chaos-engineering/chaos-application-dashboard", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_route53/", + "new_link": "/aws/services/route53", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_dynamodbstreams/", + "new_link": "/aws/services/dynamodbstreams", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_dynamodb/", + "new_link": "/aws/services/dynamodb", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/ec2/", + "new_link": "/aws/services/ec2", + "status_code": 301 + }, + { + "old_link": "/user-guide/cloud-sandbox/application-previews/", + "new_link": "/aws/capabilities/cloud-sandbox/application-previews", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/spring-cloud-function/", + "new_link": "/aws/integrations/app-frameworks/spring-cloud-function", + "status_code": 301 + }, + { + "old_link": "/references/multi-account-setups/", + "new_link": "/aws/capabilities/config/multi-account-setups/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/elementalmediaconvert/", + "new_link": "/aws/services/elementalmediaconvert", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_shield/", + "new_link": "/aws/services/shield", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/dynamodb/", + "new_link": "/aws/services/dynamodb", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/event-studio/", + "new_link": "/aws/tooling/event-studio/", + "status_code": 301 + }, + { + "old_link": "/references/coverage/", + "new_link": "/aws/services/", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_acm-pca/", + "new_link": "/aws/services/acm-pca", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/opensearch/", + "new_link": "/aws/services/opensearch", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/neptune/", + "new_link": "/aws/services/neptune", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/codepipeline/", + "new_link": "/aws/services/codepipeline", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_docdb/", + "new_link": "/aws/services/docdb", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_appconfig/", + "new_link": "/aws/services/appconfig", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_iot/", + "new_link": "/aws/services/iot", + "status_code": 301 + }, + { + "old_link": "/getting-started/installation/", + "new_link": "/aws/getting-started/installation", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/architect/", + "new_link": "/aws/integrations/app-frameworks/architect/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/gitpod/", + "new_link": "/aws/integrations/containers/gitpod/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/managedblockchain/", + "new_link": "/aws/services/managedblockchain", + "status_code": 301 + }, + { + "old_link": "/applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation/", + "new_link": "/aws/applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/academy/localstack-101/web-app-resource-browser/", + "new_link": "/aws/academy/localstack-101/web-app-resource-browser", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/integrations/", + "new_link": "/aws/integrations/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/codebuild/", + "new_link": "/aws/services/codebuild", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/ses/", + "new_link": "/aws/services/ses", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_sagemaker-runtime/", + "new_link": "/aws/services/sagemaker", + "status_code": 301 + }, + { + "old_link": "/applications/messaging-processing-application-with-sqs-dynamodb-and-fargate/", + "new_link": "/aws/applications/messaging-processing-application-with-sqs-dynamodb-and-fargate", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/mq/", + "new_link": "/aws/services/mq", + "status_code": 301 + }, + { + "old_link": "/user-guide/localstack-enterprise/kubernetes-executor/", + "new_link": "/aws/enterprise/kubernetes-executor", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/iot/", + "new_link": "/aws/services/iot", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/backup/", + "new_link": "/aws/services/backup", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_organizations/", + "new_link": "/aws/services/organizations", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/kinesisanalytics/", + "new_link": "/aws/services/kinesisanalytics", + "status_code": 301 + }, + { + "old_link": "/user-guide/localstack-enterprise/single-sign-on/", + "new_link": "/aws/enterprise/sso", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/redshift/", + "new_link": "/aws/services/redshift", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_verifiedpermissions/", + "new_link": "/aws/services/verifiedpermissions", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-101/full-project-demo/", + "new_link": "/aws/academy/localstack-101/full-project-demo", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/", + "new_link": "/aws/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_iotanalytics/", + "new_link": "/aws/services/iotanalytics", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/chalice/", + "new_link": "/aws/integrations/aws-native-tools/aws-chalice/", + "status_code": 301 + }, + { + "old_link": "/user-guide/security-testing/iam-policy-stream/", + "new_link": "/aws/capabilities/security-testing/iam-policy-stream", + "status_code": 301 + }, + { + "old_link": "/user-guide/security-testing/iam-enforcement/", + "new_link": "/aws/capabilities/security-testing/iam-enforcement", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_route53resolver/", + "new_link": "/aws/services/route53resolver", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_config/", + "new_link": "/aws/services/config", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_account/", + "new_link": "/aws/services/account", + "status_code": 301 + }, + { + "old_link": "/user-guide/web-application/stack-overview/", + "new_link": "/aws/capabilities/web-app/stack-overview", + "status_code": 301 + }, + { + "old_link": "/academy/localstack-deployment/cloud-pods/", + "new_link": "/aws/academy/localstack-deployment/cloud-pods", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/appconfig/", + "new_link": "/aws/services/appconfig", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/cognito/", + "new_link": "/aws/services/cognito", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_bedrock/", + "new_link": "/aws/services/bedrock", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/efs/", + "new_link": "/aws/services/efs", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_rds/", + "new_link": "/aws/services/rds", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_backup/", + "new_link": "/aws/services/backup", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/rds/", + "new_link": "/aws/services/rds", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/identitystore/", + "new_link": "/aws/services/identitystore", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_redshift-data/", + "new_link": "/aws/services/redshift", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/elasticache/", + "new_link": "/aws/services/elasticache", + "status_code": 301 + }, + { + "old_link": "/tutorials/using-terraform-with-testcontainers-and-localstack/", + "new_link": "/aws/tutorials/using-terraform-with-testcontainers-and-localstack", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_cloudfront/", + "new_link": "/aws/services/cloudfront", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/localstack-sdk/java/", + "new_link": "/aws/user-guide/tools/localstack-sdk/java", + "status_code": 301 + }, + { + "old_link": "/references/network-troubleshooting/readme/", + "new_link": "/aws/capabilities/networking/readme", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/codecommit/", + "new_link": "/aws/services/codecommit", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_swf/", + "new_link": "/aws/services/swf", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/sdks/go/", + "new_link": "/aws/integrations/aws-sdks/net/go", + "status_code": 301 + }, + { + "old_link": "/persistence/", + "new_link": "/aws/capabilities/state-management/persistence/", + "status_code": 301 + }, + { + "old_link": "/references/init-hooks/", + "new_link": "/aws/capabilities/config/initialization-hooks/", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_support/", + "new_link": "/aws/services/support", "status_code": 301 }, { "old_link": "/user-guide/", - "new_link": "/aws/capabilities/", + "new_link": "/aws/", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/qldb/", + "new_link": "/aws/services/qldb", + "status_code": 301 + }, + { + "old_link": "/tutorials/simulating-outages/", + "new_link": "/aws/tutorials/simulating-outages", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/aws/acm/", + "new_link": "/aws/services/acm", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/sdks/php/", + "new_link": "/aws/integrations/aws-sdks/net/php", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_sns/", + "new_link": "/aws/services/sns", + "status_code": 301 + }, + { + "old_link": "/getting-started/help-and-support/", + "new_link": "/aws/getting-started/help-support", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/amplify/", + "new_link": "/aws/services/amplify", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_lakeformation/", + "new_link": "/aws/services/lakeformation", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/sdks/dotnet/", + "new_link": "/aws/integrations/aws-sdks/net/dotnet", + "status_code": 301 + }, + { + "old_link": "/academy/", + "new_link": "/aws/academy", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/references/coverage/coverage_cloudwatch/", + "new_link": "/aws/services/cloudwatch", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/ecr/", + "new_link": "/aws/services/ecr", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/stepfunctions/", + "new_link": "/aws/services/stepfunctions", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_elasticache/", + "new_link": "/aws/services/elasticache", + "status_code": 301 + }, + { + "old_link": "/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint/", + "new_link": "/aws/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/state-management/pods-cli/", + "new_link": "/aws/capabilities/state-management/pods-cli", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/dynamodbstreams/", + "new_link": "/aws/services/dynamodbstreams", + "status_code": 301 + }, + { + "old_link": "/references/api-key/", + "new_link": "/aws/references/api-key", + "status_code": 301, + "_note": "MANUALLY REVIEW AND UPDATE new_link" + }, + { + "old_link": "/user-guide/ci/", + "new_link": "/aws/user-guide/ci", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_eks/", + "new_link": "/aws/services/eks", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_cognito-idp/", + "new_link": "/aws/services/cognito", + "status_code": 301 + }, + { + "old_link": "/user-guide/web-application/workspace/", + "new_link": "/aws/capabilities/web-app/workspace", + "status_code": 301 + }, + { + "old_link": "/references/coverage/coverage_cloudcontrol/", + "new_link": "/aws/services/cloudcontrol", + "status_code": 301 + }, + { + "old_link": "/tutorials/replicate-aws-resources-localstack-extension/", + "new_link": "/aws/tutorials/replicate-aws-resources-localstack-extension", + "status_code": 301 + }, + { + "old_link": "/user-guide/tools/localstack-sdk/python/", + "new_link": "/aws/tooling/localstack-sdks/python", + "status_code": 301 + }, + { + "old_link": "/user-guide/lambda-tools/hot-reloading/", + "new_link": "/aws/tooling/lambda-tools/hot-reloading", + "status_code": 301 + }, + { + "old_link": "/getting-started/quickstart/", + "new_link": "/aws/getting-started/quickstart", + "status_code": 301 + }, + { + "old_link": "/overview/", + "new_link": "/aws/getting-started", + "status_code": 301 + }, + { + "old_link": "/user-guide/aws/glue/", + "new_link": "/aws/services/glue", + "status_code": 301 + }, + { + "old_link": "/getting-started/", + "new_link": "/aws/getting-started", + "status_code": 301 + }, + { + "old_link": "/user-guide/extensions/managing-extensions/", + "new_link": "/aws/tooling/extensions/managing-extensions", + "status_code": 301 + }, + { + "old_link": "/references/filesystem/", + "new_link": "/aws/capabilities/config/filesystem/", "status_code": 301 } ], "snowflake": [ { - "old_link": "/getting-started/", + "old_link": "/user-guide/state-management/", + "new_link": "/snowflake/capabilities/state-management/", + "status_code": 301 + }, + { + "old_link": "/tutorials/credit-scoring-with-localstack-snowpark/", + "new_link": "/snowflake/tutorials/aws-lambda-localstack-snowpark/", + "status_code": 301 + }, + { + "old_link": "/user-guide/init-hooks/", + "new_link": "/snowflake/capabilities/init-hooks/", + "status_code": 301 + }, + { + "old_link": "/user-guide/authentication/", + "new_link": "/snowflake/features/authentication/", + "status_code": 301 + }, + { + "old_link": "/references/configuration/", + "new_link": "/snowflake/capabilities/configuration/", + "status_code": 301 + }, + { + "old_link": "/user-guide/tasks/", + "new_link": "/snowflake/features/tasks/", + "status_code": 301 + }, + { + "old_link": "/user-guide/snowflake-drivers/", + "new_link": "/snowflake/integrations/snowflake-drivers/", + "status_code": 301 + }, + { + "old_link": "/user-guide/tags/", + "new_link": "/snowflake/features/tags/", + "status_code": 301 + }, + { + "old_link": "/user-guide/stages/", + "new_link": "/snowflake/features/stages/", + "status_code": 301 + }, + { + "old_link": "/getting-started/installation/", "new_link": "/snowflake/getting-started/", "status_code": 301 }, { - "old_link": "/features/", + "old_link": "/references/coverage-features/", "new_link": "/snowflake/features/", "status_code": 301 + }, + { + "old_link": "/user-guide/streamlit/", + "new_link": "/snowflake/features/streamlit/", + "status_code": 301 + }, + { + "old_link": "/user-guide/clones/", + "new_link": "/snowflake/features/clones/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/snowsql/", + "new_link": "/snowflake/integrations/snowsql/", + "status_code": 301 + }, + { + "old_link": "/getting-started/", + "new_link": "/snowflake/getting-started/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/snow-cli/", + "new_link": "/snowflake/integrations/snow-cli/", + "status_code": 301 + }, + { + "old_link": "/user-guide/snowpipe/", + "new_link": "/snowflake/features/snowpipe/", + "status_code": 301 + }, + { + "old_link": "/user-guide/streams/", + "new_link": "/snowflake/features/streams/", + "status_code": 301 + }, + { + "old_link": "/user-guide/materalized-views/", + "new_link": "/snowflake/features/materalized-views/", + "status_code": 301 + }, + { + "old_link": "/tutorials/aws-lambda-localstack-snowpark/", + "new_link": "/snowflake/tutorials/aws-lambda-localstack-snowpark/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/continuous-integration/", + "new_link": "/snowflake/integrations/continuous-integration/", + "status_code": 301 + }, + { + "old_link": "/introduction/", + "new_link": "/snowflake/", + "status_code": 301 + }, + { + "old_link": "/user-guide/user-defined-functions/", + "new_link": "/snowflake/features/user-defined-functions/", + "status_code": 301 + }, + { + "old_link": "/getting-started/faq/", + "new_link": "/snowflake/getting-started/faq/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/dbeaver/", + "new_link": "/snowflake/integrations/dbeaver/", + "status_code": 301 + }, + { + "old_link": "/user-guide/cross-database-resource-sharing/", + "new_link": "/snowflake/features/cross-database-resource-sharing/", + "status_code": 301 + }, + { + "old_link": "/user-guide/row-access-policies/", + "new_link": "/snowflake/features/row-access-policies/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/dbt/", + "new_link": "/snowflake/integrations/dbt/", + "status_code": 301 + }, + { + "old_link": "/user-guide/", + "new_link": "/snowflake/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/airflow/", + "new_link": "/snowflake/integrations/airflow/", + "status_code": 301 + }, + { + "old_link": "/user-guide/user-interface/", + "new_link": "/snowflake/tooling/user-interface/", + "status_code": 301 + }, + { + "old_link": "/user-guide/accounts/", + "new_link": "/snowflake/features/accounts/", + "status_code": 301 + }, + { + "old_link": "/user-guide/hybird-tables/", + "new_link": "/snowflake/features/hybrid-tables/", + "status_code": 301 + }, + { + "old_link": "/references/changelog/", + "new_link": "/snowflake/changelog/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/flyway/", + "new_link": "/snowflake/integrations/flyway/", + "status_code": 301 + }, + { + "old_link": "/user-guide/dynamic-tables/", + "new_link": "/snowflake/features/dynamic-tables/", + "status_code": 301 + }, + { + "old_link": "/user-guide/native-apps/", + "new_link": "/snowflake/features/native-apps/", + "status_code": 301 + }, + { + "old_link": "/references/coverage-functions/", + "new_link": "/snowflake/sql-functions/", + "status_code": 301 + }, + { + "old_link": "/user-guide/storage-integrations/", + "new_link": "/snowflake/features/storage-integrations/", + "status_code": 301 + }, + { + "old_link": "/user-guide/polaris-catalog/", + "new_link": "/snowflake/features/polaris-catalog/", + "status_code": 301 + }, + { + "old_link": "/getting-started/quickstart/", + "new_link": "/snowflake/getting-started/quickstart/", + "status_code": 301 + }, + { + "old_link": "/user-guide/iceberg-tables/", + "new_link": "/snowflake/features/iceberg-tables/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/terraform/", + "new_link": "/snowflake/integrations/terraform/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/pulumi/", + "new_link": "/snowflake/integrations/pulumi/", + "status_code": 301 + }, + { + "old_link": "/user-guide/integrations/", + "new_link": "/snowflake/integrations/", + "status_code": 301 + }, + { + "old_link": "/user-guide/transaction-management/", + "new_link": "/snowflake/features/transaction-management/", + "status_code": 301 + }, + { + "old_link": "/user-guide/snowpark/", + "new_link": "/snowflake/integrations/snowpark/", + "status_code": 301 + }, + { + "old_link": "/tutorials/", + "new_link": "/snowflake/tutorials/", + "status_code": 301 } ] -} \ No newline at end of file +} \ No newline at end of file diff --git a/scripts/redirects/redirects_config_template.json b/scripts/redirects/redirects_config_template.json deleted file mode 100644 index df80d239..00000000 --- a/scripts/redirects/redirects_config_template.json +++ /dev/null @@ -1,2348 +0,0 @@ -{ - "aws": [ - { - "old_link": "/legal/third-party-software-tools/", - "new_link": "/aws/legal/third-party-software-tools", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_elb/", - "new_link": "/aws/services/elb", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/batch/", - "new_link": "/aws/services/batch", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_scheduler/", - "new_link": "/aws/services/scheduler", - "status_code": 301 - }, - { - "old_link": "/user-guide/extensions/", - "new_link": "/aws/capabilities/extensions", - "status_code": 301 - }, - { - "old_link": "/tutorials/s3-static-website-terraform/", - "new_link": "/aws/tutorials/s3-static-website-terraform", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_sso-admin/", - "new_link": "/aws/services/sso-admin", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_rds-data/", - "new_link": "/aws/services/rds", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_ec2/", - "new_link": "/aws/services/ec2", - "status_code": 301 - }, - { - "old_link": "/references/licensing/", - "new_link": "/aws/references/licensing", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/legal/", - "new_link": "/aws/legal", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_iotwireless/", - "new_link": "/aws/services/iotwireless", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_mwaa/", - "new_link": "/aws/services/mwaa", - "status_code": 301 - }, - { - "old_link": "/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager/", - "new_link": "/aws/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_pipes/", - "new_link": "/aws/services/pipes", - "status_code": 301 - }, - { - "old_link": "/user-guide/state-management/persistence/", - "new_link": "/aws/capabilities/state-management/persistence", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_mq/", - "new_link": "/aws/services/mq", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-101/what-is-localstack/", - "new_link": "/aws/academy/localstack-101/what-is-localstack", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_xray/", - "new_link": "/aws/services/xray", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_cognito-identity/", - "new_link": "/aws/services/cognito", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/ecs/", - "new_link": "/aws/services/ecs", - "status_code": 301 - }, - { - "old_link": "/references/usage-tracking/", - "new_link": "/aws/references/usage-tracking", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/dms/", - "new_link": "/aws/services/dms", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_managedblockchain/", - "new_link": "/aws/services/managedblockchain", - "status_code": 301 - }, - { - "old_link": "/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/", - "new_link": "/aws/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/regions-coverage/", - "new_link": "/aws/references/regions-coverage", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/tutorials/elb-load-balancing/", - "new_link": "/aws/tutorials/elb-load-balancing", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/docker-images/", - "new_link": "/aws/capabilities/config/docker-images", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/eks/", - "new_link": "/aws/services/eks", - "status_code": 301 - }, - { - "old_link": "/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/", - "new_link": "/aws/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/cloudfront/", - "new_link": "/aws/services/cloudfront", - "status_code": 301 - }, - { - "old_link": "/applications/note-taking-application-using-aws-sdk-for-javascript/", - "new_link": "/aws/applications/note-taking-application-using-aws-sdk-for-javascript", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/state-management/export-import-state/", - "new_link": "/aws/capabilities/state-management/export-import-state", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_s3control/", - "new_link": "/aws/services/s3", - "status_code": 301 - }, - { - "old_link": "/references/custom-tls-certificates/", - "new_link": "/aws/capabilities/security-testing/custom-tls-certificates", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_codecommit/", - "new_link": "/aws/services/codecommit", - "status_code": 301 - }, - { - "old_link": "/user-guide/localstack-enterprise/enterprise-image/", - "new_link": "/aws/enterprise/enterprise-image", - "status_code": 301 - }, - { - "old_link": "/user-guide/tools/testing-utils/", - "new_link": "/aws/tooling/testing-utils", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/codedeploy/", - "new_link": "/aws/services/codedeploy", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_serverlessrepo/", - "new_link": "/aws/services/serverlessrepo", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/resource_groups/", - "new_link": "/aws/services/resource_groups", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_glue/", - "new_link": "/aws/services/glue", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/ssm/", - "new_link": "/aws/services/ssm", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_sts/", - "new_link": "/aws/services/sts", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-101/course-overview/", - "new_link": "/aws/academy/localstack-101/course-overview", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/iotwireless/", - "new_link": "/aws/services/iotwireless", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/sdks/python/", - "new_link": "/aws/integrations/aws-sdks/net/python", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/crossplane/", - "new_link": "/aws/integrations/infrastructure-as-code/crossplane", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_elbv2/", - "new_link": "/aws/services/elb", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/openshift/", - "new_link": "/aws/integrations/containers/openshift", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/memorydb/", - "new_link": "/aws/services/memorydb", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/devcontainers/", - "new_link": "/aws/integrations/containers/devcontainers", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_secretsmanager/", - "new_link": "/aws/services/secretsmanager", - "status_code": 301 - }, - { - "old_link": "/user-guide/ci/travis-ci/", - "new_link": "/aws/integrations/continuous-integration/travis-ci", - "status_code": 301 - }, - { - "old_link": "/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/", - "new_link": "/aws/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/lambda-tools/", - "new_link": "/aws/tooling/lambda-tools", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/aws-cdk/", - "new_link": "/aws/integrations/aws-native-tools/aws-cdk", - "status_code": 301 - }, - { - "old_link": "/references/podman/", - "new_link": "/aws/capabilities/config/podman", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_memorydb/", - "new_link": "/aws/services/memorydb", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/former2/", - "new_link": "/aws/integrations/infrastructure-as-code/former2", - "status_code": 301 - }, - { - "old_link": "/user-guide/localstack-enterprise/k8s-operator/", - "new_link": "/aws/enterprise/k8s-operator", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/aws-cli/", - "new_link": "/aws/integrations/aws-native-tools/aws-cli", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_kinesisanalyticsv2/", - "new_link": "/aws/services/apacheflink", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_amplify/", - "new_link": "/aws/services/amplify", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/events/", - "new_link": "/aws/services/events", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/pipes/", - "new_link": "/aws/services/pipes", - "status_code": 301 - }, - { - "old_link": "/user-guide/ci/circle-ci/", - "new_link": "/aws/integrations/continuous-integration/circle-ci", - "status_code": 301 - }, - { - "old_link": "/references/network-troubleshooting/transparent-endpoint-injection/", - "new_link": "/aws/capabilities/networking/transparent-endpoint-injection", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_kafka/", - "new_link": "/aws/services/msk", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_servicediscovery/", - "new_link": "/aws/services/servicediscovery", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_apigateway/", - "new_link": "/aws/services/apigateway", - "status_code": 301 - }, - { - "old_link": "/tutorials/", - "new_link": "/aws/tutorials", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_kinesis/", - "new_link": "/aws/services/kinesis", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_autoscaling/", - "new_link": "/aws/services/autoscaling", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_kms/", - "new_link": "/aws/services/kms", - "status_code": 301 - }, - { - "old_link": "/applications/step-up-authentication-using-amazon-cognito/", - "new_link": "/aws/applications/step-up-authentication-using-amazon-cognito", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_athena/", - "new_link": "/aws/services/athena", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/mediastore/", - "new_link": "/aws/services/mediastore", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_fis/", - "new_link": "/aws/services/fis", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/logs/", - "new_link": "/aws/services/cloudwatchlogs", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-deployment/infra-cloudformation/", - "new_link": "/aws/academy/localstack-deployment/infra-cloudformation", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/cloud-sandbox/", - "new_link": "/aws/capabilities/cloud-sandbox", - "status_code": 301 - }, - { - "old_link": "/user-guide/localstack-enterprise/ci-analytics/", - "new_link": "/aws/enterprise/ci-analytics", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/changelog/", - "new_link": "/aws/references/changelog", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/credentials/", - "new_link": "/aws/capabilities/config/credentials", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_elasticbeanstalk/", - "new_link": "/aws/services/elasticbeanstalk", - "status_code": 301 - }, - { - "old_link": "/user-guide/web-application/instance-management/", - "new_link": "/aws/capabilities/web-app/instance-management", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_qldb/", - "new_link": "/aws/services/qldb", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-deployment/iam-policy-stream/", - "new_link": "/aws/academy/localstack-deployment/iam-policy-stream", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/cross-account-access/", - "new_link": "/aws/references/cross-account-access", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/tutorials/reproducible-machine-learning-cloud-pods/", - "new_link": "/aws/tutorials/reproducible-machine-learning-cloud-pods", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_ecs/", - "new_link": "/aws/services/ecs", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_acm/", - "new_link": "/aws/services/acm", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_cloudtrail/", - "new_link": "/aws/services/cloudtrail", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/", - "new_link": "/aws/services/", - "status_code": 301 - }, - { - "old_link": "/references/lambda-provider-v2/", - "new_link": "/aws/services/lambda", - "status_code": 301 - }, - { - "old_link": "/user-guide/web-application/ci-keys/", - "new_link": "/aws/capabilities/web-app/ci-keys", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-deployment/ls-integrations/", - "new_link": "/aws/academy/localstack-deployment/ls-integrations", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_appconfigdata/", - "new_link": "/aws/services/appconfig", - "status_code": 301 - }, - { - "old_link": "/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/", - "new_link": "/aws/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/security-testing/", - "new_link": "/aws/capabilities/security-testing/", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/applicationautoscaling/", - "new_link": "/aws/services/appautoscaling", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/bedrock/", - "new_link": "/aws/services/bedrock", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/sts/", - "new_link": "/aws/services/sts", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/docdb/", - "new_link": "/aws/services/docdb", - "status_code": 301 - }, - { - "old_link": "/user-guide/tools/transparent-endpoint-injection/", - "new_link": "/aws/capabilities/networking/transparent-endpoint-injection", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/account/", - "new_link": "/aws/services/account", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_efs/", - "new_link": "/aws/services/efs", - "status_code": 301 - }, - { - "old_link": "/user-guide/localstack-enterprise/", - "new_link": "/aws/enterprise/", - "status_code": 301 - }, - { - "old_link": "/getting-started/auth-token/", - "new_link": "/aws/getting-started/auth-token", - "status_code": 301 - }, - { - "old_link": "/user-guide/localstack-enterprise/enterprise-support/", - "new_link": "/aws/enterprise/enterprise-support", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/support/", - "new_link": "/aws/services/support", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_resourcegroupstaggingapi/", - "new_link": "/aws/services/resourcegroups", - "status_code": 301 - }, - { - "old_link": "/references/external-ports/", - "new_link": "/aws/capabilities/networking/external-port-range", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_ce/", - "new_link": "/aws/services/ce", - "status_code": 301 - }, - { - "old_link": "/user-guide/extensions/getting-started/", - "new_link": "/aws/tooling/extensions/getting-started", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_codeartifact/", - "new_link": "/aws/services/codeartifact", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/integrations/sdks/", - "new_link": "/aws/integrations/aws-sdks/", - "status_code": 301 - }, - { - "old_link": "/user-guide/localstack-enterprise/single-sign-on/azure-ad/", - "new_link": "/aws/enterprise/single-sign-on/azure-ad", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/tools/localstack-desktop/", - "new_link": "/aws/capabilities/web-app/localstack-desktop", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_es/", - "new_link": "/aws/services/es", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/sdks/javascript/", - "new_link": "/aws/integrations/aws-sdks/net/javascript", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_iam/", - "new_link": "/aws/services/iam", - "status_code": 301 - }, - { - "old_link": "/user-guide/tools/localsurf/", - "new_link": "/aws/tooling/localsurf", - "status_code": 301 - }, - { - "old_link": "/user-guide/extensions/extensions-library/", - "new_link": "/aws/tooling/extensions/extensions-library", - "status_code": 301 - }, - { - "old_link": "/tutorials/ecs-ecr-container-app/", - "new_link": "/aws/tutorials/ecs-ecr-container-app", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_elastictranscoder/", - "new_link": "/aws/services/elastictranscoder", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/feature-coverage/", - "new_link": "/aws/services/", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/lambda/", - "new_link": "/aws/services/lambda", - "status_code": 301 - }, - { - "old_link": "/references/iam-coverage/", - "new_link": "/aws/references/iam-coverage", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/transfer/", - "new_link": "/aws/services/transfer", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_batch/", - "new_link": "/aws/services/batch", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_neptune/", - "new_link": "/aws/services/neptune", - "status_code": 301 - }, - { - "old_link": "/applications/temp/", - "new_link": "/aws/applications/temp", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/applications/serverless-container-based-apis-with-amazon-ecs-api-gateway/", - "new_link": "/aws/applications/serverless-container-based-apis-with-amazon-ecs-api-gateway", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/s3/", - "new_link": "/aws/services/s3", - "status_code": 301 - }, - { - "old_link": "/user-guide/lambda-tools/vscode-extension/", - "new_link": "/aws/tooling/lambda-tools/vscode-extension", - "status_code": 301 - }, - { - "old_link": "/user-guide/chaos-engineering/", - "new_link": "/aws/capabilities/chaos-engineering/", - "status_code": 301 - }, - { - "old_link": "/persistence/supported/", - "new_link": "/aws/capabilities/state-management/persistence-coverage", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/ce/", - "new_link": "/aws/services/ce", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/kinesisanalyticsv2/", - "new_link": "/aws/services/kinesisanalyticsv2", - "status_code": 301 - }, - { - "old_link": "/user-guide/state-management/cloud-pods/", - "new_link": "/aws/capabilities/state-management/cloud-pods", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_transcribe/", - "new_link": "/aws/services/transcribe", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_mediastore-data/", - "new_link": "/aws/services/mediastore", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/route53/", - "new_link": "/aws/services/route53", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/config/", - "new_link": "/aws/services/config", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_identitystore/", - "new_link": "/aws/services/identitystore", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_codedeploy/", - "new_link": "/aws/services/codedeploy", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/msk/", - "new_link": "/aws/services/msk", - "status_code": 301 - }, - { - "old_link": "/user-guide/state-management/", - "new_link": "/aws/capabilities/state-management/", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/copilot/", - "new_link": "/aws/integrations/aws-native-tools/aws-copilot-cli/", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/eksctl/", - "new_link": "/aws/integrations/containers/eksctl/", - "status_code": 301 - }, - { - "old_link": "/getting-started/faq/", - "new_link": "/aws/getting-started/faq", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/elb/", - "new_link": "/aws/services/elb", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/kubernetes/", - "new_link": "/aws/integrations/containers/kubernetes/", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/lakeformation/", - "new_link": "/aws/services/lakeformation", - "status_code": 301 - }, - { - "old_link": "/developer-hub/", - "new_link": "/aws/developer-hub", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_firehose/", - "new_link": "/aws/services/firehose", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/verifiedpermissions/", - "new_link": "/aws/services/verifiedpermissions", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_kinesisanalytics/", - "new_link": "/aws/services/kinesisanalytics", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/sns/", - "new_link": "/aws/services/sns", - "status_code": 301 - }, - { - "old_link": "/user-guide/tools/aws-replicator/", - "new_link": "/aws/tooling/aws-replicator", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/serverless-framework/", - "new_link": "/aws/integrations/app-frameworks/serverless-framework", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_sqs/", - "new_link": "/aws/services/sqs", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/appsync/", - "new_link": "/aws/services/appsync", - "status_code": 301 - }, - { - "old_link": "/tutorials/schema-evolution-glue-msk/", - "new_link": "/aws/tutorials/schema-evolution-glue-msk", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/ci/bitbucket/", - "new_link": "/aws/integrations/continuous-integration/bitbucket", - "status_code": 301 - }, - { - "old_link": "/contributing/", - "new_link": "/aws/contributing", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/scheduler/", - "new_link": "/aws/services/scheduler", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/quarkus/", - "new_link": "/aws/integrations/app-frameworks/quarkus", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/servicediscovery/", - "new_link": "/aws/services/servicediscovery", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-101/", - "new_link": "/aws/academy/localstack-101", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/xray/", - "new_link": "/aws/services/xray", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/pca/", - "new_link": "/aws/services/pca", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/waf/", - "new_link": "/aws/services/waf", - "status_code": 301 - }, - { - "old_link": "/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/", - "new_link": "/aws/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/apigateway/", - "new_link": "/aws/services/apigateway", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/cloud-custodian/", - "new_link": "/aws/integrations/infrastructure-as-code/cloud-custodian/", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_lambda/", - "new_link": "/aws/services/lambda", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/sdks/java/", - "new_link": "/aws/integrations/aws-sdks/net/java", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_logs/", - "new_link": "/aws/services/logs", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_mediastore/", - "new_link": "/aws/services/mediastore", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/kafka/", - "new_link": "/aws/integrations/messaging/selfmanaged-kafka-cluster/", - "status_code": 301 - }, - { - "old_link": "/user-guide/chaos-engineering/fault-injection-service/", - "new_link": "/aws/capabilities/chaos-engineering/fault-injection-service", - "status_code": 301 - }, - { - "old_link": "/references/logging/", - "new_link": "/aws/capabilities/config/logging", - "status_code": 301 - }, - { - "old_link": "/tutorials/java-notification-app/", - "new_link": "/aws/tutorials/java-notification-app", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses/", - "new_link": "/aws/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/route53resolver/", - "new_link": "/aws/services/route53resolver", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_wafv2/", - "new_link": "/aws/services/waf", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/sdks/cpp/", - "new_link": "/aws/integrations/aws-sdks/net/cpp", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/testcontainers/", - "new_link": "/aws/integrations/testing/testcontainers", - "status_code": 301 - }, - { - "old_link": "/references/internal-endpoints/", - "new_link": "/aws/capabilities/networking/internal-endpoints", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/iotanalytics/", - "new_link": "/aws/services/iotanalytics", - "status_code": 301 - }, - { - "old_link": "/tutorials/lambda-ecr-container-images/", - "new_link": "/aws/tutorials/lambda-ecr-container-images", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/fis/", - "new_link": "/aws/services/fis", - "status_code": 301 - }, - { - "old_link": "/user-guide/tools/localstack-docker-extension/", - "new_link": "/aws/tooling/localstack-docker-extension/", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/cloudformation/", - "new_link": "/aws/services/cloudformation", - "status_code": 301 - }, - { - "old_link": "/tutorials/route-53-failover/", - "new_link": "/aws/tutorials/route-53-failover", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/web-application/resource-browser/", - "new_link": "/aws/capabilities/web-app/resource-browser", - "status_code": 301 - }, - { - "old_link": "/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/", - "new_link": "/aws/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_resource-groups/", - "new_link": "/aws/services/resourcegroups", - "status_code": 301 - }, - { - "old_link": "/user-guide/state-management/support/", - "new_link": "/aws/capabilities/state-management/persistence-coverage", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_redshift/", - "new_link": "/aws/services/redshift", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/lambdatest-hyperexecute/", - "new_link": "/aws/integrations/testing/lambdatest-hyperexecute/", - "status_code": 301 - }, - { - "old_link": "/applications/", - "new_link": "/aws/sample-apps/", - "status_code": 301 - }, - { - "old_link": "/user-guide/web-application/users-and-licenses/", - "new_link": "/aws/capabilities/web-app/users-and-licenses", - "status_code": 301 - }, - { - "old_link": "/user-guide/tools/localstack-sdk/", - "new_link": "/aws/tooling/localstack-sdks/", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_apigatewaymanagementapi/", - "new_link": "/aws/services/apigateway", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_transfer/", - "new_link": "/aws/services/transfer", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_codeconnections/", - "new_link": "/aws/services/codeconnections", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/athena/", - "new_link": "/aws/services/athena", - "status_code": 301 - }, - { - "old_link": "/user-guide/extensions/official-extensions/", - "new_link": "/aws/tooling/extensions/official-extensions", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/textract/", - "new_link": "/aws/services/textract", - "status_code": 301 - }, - { - "old_link": "/tutorials/iam-policy-stream/", - "new_link": "/aws/tutorials/iam-policy-stream", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_ses/", - "new_link": "/aws/services/ses", - "status_code": 301 - }, - { - "old_link": "/tutorials/gitlab_ci_testcontainers/", - "new_link": "/aws/tutorials/gitlab_ci_testcontainers", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/integrations/aws-sam/", - "new_link": "/aws/integrations/aws-native-tools/aws-sam", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/firehose/", - "new_link": "/aws/services/firehose", - "status_code": 301 - }, - { - "old_link": "/user-guide/web-application/", - "new_link": "/aws/capabilities/web-app/", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_sagemaker/", - "new_link": "/aws/services/sagemaker", - "status_code": 301 - }, - { - "old_link": "/references/arm64-support/", - "new_link": "/aws/references/arm64-support", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/shield/", - "new_link": "/aws/services/shield", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/terraform/", - "new_link": "/aws/integrations/infrastructure-as-code/terraform", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/es/", - "new_link": "/aws/services/es", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_dms/", - "new_link": "/aws/services/dms", - "status_code": 301 - }, - { - "old_link": "/user-guide/extensions/developing-extensions/", - "new_link": "/aws/tooling/extensions/developing-extensions", - "status_code": 301 - }, - { - "old_link": "/user-guide/security-testing/explainable-iam/", - "new_link": "/aws/capabilities/security-testing/explainable-iam", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/ram/", - "new_link": "/aws/services/ram", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_ssm/", - "new_link": "/aws/services/ssm", - "status_code": 301 - }, - { - "old_link": "/references/network-troubleshooting/created-resources/", - "new_link": "/aws/capabilities/networking/created-resources", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/swf/", - "new_link": "/aws/services/swf", - "status_code": 301 - }, - { - "old_link": "/user-guide/ci/github-actions/", - "new_link": "/aws/integrations/continuous-integration/github-actions", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/serverlessrepo/", - "new_link": "/aws/services/serverlessrepo", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/sqs/", - "new_link": "/aws/services/sqs", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_ram/", - "new_link": "/aws/services/ram", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/secretsmanager/", - "new_link": "/aws/services/secretsmanager", - "status_code": 301 - }, - { - "old_link": "/user-guide/web-application/stack-insights/", - "new_link": "/aws/capabilities/web-app/stack-insights", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/autoscaling/", - "new_link": "/aws/services/autoscaling", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_opensearch/", - "new_link": "/aws/services/opensearch", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-101/cloud-pods/", - "new_link": "/aws/academy/localstack-101/cloud-pods", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_emr-serverless/", - "new_link": "/aws/services/emr", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/cloudwatch/", - "new_link": "/aws/services/cloudwatch", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/elasticbeanstalk/", - "new_link": "/aws/services/elasticbeanstalk", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_mediaconvert/", - "new_link": "/aws/services/mediaconvert", - "status_code": 301 - }, - { - "old_link": "/user-guide/state-management/launchpad/", - "new_link": "/aws/capabilities/state-management/launchpad", - "status_code": 301 - }, - { - "old_link": "/user-guide/ci/codebuild/", - "new_link": "/aws/integrations/continuous-integration/codebuild", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/iotdata/", - "new_link": "/aws/services/iotdata", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_textract/", - "new_link": "/aws/services/textract", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_codebuild/", - "new_link": "/aws/services/codebuild", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/elastictranscoder/", - "new_link": "/aws/services/elastictranscoder", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_glacier/", - "new_link": "/aws/services/glacier", - "status_code": 301 - }, - { - "old_link": "/user-guide/tools/", - "new_link": "/aws/tooling/", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/timestream/", - "new_link": "/aws/services/timestream", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_pinpoint/", - "new_link": "/aws/services/pinpoint" - }, - { - "old_link": "/applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds/", - "new_link": "/aws/applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/academy/localstack-101/why-localstack/", - "new_link": "/aws/academy/localstack-101/why-localstack", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/transcribe/", - "new_link": "/aws/services/transcribe", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_cloudformation/", - "new_link": "/aws/services/cloudformation", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_apigatewayv2/", - "new_link": "/aws/services/apigateway", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/kinesis/", - "new_link": "/aws/services/kinesis", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_bedrock-runtime/", - "new_link": "/aws/services/bedrock", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_iot-data/", - "new_link": "/aws/services/iotdata", - "status_code": 301 - }, - { - "old_link": "/user-guide/cloud-sandbox/ephemeral-instance/", - "new_link": "/aws/capabilities/cloud-sandbox/ephemeral-instance", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_timestream-write/", - "new_link": "/aws/services/timestream", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/pinpoint/", - "new_link": "/aws/services/pinpoint", - "status_code": 301 - }, - { - "old_link": "/tutorials/cloud-pods-collaborative-debugging/", - "new_link": "/aws/tutorials/cloud-pods-collaborative-debugging", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_emr/", - "new_link": "/aws/services/emr", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/iam/", - "new_link": "/aws/services/iam", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-deployment/course-overview/", - "new_link": "/aws/academy/localstack-deployment/course-overview", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_codepipeline/", - "new_link": "/aws/services/codepipeline", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-deployment/infra-terraform/", - "new_link": "/aws/academy/localstack-deployment/infra-terraform", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/network-troubleshooting/", - "new_link": "/aws/capabilities/networking/", - "status_code": 301 - }, - { - "old_link": "/user-guide/ci/gitlab-ci/", - "new_link": "/aws/integrations/continuous-integration/gitlab-ci", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/kms/", - "new_link": "/aws/services/kms", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_stepfunctions/", - "new_link": "/aws/services/stepfunctions", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_sesv2/", - "new_link": "/aws/services/ses", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_events/", - "new_link": "/aws/services/events", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_timestream-query/", - "new_link": "/aws/services/timestream", - "status_code": 301 - }, - { - "old_link": "/references/network-troubleshooting/endpoint-url/", - "new_link": "/aws/capabilities/networking/endpoint-url", - "status_code": 301 - }, - { - "old_link": "/tutorials/ephemeral-application-previews/", - "new_link": "/aws/tutorials/ephemeral-application-previews", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/web-application/accounts/", - "new_link": "/aws/capabilities/web-app/accounts", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_appsync/", - "new_link": "/aws/services/appsync", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_ecr/", - "new_link": "/aws/services/ecr", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-deployment/", - "new_link": "/aws/academy/localstack-deployment", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_application-autoscaling/", - "new_link": "/aws/services/appautoscaling", - "status_code": 301 - }, - { - "old_link": "/user-guide/lambda-tools/debugging/", - "new_link": "/aws/tooling/lambda-tools/debugging", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_codestar-connections/", - "new_link": "/aws/services/codestar-connections", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/integrations/rancher-desktop/", - "new_link": "/aws/integrations/containers/rancher-desktop", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/sdks/ruby/", - "new_link": "/aws/integrations/aws-sdks/net/ruby", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/mwaa/", - "new_link": "/aws/services/mwaa", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-deployment/deploy-app-ls/", - "new_link": "/aws/academy/localstack-deployment/deploy-app-ls", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/organizations/", - "new_link": "/aws/services/organizations", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-deployment/github-action-ls/", - "new_link": "/aws/academy/localstack-deployment/github-action-ls", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/sagemaker/", - "new_link": "/aws/services/sagemaker", - "status_code": 301 - }, - { - "old_link": "/references/configuration/", - "new_link": "/aws/capabilities/config/configuration", - "status_code": 301 - }, - { - "old_link": "/user-guide/chaos-engineering/chaos-api/", - "new_link": "/aws/capabilities/chaos-engineering/chaos-api", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/glacier/", - "new_link": "/aws/services/glacier", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_qldb-session/", - "new_link": "/aws/services/qldb", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/pulumi/", - "new_link": "/aws/integrations/infrastructure-as-code/pulumi", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/cloudtrail/", - "new_link": "/aws/services/cloudtrail", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_s3/", - "new_link": "/aws/services/s3", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/emr/", - "new_link": "/aws/services/emr", - "status_code": 301 - }, - { - "old_link": "/user-guide/tools/dns-server/", - "new_link": "/aws/tooling/dns-server", - "status_code": 301 - }, - { - "old_link": "/user-guide/chaos-engineering/chaos-application-dashboard/", - "new_link": "/aws/capabilities/chaos-engineering/chaos-application-dashboard", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_route53/", - "new_link": "/aws/services/route53", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_dynamodbstreams/", - "new_link": "/aws/services/dynamodbstreams", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_dynamodb/", - "new_link": "/aws/services/dynamodb", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/ec2/", - "new_link": "/aws/services/ec2", - "status_code": 301 - }, - { - "old_link": "/user-guide/cloud-sandbox/application-previews/", - "new_link": "/aws/capabilities/cloud-sandbox/application-previews", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/spring-cloud-function/", - "new_link": "/aws/integrations/app-frameworks/spring-cloud-function", - "status_code": 301 - }, - { - "old_link": "/references/multi-account-setups/", - "new_link": "/aws/capabilities/config/multi-account-setups/", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/elementalmediaconvert/", - "new_link": "/aws/services/elementalmediaconvert", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_shield/", - "new_link": "/aws/services/shield", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/dynamodb/", - "new_link": "/aws/services/dynamodb", - "status_code": 301 - }, - { - "old_link": "/user-guide/tools/event-studio/", - "new_link": "/aws/tooling/event-studio/", - "status_code": 301 - }, - { - "old_link": "/references/coverage/", - "new_link": "/aws/services/", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_acm-pca/", - "new_link": "/aws/services/acm-pca", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/opensearch/", - "new_link": "/aws/services/opensearch", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/neptune/", - "new_link": "/aws/services/neptune", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/codepipeline/", - "new_link": "/aws/services/codepipeline", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_docdb/", - "new_link": "/aws/services/docdb", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_appconfig/", - "new_link": "/aws/services/appconfig", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_iot/", - "new_link": "/aws/services/iot", - "status_code": 301 - }, - { - "old_link": "/getting-started/installation/", - "new_link": "/aws/getting-started/installation", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/architect/", - "new_link": "/aws/integrations/app-frameworks/architect/", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/gitpod/", - "new_link": "/aws/integrations/containers/gitpod/", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/managedblockchain/", - "new_link": "/aws/services/managedblockchain", - "status_code": 301 - }, - { - "old_link": "/applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation/", - "new_link": "/aws/applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/academy/localstack-101/web-app-resource-browser/", - "new_link": "/aws/academy/localstack-101/web-app-resource-browser", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/integrations/", - "new_link": "/aws/integrations/", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/codebuild/", - "new_link": "/aws/services/codebuild", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/ses/", - "new_link": "/aws/services/ses", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_sagemaker-runtime/", - "new_link": "/aws/services/sagemaker", - "status_code": 301 - }, - { - "old_link": "/applications/messaging-processing-application-with-sqs-dynamodb-and-fargate/", - "new_link": "/aws/applications/messaging-processing-application-with-sqs-dynamodb-and-fargate", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/mq/", - "new_link": "/aws/services/mq", - "status_code": 301 - }, - { - "old_link": "/user-guide/localstack-enterprise/kubernetes-executor/", - "new_link": "/aws/enterprise/kubernetes-executor", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/iot/", - "new_link": "/aws/services/iot", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/backup/", - "new_link": "/aws/services/backup", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_organizations/", - "new_link": "/aws/services/organizations", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/kinesisanalytics/", - "new_link": "/aws/services/kinesisanalytics", - "status_code": 301 - }, - { - "old_link": "/user-guide/localstack-enterprise/single-sign-on/", - "new_link": "/aws/enterprise/sso", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/redshift/", - "new_link": "/aws/services/redshift", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_verifiedpermissions/", - "new_link": "/aws/services/verifiedpermissions", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-101/full-project-demo/", - "new_link": "/aws/academy/localstack-101/full-project-demo", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/", - "new_link": "/aws/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_iotanalytics/", - "new_link": "/aws/services/iotanalytics", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/chalice/", - "new_link": "/aws/integrations/aws-native-tools/aws-chalice/", - "status_code": 301 - }, - { - "old_link": "/user-guide/security-testing/iam-policy-stream/", - "new_link": "/aws/capabilities/security-testing/iam-policy-stream", - "status_code": 301 - }, - { - "old_link": "/user-guide/security-testing/iam-enforcement/", - "new_link": "/aws/capabilities/security-testing/iam-enforcement", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_route53resolver/", - "new_link": "/aws/services/route53resolver", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_config/", - "new_link": "/aws/services/config", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_account/", - "new_link": "/aws/services/account", - "status_code": 301 - }, - { - "old_link": "/user-guide/web-application/stack-overview/", - "new_link": "/aws/capabilities/web-app/stack-overview", - "status_code": 301 - }, - { - "old_link": "/academy/localstack-deployment/cloud-pods/", - "new_link": "/aws/academy/localstack-deployment/cloud-pods", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/appconfig/", - "new_link": "/aws/services/appconfig", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/cognito/", - "new_link": "/aws/services/cognito", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_bedrock/", - "new_link": "/aws/services/bedrock", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/efs/", - "new_link": "/aws/services/efs", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_rds/", - "new_link": "/aws/services/rds", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_backup/", - "new_link": "/aws/services/backup", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/rds/", - "new_link": "/aws/services/rds", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/identitystore/", - "new_link": "/aws/services/identitystore", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_redshift-data/", - "new_link": "/aws/services/redshift", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/elasticache/", - "new_link": "/aws/services/elasticache", - "status_code": 301 - }, - { - "old_link": "/tutorials/using-terraform-with-testcontainers-and-localstack/", - "new_link": "/aws/tutorials/using-terraform-with-testcontainers-and-localstack", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_cloudfront/", - "new_link": "/aws/services/cloudfront", - "status_code": 301 - }, - { - "old_link": "/user-guide/tools/localstack-sdk/java/", - "new_link": "/aws/user-guide/tools/localstack-sdk/java", - "status_code": 301 - }, - { - "old_link": "/references/network-troubleshooting/readme/", - "new_link": "/aws/capabilities/networking/readme", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/codecommit/", - "new_link": "/aws/services/codecommit", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_swf/", - "new_link": "/aws/services/swf", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/sdks/go/", - "new_link": "/aws/integrations/aws-sdks/net/go", - "status_code": 301 - }, - { - "old_link": "/persistence/", - "new_link": "/aws/capabilities/state-management/persistence/", - "status_code": 301 - }, - { - "old_link": "/references/init-hooks/", - "new_link": "/aws/capabilities/config/initialization-hooks/", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_support/", - "new_link": "/aws/services/support", - "status_code": 301 - }, - { - "old_link": "/user-guide/", - "new_link": "/aws/", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/qldb/", - "new_link": "/aws/services/qldb", - "status_code": 301 - }, - { - "old_link": "/tutorials/simulating-outages/", - "new_link": "/aws/tutorials/simulating-outages", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/aws/acm/", - "new_link": "/aws/services/acm", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/sdks/php/", - "new_link": "/aws/integrations/aws-sdks/net/php", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_sns/", - "new_link": "/aws/services/sns", - "status_code": 301 - }, - { - "old_link": "/getting-started/help-and-support/", - "new_link": "/aws/getting-started/help-support", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/amplify/", - "new_link": "/aws/services/amplify", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_lakeformation/", - "new_link": "/aws/services/lakeformation", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/sdks/dotnet/", - "new_link": "/aws/integrations/aws-sdks/net/dotnet", - "status_code": 301 - }, - { - "old_link": "/academy/", - "new_link": "/aws/academy", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/references/coverage/coverage_cloudwatch/", - "new_link": "/aws/services/cloudwatch", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/ecr/", - "new_link": "/aws/services/ecr", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/stepfunctions/", - "new_link": "/aws/services/stepfunctions", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_elasticache/", - "new_link": "/aws/services/elasticache", - "status_code": 301 - }, - { - "old_link": "/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint/", - "new_link": "/aws/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/state-management/pods-cli/", - "new_link": "/aws/capabilities/state-management/pods-cli", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/dynamodbstreams/", - "new_link": "/aws/services/dynamodbstreams", - "status_code": 301 - }, - { - "old_link": "/references/api-key/", - "new_link": "/aws/references/api-key", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" - }, - { - "old_link": "/user-guide/ci/", - "new_link": "/aws/user-guide/ci", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_eks/", - "new_link": "/aws/services/eks", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_cognito-idp/", - "new_link": "/aws/services/cognito", - "status_code": 301 - }, - { - "old_link": "/user-guide/web-application/workspace/", - "new_link": "/aws/capabilities/web-app/workspace", - "status_code": 301 - }, - { - "old_link": "/references/coverage/coverage_cloudcontrol/", - "new_link": "/aws/services/cloudcontrol", - "status_code": 301 - }, - { - "old_link": "/tutorials/replicate-aws-resources-localstack-extension/", - "new_link": "/aws/tutorials/replicate-aws-resources-localstack-extension", - "status_code": 301 - }, - { - "old_link": "/user-guide/tools/localstack-sdk/python/", - "new_link": "/aws/tooling/localstack-sdks/python", - "status_code": 301 - }, - { - "old_link": "/user-guide/lambda-tools/hot-reloading/", - "new_link": "/aws/tooling/lambda-tools/hot-reloading", - "status_code": 301 - }, - { - "old_link": "/getting-started/quickstart/", - "new_link": "/aws/getting-started/quickstart", - "status_code": 301 - }, - { - "old_link": "/overview/", - "new_link": "/aws/getting-started", - "status_code": 301 - }, - { - "old_link": "/user-guide/aws/glue/", - "new_link": "/aws/services/glue", - "status_code": 301 - }, - { - "old_link": "/getting-started/", - "new_link": "/aws/getting-started", - "status_code": 301 - }, - { - "old_link": "/user-guide/extensions/managing-extensions/", - "new_link": "/aws/tooling/extensions/managing-extensions", - "status_code": 301 - }, - { - "old_link": "/references/filesystem/", - "new_link": "/aws/capabilities/config/filesystem/", - "status_code": 301 - } - ], - "snowflake": [ - { - "old_link": "/user-guide/state-management/", - "new_link": "/snowflake/capabilities/state-management/", - "status_code": 301 - }, - { - "old_link": "/tutorials/credit-scoring-with-localstack-snowpark/", - "new_link": "/snowflake/tutorials/aws-lambda-localstack-snowpark/", - "status_code": 301 - }, - { - "old_link": "/user-guide/init-hooks/", - "new_link": "/snowflake/capabilities/init-hooks/", - "status_code": 301 - }, - { - "old_link": "/user-guide/authentication/", - "new_link": "/snowflake/features/authentication/", - "status_code": 301 - }, - { - "old_link": "/references/configuration/", - "new_link": "/snowflake/capabilities/configuration/", - "status_code": 301 - }, - { - "old_link": "/user-guide/tasks/", - "new_link": "/snowflake/features/tasks/", - "status_code": 301 - }, - { - "old_link": "/user-guide/snowflake-drivers/", - "new_link": "/snowflake/integrations/snowflake-drivers/", - "status_code": 301 - }, - { - "old_link": "/user-guide/tags/", - "new_link": "/snowflake/features/tags/", - "status_code": 301 - }, - { - "old_link": "/user-guide/stages/", - "new_link": "/snowflake/features/stages/", - "status_code": 301 - }, - { - "old_link": "/getting-started/installation/", - "new_link": "/snowflake/getting-started/", - "status_code": 301 - }, - { - "old_link": "/references/coverage-features/", - "new_link": "/snowflake/features/", - "status_code": 301 - }, - { - "old_link": "/user-guide/streamlit/", - "new_link": "/snowflake/features/streamlit/", - "status_code": 301 - }, - { - "old_link": "/user-guide/clones/", - "new_link": "/snowflake/features/clones/", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/snowsql/", - "new_link": "/snowflake/integrations/snowsql/", - "status_code": 301 - }, - { - "old_link": "/getting-started/", - "new_link": "/snowflake/getting-started/", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/snow-cli/", - "new_link": "/snowflake/integrations/snow-cli/", - "status_code": 301 - }, - { - "old_link": "/user-guide/snowpipe/", - "new_link": "/snowflake/features/snowpipe/", - "status_code": 301 - }, - { - "old_link": "/user-guide/streams/", - "new_link": "/snowflake/features/streams/", - "status_code": 301 - }, - { - "old_link": "/user-guide/materalized-views/", - "new_link": "/snowflake/features/materalized-views/", - "status_code": 301 - }, - { - "old_link": "/tutorials/aws-lambda-localstack-snowpark/", - "new_link": "/snowflake/tutorials/aws-lambda-localstack-snowpark/", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/continuous-integration/", - "new_link": "/snowflake/integrations/continuous-integration/", - "status_code": 301 - }, - { - "old_link": "/introduction/", - "new_link": "/snowflake/", - "status_code": 301 - }, - { - "old_link": "/user-guide/user-defined-functions/", - "new_link": "/snowflake/features/user-defined-functions/", - "status_code": 301 - }, - { - "old_link": "/getting-started/faq/", - "new_link": "/snowflake/getting-started/faq/", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/dbeaver/", - "new_link": "/snowflake/integrations/dbeaver/", - "status_code": 301 - }, - { - "old_link": "/user-guide/cross-database-resource-sharing/", - "new_link": "/snowflake/features/cross-database-resource-sharing/", - "status_code": 301 - }, - { - "old_link": "/user-guide/row-access-policies/", - "new_link": "/snowflake/features/row-access-policies/", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/dbt/", - "new_link": "/snowflake/integrations/dbt/", - "status_code": 301 - }, - { - "old_link": "/user-guide/", - "new_link": "/snowflake/", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/airflow/", - "new_link": "/snowflake/integrations/airflow/", - "status_code": 301 - }, - { - "old_link": "/user-guide/user-interface/", - "new_link": "/snowflake/tooling/user-interface/", - "status_code": 301 - }, - { - "old_link": "/user-guide/accounts/", - "new_link": "/snowflake/features/accounts/", - "status_code": 301 - }, - { - "old_link": "/user-guide/hybird-tables/", - "new_link": "/snowflake/features/hybrid-tables/", - "status_code": 301 - }, - { - "old_link": "/references/changelog/", - "new_link": "/snowflake/changelog/", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/flyway/", - "new_link": "/snowflake/integrations/flyway/", - "status_code": 301 - }, - { - "old_link": "/user-guide/dynamic-tables/", - "new_link": "/snowflake/features/dynamic-tables/", - "status_code": 301 - }, - { - "old_link": "/user-guide/native-apps/", - "new_link": "/snowflake/features/native-apps/", - "status_code": 301 - }, - { - "old_link": "/references/coverage-functions/", - "new_link": "/snowflake/sql-functions/", - "status_code": 301 - }, - { - "old_link": "/user-guide/storage-integrations/", - "new_link": "/snowflake/features/storage-integrations/", - "status_code": 301 - }, - { - "old_link": "/user-guide/polaris-catalog/", - "new_link": "/snowflake/features/polaris-catalog/", - "status_code": 301 - }, - { - "old_link": "/getting-started/quickstart/", - "new_link": "/snowflake/getting-started/quickstart/", - "status_code": 301 - }, - { - "old_link": "/user-guide/iceberg-tables/", - "new_link": "/snowflake/features/iceberg-tables/", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/terraform/", - "new_link": "/snowflake/integrations/terraform/", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/pulumi/", - "new_link": "/snowflake/integrations/pulumi/", - "status_code": 301 - }, - { - "old_link": "/user-guide/integrations/", - "new_link": "/snowflake/integrations/", - "status_code": 301 - }, - { - "old_link": "/user-guide/transaction-management/", - "new_link": "/snowflake/features/transaction-management/", - "status_code": 301 - }, - { - "old_link": "/user-guide/snowpark/", - "new_link": "/snowflake/integrations/snowpark/", - "status_code": 301 - }, - { - "old_link": "/tutorials/", - "new_link": "/snowflake/tutorials/", - "status_code": 301 - } - ] -} \ No newline at end of file From c5b86bfdad46d048597f7abd101fb238361e5bcd Mon Sep 17 00:00:00 2001 From: Harsh Mishra Date: Fri, 27 Jun 2025 15:23:34 +0530 Subject: [PATCH 04/14] try something --- scripts/redirects/generate_redirects.py | 48 ++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/scripts/redirects/generate_redirects.py b/scripts/redirects/generate_redirects.py index 8c68f60a..1f773c46 100644 --- a/scripts/redirects/generate_redirects.py +++ b/scripts/redirects/generate_redirects.py @@ -27,9 +27,16 @@ def generate_redirects_file(config_file, output_file): redirects = [] + skipped_count = 0 + # Process AWS redirects if 'aws' in config: for redirect in config['aws']: + # Skip entries that still have the manual review note + if redirect.get('_note') == "MANUALLY REVIEW AND UPDATE new_link": + skipped_count += 1 + continue + old_path = normalize_path(redirect['old_link']) new_path = normalize_path(redirect['new_link']) status_code = redirect.get('status_code', 301) @@ -37,36 +44,29 @@ def generate_redirects_file(config_file, output_file): redirects.append(f"{old_path} {new_path} {status_code}") # Process Snowflake redirects - if 'snowflake' in config: - for redirect in config['snowflake']: - old_path = normalize_path(redirect['old_link']) - new_path = normalize_path(redirect['new_link']) - status_code = redirect.get('status_code', 301) + # if 'snowflake' in config: + # for redirect in config['snowflake']: + # # Skip entries that still have the manual review note + # if redirect.get('_note') == "MANUALLY REVIEW AND UPDATE new_link": + # skipped_count += 1 + # continue + + # old_path = normalize_path(redirect['old_link']) + # new_path = normalize_path(redirect['new_link']) + # status_code = redirect.get('status_code', 301) - redirects.append(f"{old_path} {new_path} {status_code}") + # redirects.append(f"{old_path} {new_path} {status_code}") # Write to output file with open(output_file, 'w') as f: - f.write("# LocalStack Docs Redirects\n") - f.write("# Generated automatically from redirects_config.json\n\n") - - # Add static redirects first (CloudFlare recommendation) - static_redirects = [r for r in redirects if '*' not in r and ':' not in r] - dynamic_redirects = [r for r in redirects if '*' in r or ':' in r] - - if static_redirects: - f.write("# Static redirects\n") - for redirect in static_redirects: - f.write(f"{redirect}\n") - - if dynamic_redirects: - f.write("\n# Dynamic redirects\n") - for redirect in dynamic_redirects: - f.write(f"{redirect}\n") + for redirect in redirects: + f.write(f"{redirect}\n") print(f"Generated {len(redirects)} redirects in {output_file}") - print(f"- Static redirects: {len(static_redirects)}") - print(f"- Dynamic redirects: {len(dynamic_redirects)}") + + if skipped_count > 0: + print(f"โš ๏ธ Skipped {skipped_count} entries that still need manual review") + print(f" Remove '_note' field from reviewed entries to include them") def main(): From 0207bff23657d1f18235a3e53ea8f5dcf36cdaca Mon Sep 17 00:00:00 2001 From: Harsh Mishra Date: Fri, 27 Jun 2025 15:29:18 +0530 Subject: [PATCH 05/14] do redirects --- public/_redirects | 339 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 339 insertions(+) create mode 100644 public/_redirects diff --git a/public/_redirects b/public/_redirects new file mode 100644 index 00000000..953e19fd --- /dev/null +++ b/public/_redirects @@ -0,0 +1,339 @@ +/references/coverage/coverage_elb/ /aws/services/elb 301 +/user-guide/aws/batch/ /aws/services/batch 301 +/references/coverage/coverage_scheduler/ /aws/services/scheduler 301 +/user-guide/extensions/ /aws/capabilities/extensions 301 +/references/coverage/coverage_rds-data/ /aws/services/rds 301 +/references/coverage/coverage_ec2/ /aws/services/ec2 301 +/references/coverage/coverage_iotwireless/ /aws/services/iotwireless 301 +/references/coverage/coverage_mwaa/ /aws/services/mwaa 301 +/references/coverage/coverage_pipes/ /aws/services/pipes 301 +/user-guide/state-management/persistence/ /aws/capabilities/state-management/persistence 301 +/references/coverage/coverage_mq/ /aws/services/mq 301 +/references/coverage/coverage_xray/ /aws/services/xray 301 +/references/coverage/coverage_cognito-identity/ /aws/services/cognito 301 +/user-guide/aws/ecs/ /aws/services/ecs 301 +/user-guide/aws/dms/ /aws/services/dms 301 +/references/coverage/coverage_managedblockchain/ /aws/services/managedblockchain 301 +/references/docker-images/ /aws/capabilities/config/docker-images 301 +/user-guide/aws/eks/ /aws/services/eks 301 +/user-guide/aws/cloudfront/ /aws/services/cloudfront 301 +/user-guide/state-management/export-import-state/ /aws/capabilities/state-management/export-import-state 301 +/references/coverage/coverage_s3control/ /aws/services/s3 301 +/references/custom-tls-certificates/ /aws/capabilities/security-testing/custom-tls-certificates 301 +/references/coverage/coverage_codecommit/ /aws/services/codecommit 301 +/user-guide/localstack-enterprise/enterprise-image/ /aws/enterprise/enterprise-image 301 +/user-guide/tools/testing-utils/ /aws/tooling/testing-utils 301 +/user-guide/aws/codedeploy/ /aws/services/codedeploy 301 +/references/coverage/coverage_serverlessrepo/ /aws/services/serverlessrepo 301 +/user-guide/aws/resource_groups/ /aws/services/resource_groups 301 +/references/coverage/coverage_glue/ /aws/services/glue 301 +/user-guide/aws/ssm/ /aws/services/ssm 301 +/references/coverage/coverage_sts/ /aws/services/sts 301 +/user-guide/aws/iotwireless/ /aws/services/iotwireless 301 +/user-guide/integrations/sdks/python/ /aws/integrations/aws-sdks/net/python 301 +/user-guide/integrations/crossplane/ /aws/integrations/infrastructure-as-code/crossplane 301 +/references/coverage/coverage_elbv2/ /aws/services/elb 301 +/user-guide/integrations/openshift/ /aws/integrations/containers/openshift 301 +/user-guide/aws/memorydb/ /aws/services/memorydb 301 +/user-guide/integrations/devcontainers/ /aws/integrations/containers/devcontainers 301 +/references/coverage/coverage_secretsmanager/ /aws/services/secretsmanager 301 +/user-guide/ci/travis-ci/ /aws/integrations/continuous-integration/travis-ci 301 +/user-guide/lambda-tools/ /aws/tooling/lambda-tools 301 +/user-guide/integrations/aws-cdk/ /aws/integrations/aws-native-tools/aws-cdk 301 +/references/podman/ /aws/capabilities/config/podman 301 +/references/coverage/coverage_memorydb/ /aws/services/memorydb 301 +/user-guide/integrations/former2/ /aws/integrations/infrastructure-as-code/former2 301 +/user-guide/localstack-enterprise/k8s-operator/ /aws/enterprise/k8s-operator 301 +/user-guide/integrations/aws-cli/ /aws/integrations/aws-native-tools/aws-cli 301 +/references/coverage/coverage_kinesisanalyticsv2/ /aws/services/apacheflink 301 +/references/coverage/coverage_amplify/ /aws/services/amplify 301 +/user-guide/aws/events/ /aws/services/events 301 +/user-guide/aws/pipes/ /aws/services/pipes 301 +/user-guide/ci/circle-ci/ /aws/integrations/continuous-integration/circle-ci 301 +/references/network-troubleshooting/transparent-endpoint-injection/ /aws/capabilities/networking/transparent-endpoint-injection 301 +/references/coverage/coverage_kafka/ /aws/services/msk 301 +/references/coverage/coverage_servicediscovery/ /aws/services/servicediscovery 301 +/references/coverage/coverage_apigateway/ /aws/services/apigateway 301 +/tutorials/ /aws/tutorials 301 +/references/coverage/coverage_kinesis/ /aws/services/kinesis 301 +/references/coverage/coverage_autoscaling/ /aws/services/autoscaling 301 +/references/coverage/coverage_kms/ /aws/services/kms 301 +/references/coverage/coverage_athena/ /aws/services/athena 301 +/user-guide/aws/mediastore/ /aws/services/mediastore 301 +/references/coverage/coverage_fis/ /aws/services/fis 301 +/user-guide/aws/logs/ /aws/services/cloudwatchlogs 301 +/user-guide/cloud-sandbox/ /aws/capabilities/cloud-sandbox 301 +/references/credentials/ /aws/capabilities/config/credentials 301 +/references/coverage/coverage_elasticbeanstalk/ /aws/services/elasticbeanstalk 301 +/user-guide/web-application/instance-management/ /aws/capabilities/web-app/instance-management 301 +/references/coverage/coverage_qldb/ /aws/services/qldb 301 +/references/coverage/coverage_ecs/ /aws/services/ecs 301 +/references/coverage/coverage_acm/ /aws/services/acm 301 +/references/coverage/coverage_cloudtrail/ /aws/services/cloudtrail 301 +/user-guide/aws/ /aws/services/ 301 +/references/lambda-provider-v2/ /aws/services/lambda 301 +/user-guide/web-application/ci-keys/ /aws/capabilities/web-app/ci-keys 301 +/references/coverage/coverage_appconfigdata/ /aws/services/appconfig 301 +/user-guide/security-testing/ /aws/capabilities/security-testing/ 301 +/user-guide/aws/applicationautoscaling/ /aws/services/appautoscaling 301 +/user-guide/aws/bedrock/ /aws/services/bedrock 301 +/user-guide/aws/sts/ /aws/services/sts 301 +/user-guide/aws/docdb/ /aws/services/docdb 301 +/user-guide/tools/transparent-endpoint-injection/ /aws/capabilities/networking/transparent-endpoint-injection 301 +/user-guide/aws/account/ /aws/services/account 301 +/references/coverage/coverage_efs/ /aws/services/efs 301 +/user-guide/localstack-enterprise/ /aws/enterprise/ 301 +/getting-started/auth-token/ /aws/getting-started/auth-token 301 +/user-guide/localstack-enterprise/enterprise-support/ /aws/enterprise/enterprise-support 301 +/user-guide/aws/support/ /aws/services/support 301 +/references/coverage/coverage_resourcegroupstaggingapi/ /aws/services/resourcegroups 301 +/references/external-ports/ /aws/capabilities/networking/external-port-range 301 +/references/coverage/coverage_ce/ /aws/services/ce 301 +/user-guide/extensions/getting-started/ /aws/tooling/extensions/getting-started 301 +/user-guide/integrations/sdks/ /aws/integrations/aws-sdks/ 301 +/user-guide/tools/localstack-desktop/ /aws/capabilities/web-app/localstack-desktop 301 +/references/coverage/coverage_es/ /aws/services/es 301 +/user-guide/integrations/sdks/javascript/ /aws/integrations/aws-sdks/net/javascript 301 +/references/coverage/coverage_iam/ /aws/services/iam 301 +/user-guide/tools/localsurf/ /aws/tooling/localsurf 301 +/user-guide/extensions/extensions-library/ /aws/tooling/extensions/extensions-library 301 +/references/coverage/coverage_elastictranscoder/ /aws/services/elastictranscoder 301 +/user-guide/aws/feature-coverage/ /aws/services/ 301 +/user-guide/aws/lambda/ /aws/services/lambda 301 +/user-guide/aws/transfer/ /aws/services/transfer 301 +/references/coverage/coverage_batch/ /aws/services/batch 301 +/references/coverage/coverage_neptune/ /aws/services/neptune 301 +/user-guide/aws/s3/ /aws/services/s3 301 +/user-guide/lambda-tools/vscode-extension/ /aws/tooling/lambda-tools/vscode-extension 301 +/user-guide/chaos-engineering/ /aws/capabilities/chaos-engineering/ 301 +/persistence/supported/ /aws/capabilities/state-management/persistence-coverage 301 +/user-guide/aws/ce/ /aws/services/ce 301 +/user-guide/aws/kinesisanalyticsv2/ /aws/services/kinesisanalyticsv2 301 +/user-guide/state-management/cloud-pods/ /aws/capabilities/state-management/cloud-pods 301 +/references/coverage/coverage_transcribe/ /aws/services/transcribe 301 +/references/coverage/coverage_mediastore-data/ /aws/services/mediastore 301 +/user-guide/aws/route53/ /aws/services/route53 301 +/user-guide/aws/config/ /aws/services/config 301 +/references/coverage/coverage_identitystore/ /aws/services/identitystore 301 +/references/coverage/coverage_codedeploy/ /aws/services/codedeploy 301 +/user-guide/aws/msk/ /aws/services/msk 301 +/user-guide/state-management/ /aws/capabilities/state-management/ 301 +/user-guide/integrations/copilot/ /aws/integrations/aws-native-tools/aws-copilot-cli/ 301 +/user-guide/integrations/eksctl/ /aws/integrations/containers/eksctl/ 301 +/getting-started/faq/ /aws/getting-started/faq 301 +/user-guide/aws/elb/ /aws/services/elb 301 +/user-guide/integrations/kubernetes/ /aws/integrations/containers/kubernetes/ 301 +/user-guide/aws/lakeformation/ /aws/services/lakeformation 301 +/references/coverage/coverage_firehose/ /aws/services/firehose 301 +/user-guide/aws/verifiedpermissions/ /aws/services/verifiedpermissions 301 +/references/coverage/coverage_kinesisanalytics/ /aws/services/kinesisanalytics 301 +/user-guide/aws/sns/ /aws/services/sns 301 +/user-guide/tools/aws-replicator/ /aws/tooling/aws-replicator 301 +/user-guide/integrations/serverless-framework/ /aws/integrations/app-frameworks/serverless-framework 301 +/references/coverage/coverage_sqs/ /aws/services/sqs 301 +/user-guide/aws/appsync/ /aws/services/appsync 301 +/user-guide/ci/bitbucket/ /aws/integrations/continuous-integration/bitbucket 301 +/user-guide/aws/scheduler/ /aws/services/scheduler 301 +/user-guide/integrations/quarkus/ /aws/integrations/app-frameworks/quarkus 301 +/user-guide/aws/servicediscovery/ /aws/services/servicediscovery 301 +/user-guide/aws/xray/ /aws/services/xray 301 +/user-guide/aws/pca/ /aws/services/pca 301 +/user-guide/aws/waf/ /aws/services/waf 301 +/user-guide/aws/apigateway/ /aws/services/apigateway 301 +/user-guide/integrations/cloud-custodian/ /aws/integrations/infrastructure-as-code/cloud-custodian/ 301 +/references/coverage/coverage_lambda/ /aws/services/lambda 301 +/user-guide/integrations/sdks/java/ /aws/integrations/aws-sdks/net/java 301 +/references/coverage/coverage_logs/ /aws/services/logs 301 +/references/coverage/coverage_mediastore/ /aws/services/mediastore 301 +/user-guide/integrations/kafka/ /aws/integrations/messaging/selfmanaged-kafka-cluster/ 301 +/user-guide/chaos-engineering/fault-injection-service/ /aws/capabilities/chaos-engineering/fault-injection-service 301 +/references/logging/ /aws/capabilities/config/logging 301 +/user-guide/aws/route53resolver/ /aws/services/route53resolver 301 +/references/coverage/coverage_wafv2/ /aws/services/waf 301 +/user-guide/integrations/sdks/cpp/ /aws/integrations/aws-sdks/net/cpp 301 +/user-guide/integrations/testcontainers/ /aws/integrations/testing/testcontainers 301 +/references/internal-endpoints/ /aws/capabilities/networking/internal-endpoints 301 +/user-guide/aws/iotanalytics/ /aws/services/iotanalytics 301 +/user-guide/aws/fis/ /aws/services/fis 301 +/user-guide/tools/localstack-docker-extension/ /aws/tooling/localstack-docker-extension/ 301 +/user-guide/aws/cloudformation/ /aws/services/cloudformation 301 +/user-guide/web-application/resource-browser/ /aws/capabilities/web-app/resource-browser 301 +/references/coverage/coverage_resource-groups/ /aws/services/resourcegroups 301 +/user-guide/state-management/support/ /aws/capabilities/state-management/persistence-coverage 301 +/references/coverage/coverage_redshift/ /aws/services/redshift 301 +/user-guide/integrations/lambdatest-hyperexecute/ /aws/integrations/testing/lambdatest-hyperexecute/ 301 +/applications/ /aws/sample-apps/ 301 +/user-guide/web-application/users-and-licenses/ /aws/capabilities/web-app/users-and-licenses 301 +/user-guide/tools/localstack-sdk/ /aws/tooling/localstack-sdks/ 301 +/references/coverage/coverage_apigatewaymanagementapi/ /aws/services/apigateway 301 +/references/coverage/coverage_transfer/ /aws/services/transfer 301 +/user-guide/aws/athena/ /aws/services/athena 301 +/user-guide/extensions/official-extensions/ /aws/tooling/extensions/official-extensions 301 +/user-guide/aws/textract/ /aws/services/textract 301 +/references/coverage/coverage_ses/ /aws/services/ses 301 +/user-guide/integrations/aws-sam/ /aws/integrations/aws-native-tools/aws-sam 301 +/user-guide/aws/firehose/ /aws/services/firehose 301 +/user-guide/web-application/ /aws/capabilities/web-app/ 301 +/references/coverage/coverage_sagemaker/ /aws/services/sagemaker 301 +/user-guide/aws/shield/ /aws/services/shield 301 +/user-guide/integrations/terraform/ /aws/integrations/infrastructure-as-code/terraform 301 +/user-guide/aws/es/ /aws/services/es 301 +/references/coverage/coverage_dms/ /aws/services/dms 301 +/user-guide/extensions/developing-extensions/ /aws/tooling/extensions/developing-extensions 301 +/user-guide/security-testing/explainable-iam/ /aws/capabilities/security-testing/explainable-iam 301 +/user-guide/aws/ram/ /aws/services/ram 301 +/references/coverage/coverage_ssm/ /aws/services/ssm 301 +/references/network-troubleshooting/created-resources/ /aws/capabilities/networking/created-resources 301 +/user-guide/aws/swf/ /aws/services/swf 301 +/user-guide/ci/github-actions/ /aws/integrations/continuous-integration/github-actions 301 +/user-guide/aws/serverlessrepo/ /aws/services/serverlessrepo 301 +/user-guide/aws/sqs/ /aws/services/sqs 301 +/references/coverage/coverage_ram/ /aws/services/ram 301 +/user-guide/aws/secretsmanager/ /aws/services/secretsmanager 301 +/user-guide/web-application/stack-insights/ /aws/capabilities/web-app/stack-insights 301 +/user-guide/aws/autoscaling/ /aws/services/autoscaling 301 +/references/coverage/coverage_opensearch/ /aws/services/opensearch 301 +/references/coverage/coverage_emr-serverless/ /aws/services/emr 301 +/user-guide/aws/cloudwatch/ /aws/services/cloudwatch 301 +/user-guide/aws/elasticbeanstalk/ /aws/services/elasticbeanstalk 301 +/references/coverage/coverage_mediaconvert/ /aws/services/mediaconvert 301 +/user-guide/state-management/launchpad/ /aws/capabilities/state-management/launchpad 301 +/user-guide/ci/codebuild/ /aws/integrations/continuous-integration/codebuild 301 +/user-guide/aws/iotdata/ /aws/services/iotdata 301 +/references/coverage/coverage_textract/ /aws/services/textract 301 +/references/coverage/coverage_codebuild/ /aws/services/codebuild 301 +/user-guide/aws/elastictranscoder/ /aws/services/elastictranscoder 301 +/references/coverage/coverage_glacier/ /aws/services/glacier 301 +/user-guide/tools/ /aws/tooling/ 301 +/user-guide/aws/timestream/ /aws/services/timestream 301 +/references/coverage/coverage_pinpoint/ /aws/services/pinpoint 301 +/user-guide/aws/transcribe/ /aws/services/transcribe 301 +/references/coverage/coverage_cloudformation/ /aws/services/cloudformation 301 +/references/coverage/coverage_apigatewayv2/ /aws/services/apigateway 301 +/user-guide/aws/kinesis/ /aws/services/kinesis 301 +/references/coverage/coverage_bedrock-runtime/ /aws/services/bedrock 301 +/references/coverage/coverage_iot-data/ /aws/services/iotdata 301 +/user-guide/cloud-sandbox/ephemeral-instance/ /aws/capabilities/cloud-sandbox/ephemeral-instance 301 +/references/coverage/coverage_timestream-write/ /aws/services/timestream 301 +/user-guide/aws/pinpoint/ /aws/services/pinpoint 301 +/references/coverage/coverage_emr/ /aws/services/emr 301 +/user-guide/aws/iam/ /aws/services/iam 301 +/references/coverage/coverage_codepipeline/ /aws/services/codepipeline 301 +/references/network-troubleshooting/ /aws/capabilities/networking/ 301 +/user-guide/ci/gitlab-ci/ /aws/integrations/continuous-integration/gitlab-ci 301 +/user-guide/aws/kms/ /aws/services/kms 301 +/references/coverage/coverage_stepfunctions/ /aws/services/stepfunctions 301 +/references/coverage/coverage_sesv2/ /aws/services/ses 301 +/references/coverage/coverage_events/ /aws/services/events 301 +/references/coverage/coverage_timestream-query/ /aws/services/timestream 301 +/references/network-troubleshooting/endpoint-url/ /aws/capabilities/networking/endpoint-url 301 +/user-guide/web-application/accounts/ /aws/capabilities/web-app/accounts 301 +/references/coverage/coverage_appsync/ /aws/services/appsync 301 +/references/coverage/coverage_ecr/ /aws/services/ecr 301 +/references/coverage/coverage_application-autoscaling/ /aws/services/appautoscaling 301 +/user-guide/lambda-tools/debugging/ /aws/tooling/lambda-tools/debugging 301 +/user-guide/integrations/rancher-desktop/ /aws/integrations/containers/rancher-desktop 301 +/user-guide/integrations/sdks/ruby/ /aws/integrations/aws-sdks/net/ruby 301 +/user-guide/aws/mwaa/ /aws/services/mwaa 301 +/user-guide/aws/organizations/ /aws/services/organizations 301 +/user-guide/aws/sagemaker/ /aws/services/sagemaker 301 +/references/configuration/ /aws/capabilities/config/configuration 301 +/user-guide/chaos-engineering/chaos-api/ /aws/capabilities/chaos-engineering/chaos-api 301 +/user-guide/aws/glacier/ /aws/services/glacier 301 +/references/coverage/coverage_qldb-session/ /aws/services/qldb 301 +/user-guide/integrations/pulumi/ /aws/integrations/infrastructure-as-code/pulumi 301 +/user-guide/aws/cloudtrail/ /aws/services/cloudtrail 301 +/references/coverage/coverage_s3/ /aws/services/s3 301 +/user-guide/aws/emr/ /aws/services/emr 301 +/user-guide/tools/dns-server/ /aws/tooling/dns-server 301 +/references/coverage/coverage_route53/ /aws/services/route53 301 +/references/coverage/coverage_dynamodbstreams/ /aws/services/dynamodbstreams 301 +/references/coverage/coverage_dynamodb/ /aws/services/dynamodb 301 +/user-guide/aws/ec2/ /aws/services/ec2 301 +/user-guide/cloud-sandbox/application-previews/ /aws/capabilities/cloud-sandbox/application-previews 301 +/user-guide/integrations/spring-cloud-function/ /aws/integrations/app-frameworks/spring-cloud-function 301 +/references/multi-account-setups/ /aws/capabilities/config/multi-account-setups/ 301 +/user-guide/aws/elementalmediaconvert/ /aws/services/elementalmediaconvert 301 +/references/coverage/coverage_shield/ /aws/services/shield 301 +/user-guide/aws/dynamodb/ /aws/services/dynamodb 301 +/user-guide/tools/event-studio/ /aws/tooling/event-studio/ 301 +/references/coverage/ /aws/services/ 301 +/references/coverage/coverage_acm-pca/ /aws/services/acm-pca 301 +/user-guide/aws/opensearch/ /aws/services/opensearch 301 +/user-guide/aws/neptune/ /aws/services/neptune 301 +/user-guide/aws/codepipeline/ /aws/services/codepipeline 301 +/references/coverage/coverage_docdb/ /aws/services/docdb 301 +/references/coverage/coverage_appconfig/ /aws/services/appconfig 301 +/references/coverage/coverage_iot/ /aws/services/iot 301 +/getting-started/installation/ /aws/getting-started/installation 301 +/user-guide/integrations/architect/ /aws/integrations/app-frameworks/architect/ 301 +/user-guide/integrations/gitpod/ /aws/integrations/containers/gitpod/ 301 +/user-guide/aws/managedblockchain/ /aws/services/managedblockchain 301 +/user-guide/integrations/ /aws/integrations/ 301 +/user-guide/aws/codebuild/ /aws/services/codebuild 301 +/user-guide/aws/ses/ /aws/services/ses 301 +/references/coverage/coverage_sagemaker-runtime/ /aws/services/sagemaker 301 +/user-guide/aws/mq/ /aws/services/mq 301 +/user-guide/localstack-enterprise/kubernetes-executor/ /aws/enterprise/kubernetes-executor 301 +/user-guide/aws/iot/ /aws/services/iot 301 +/user-guide/aws/backup/ /aws/services/backup 301 +/references/coverage/coverage_organizations/ /aws/services/organizations 301 +/user-guide/aws/kinesisanalytics/ /aws/services/kinesisanalytics 301 +/user-guide/localstack-enterprise/single-sign-on/ /aws/enterprise/sso 301 +/user-guide/aws/redshift/ /aws/services/redshift 301 +/references/coverage/coverage_verifiedpermissions/ /aws/services/verifiedpermissions 301 +/references/coverage/coverage_iotanalytics/ /aws/services/iotanalytics 301 +/user-guide/integrations/chalice/ /aws/integrations/aws-native-tools/aws-chalice/ 301 +/user-guide/security-testing/iam-policy-stream/ /aws/capabilities/security-testing/iam-policy-stream 301 +/user-guide/security-testing/iam-enforcement/ /aws/capabilities/security-testing/iam-enforcement 301 +/references/coverage/coverage_route53resolver/ /aws/services/route53resolver 301 +/references/coverage/coverage_config/ /aws/services/config 301 +/references/coverage/coverage_account/ /aws/services/account 301 +/user-guide/web-application/stack-overview/ /aws/capabilities/web-app/stack-overview 301 +/user-guide/aws/appconfig/ /aws/services/appconfig 301 +/user-guide/aws/cognito/ /aws/services/cognito 301 +/references/coverage/coverage_bedrock/ /aws/services/bedrock 301 +/user-guide/aws/efs/ /aws/services/efs 301 +/references/coverage/coverage_rds/ /aws/services/rds 301 +/references/coverage/coverage_backup/ /aws/services/backup 301 +/user-guide/aws/rds/ /aws/services/rds 301 +/user-guide/aws/identitystore/ /aws/services/identitystore 301 +/references/coverage/coverage_redshift-data/ /aws/services/redshift 301 +/user-guide/aws/elasticache/ /aws/services/elasticache 301 +/references/coverage/coverage_cloudfront/ /aws/services/cloudfront 301 +/user-guide/tools/localstack-sdk/java/ /aws/user-guide/tools/localstack-sdk/java 301 +/user-guide/aws/codecommit/ /aws/services/codecommit 301 +/references/coverage/coverage_swf/ /aws/services/swf 301 +/user-guide/integrations/sdks/go/ /aws/integrations/aws-sdks/net/go 301 +/persistence/ /aws/capabilities/state-management/persistence/ 301 +/references/init-hooks/ /aws/capabilities/config/initialization-hooks/ 301 +/references/coverage/coverage_support/ /aws/services/support 301 +/user-guide/ /aws/ 301 +/user-guide/aws/qldb/ /aws/services/qldb 301 +/user-guide/aws/acm/ /aws/services/acm 301 +/user-guide/integrations/sdks/php/ /aws/integrations/aws-sdks/net/php 301 +/references/coverage/coverage_sns/ /aws/services/sns 301 +/getting-started/help-and-support/ /aws/getting-started/help-support 301 +/user-guide/aws/amplify/ /aws/services/amplify 301 +/references/coverage/coverage_lakeformation/ /aws/services/lakeformation 301 +/user-guide/integrations/sdks/dotnet/ /aws/integrations/aws-sdks/net/dotnet 301 +/references/coverage/coverage_cloudwatch/ /aws/services/cloudwatch 301 +/user-guide/aws/ecr/ /aws/services/ecr 301 +/user-guide/aws/stepfunctions/ /aws/services/stepfunctions 301 +/references/coverage/coverage_elasticache/ /aws/services/elasticache 301 +/user-guide/state-management/pods-cli/ /aws/capabilities/state-management/pods-cli 301 +/user-guide/aws/dynamodbstreams/ /aws/services/dynamodbstreams 301 +/user-guide/ci/ /aws/user-guide/ci 301 +/references/coverage/coverage_eks/ /aws/services/eks 301 +/references/coverage/coverage_cognito-idp/ /aws/services/cognito 301 +/user-guide/web-application/workspace/ /aws/capabilities/web-app/workspace 301 +/references/coverage/coverage_cloudcontrol/ /aws/services/cloudcontrol 301 +/tutorials/replicate-aws-resources-localstack-extension/ /aws/tutorials/replicate-aws-resources-localstack-extension 301 +/user-guide/tools/localstack-sdk/python/ /aws/tooling/localstack-sdks/python 301 +/user-guide/lambda-tools/hot-reloading/ /aws/tooling/lambda-tools/hot-reloading 301 +/getting-started/quickstart/ /aws/getting-started/quickstart 301 +/overview/ /aws/getting-started 301 +/user-guide/aws/glue/ /aws/services/glue 301 +/getting-started/ /aws/getting-started 301 +/user-guide/extensions/managing-extensions/ /aws/tooling/extensions/managing-extensions 301 +/references/filesystem/ /aws/capabilities/config/filesystem/ 301 From dd6e3a9eb11b66bfde4b3a446860e5d062dc387b Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Mon, 30 Jun 2025 16:25:12 +0530 Subject: [PATCH 06/14] try something new --- scripts/redirects/generate_redirects.py | 41 +++++++++++++++++-------- scripts/redirects/redirects_config.json | 5 ++- 2 files changed, 31 insertions(+), 15 deletions(-) diff --git a/scripts/redirects/generate_redirects.py b/scripts/redirects/generate_redirects.py index 1f773c46..3e747c25 100644 --- a/scripts/redirects/generate_redirects.py +++ b/scripts/redirects/generate_redirects.py @@ -10,6 +10,23 @@ from pathlib import Path +def normalize_destination(destination): + """ + Normalize a destination to handle both relative paths and full URLs. + - For full URLs (starting with http/https), return as-is + - For relative paths, ensure they start with / + """ + # Check if it's a full URL + parsed = urlparse(destination) + if parsed.scheme in ('http', 'https'): + return destination + + # It's a relative path - ensure it starts with / + if not destination.startswith('/'): + destination = '/' + destination + return destination + + def normalize_path(path): """Normalize a path to ensure it starts with / and handle trailing slashes.""" if not path.startswith('/'): @@ -38,24 +55,24 @@ def generate_redirects_file(config_file, output_file): continue old_path = normalize_path(redirect['old_link']) - new_path = normalize_path(redirect['new_link']) + new_destination = normalize_destination(redirect['new_link']) status_code = redirect.get('status_code', 301) - redirects.append(f"{old_path} {new_path} {status_code}") + redirects.append(f"{old_path} {new_destination} {status_code}") # Process Snowflake redirects - # if 'snowflake' in config: - # for redirect in config['snowflake']: - # # Skip entries that still have the manual review note - # if redirect.get('_note') == "MANUALLY REVIEW AND UPDATE new_link": - # skipped_count += 1 - # continue + if 'snowflake' in config: + for redirect in config['snowflake']: + # Skip entries that still have the manual review note + if redirect.get('_note') == "MANUALLY REVIEW AND UPDATE new_link": + skipped_count += 1 + continue - # old_path = normalize_path(redirect['old_link']) - # new_path = normalize_path(redirect['new_link']) - # status_code = redirect.get('status_code', 301) + old_path = normalize_path(redirect['old_link']) + new_destination = normalize_destination(redirect['new_link']) + status_code = redirect.get('status_code', 301) - # redirects.append(f"{old_path} {new_path} {status_code}") + redirects.append(f"{old_path} {new_destination} {status_code}") # Write to output file with open(output_file, 'w') as f: diff --git a/scripts/redirects/redirects_config.json b/scripts/redirects/redirects_config.json index df80d239..0ff4165d 100644 --- a/scripts/redirects/redirects_config.json +++ b/scripts/redirects/redirects_config.json @@ -2012,9 +2012,8 @@ }, { "old_link": "/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint/", - "new_link": "/aws/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack-samples/sample-mnist-digit-recognition-sagemaker", + "status_code": 301 }, { "old_link": "/user-guide/state-management/pods-cli/", From d397e15da478d6cad2b8422df7077c45977baffd Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Mon, 30 Jun 2025 16:33:14 +0530 Subject: [PATCH 07/14] try something --- public/_redirects | 3 ++- scripts/redirects/generate_redirects.py | 20 ++++++++++---------- scripts/redirects/redirects_config.json | 2 +- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/public/_redirects b/public/_redirects index 953e19fd..418cc531 100644 --- a/public/_redirects +++ b/public/_redirects @@ -321,7 +321,8 @@ /user-guide/aws/ecr/ /aws/services/ecr 301 /user-guide/aws/stepfunctions/ /aws/services/stepfunctions 301 /references/coverage/coverage_elasticache/ /aws/services/elasticache 301 -/user-guide/state-management/pods-cli/ /aws/capabilities/state-management/pods-cli 301 +/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint/ https://github.com/localstack-samples/sample-mnist-digit-recognition-sagemaker 301 +/user-guide/state-management/pods-cli/ /aws/capabilities/state-management/cli-commands 301 /user-guide/aws/dynamodbstreams/ /aws/services/dynamodbstreams 301 /user-guide/ci/ /aws/user-guide/ci 301 /references/coverage/coverage_eks/ /aws/services/eks 301 diff --git a/scripts/redirects/generate_redirects.py b/scripts/redirects/generate_redirects.py index 3e747c25..a1dd916d 100644 --- a/scripts/redirects/generate_redirects.py +++ b/scripts/redirects/generate_redirects.py @@ -61,18 +61,18 @@ def generate_redirects_file(config_file, output_file): redirects.append(f"{old_path} {new_destination} {status_code}") # Process Snowflake redirects - if 'snowflake' in config: - for redirect in config['snowflake']: - # Skip entries that still have the manual review note - if redirect.get('_note') == "MANUALLY REVIEW AND UPDATE new_link": - skipped_count += 1 - continue + # if 'snowflake' in config: + # for redirect in config['snowflake']: + # # Skip entries that still have the manual review note + # if redirect.get('_note') == "MANUALLY REVIEW AND UPDATE new_link": + # skipped_count += 1 + # continue - old_path = normalize_path(redirect['old_link']) - new_destination = normalize_destination(redirect['new_link']) - status_code = redirect.get('status_code', 301) + # old_path = normalize_path(redirect['old_link']) + # new_destination = normalize_destination(redirect['new_link']) + # status_code = redirect.get('status_code', 301) - redirects.append(f"{old_path} {new_destination} {status_code}") + # redirects.append(f"{old_path} {new_destination} {status_code}") # Write to output file with open(output_file, 'w') as f: diff --git a/scripts/redirects/redirects_config.json b/scripts/redirects/redirects_config.json index 0ff4165d..96da0325 100644 --- a/scripts/redirects/redirects_config.json +++ b/scripts/redirects/redirects_config.json @@ -2017,7 +2017,7 @@ }, { "old_link": "/user-guide/state-management/pods-cli/", - "new_link": "/aws/capabilities/state-management/pods-cli", + "new_link": "/aws/capabilities/state-management/cli-commands", "status_code": 301 }, { From 09d249403d9b9e733ebaa46efc01d48bfdee6b99 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Mon, 30 Jun 2025 16:45:03 +0530 Subject: [PATCH 08/14] migrate many dev hub sample links --- scripts/redirects/redirects_config.json | 79 ++++++++++--------------- 1 file changed, 31 insertions(+), 48 deletions(-) diff --git a/scripts/redirects/redirects_config.json b/scripts/redirects/redirects_config.json index 96da0325..1692e534 100644 --- a/scripts/redirects/redirects_config.json +++ b/scripts/redirects/redirects_config.json @@ -72,9 +72,8 @@ }, { "old_link": "/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager/", - "new_link": "/aws/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/amazon-rds-init-cdk", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_pipes/", @@ -130,9 +129,8 @@ }, { "old_link": "/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/", - "new_link": "/aws/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/sample-fuzzy-movie-search-lambda-kinesis-elasticsearch", + "status_code": 301 }, { "old_link": "/references/regions-coverage/", @@ -158,9 +156,8 @@ }, { "old_link": "/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/", - "new_link": "/aws/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/appsync-graphql-api-sample", + "status_code": 301 }, { "old_link": "/user-guide/aws/cloudfront/", @@ -169,9 +166,8 @@ }, { "old_link": "/applications/note-taking-application-using-aws-sdk-for-javascript/", - "new_link": "/aws/applications/note-taking-application-using-aws-sdk-for-javascript", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/aws-sdk-js-notes-app", + "status_code": 301 }, { "old_link": "/user-guide/state-management/export-import-state/", @@ -286,9 +282,8 @@ }, { "old_link": "/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/", - "new_link": "/aws/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/microservices-apigateway-lambda-dynamodb-sqs-sample", + "status_code": 301 }, { "old_link": "/user-guide/lambda-tools/", @@ -392,9 +387,8 @@ }, { "old_link": "/applications/step-up-authentication-using-amazon-cognito/", - "new_link": "/aws/applications/step-up-authentication-using-amazon-cognito", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/step-up-auth-sample", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_athena/", @@ -520,9 +514,8 @@ }, { "old_link": "/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/", - "new_link": "/aws/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/serverless-image-resizer", + "status_code": 301 }, { "old_link": "/user-guide/security-testing/", @@ -695,15 +688,12 @@ }, { "old_link": "/applications/temp/", - "new_link": "/aws/applications/temp", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/sample-apps/", + "status_code": 301 }, { "old_link": "/applications/serverless-container-based-apis-with-amazon-ecs-api-gateway/", - "new_link": "/aws/applications/serverless-container-based-apis-with-amazon-ecs-api-gateway", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/serverless-api-ecs-apigateway-sample" }, { "old_link": "/user-guide/aws/s3/", @@ -911,9 +901,8 @@ }, { "old_link": "/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/", - "new_link": "/aws/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/event-driven-architecture-with-amazon-sns-fifo", + "status_code": 301 }, { "old_link": "/user-guide/aws/apigateway/", @@ -968,9 +957,8 @@ }, { "old_link": "/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses/", - "new_link": "/aws/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/sample-transcribe-app", + "status_code": 301 }, { "old_link": "/user-guide/aws/route53resolver/", @@ -1036,9 +1024,8 @@ }, { "old_link": "/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/", - "new_link": "/aws/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/loan-broker-stepfunctions-lambda-app", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_resource-groups/", @@ -1316,9 +1303,8 @@ }, { "old_link": "/applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds/", - "new_link": "/aws/applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack-samples/sample-serverless-rds-proxy-demo", + "status_code": 301 }, { "old_link": "/academy/localstack-101/why-localstack/", @@ -1692,9 +1678,8 @@ }, { "old_link": "/applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation/", - "new_link": "/aws/applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/query-data-s3-athena-glue-sample", + "status_code": 301 }, { "old_link": "/academy/localstack-101/web-app-resource-browser/", @@ -1724,9 +1709,8 @@ }, { "old_link": "/applications/messaging-processing-application-with-sqs-dynamodb-and-fargate/", - "new_link": "/aws/applications/messaging-processing-application-with-sqs-dynamodb-and-fargate", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/sqs-fargate-ddb-cdk-go", + "status_code": 301 }, { "old_link": "/user-guide/aws/mq/", @@ -1781,9 +1765,8 @@ }, { "old_link": "/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/", - "new_link": "/aws/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/shipment-list-demo", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_iotanalytics/", From 95596986ede712e6c57e1218f637be13da7d8d07 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Mon, 30 Jun 2025 16:59:36 +0530 Subject: [PATCH 09/14] some more --- public/_redirects | 18 ++++- scripts/redirects/README.md | 2 +- scripts/redirects/redirects_config.json | 32 ++++----- scripts/redirects/test_redirects.py | 92 ++++++++++++++++--------- 4 files changed, 94 insertions(+), 50 deletions(-) diff --git a/public/_redirects b/public/_redirects index 418cc531..04221e7e 100644 --- a/public/_redirects +++ b/public/_redirects @@ -6,6 +6,7 @@ /references/coverage/coverage_ec2/ /aws/services/ec2 301 /references/coverage/coverage_iotwireless/ /aws/services/iotwireless 301 /references/coverage/coverage_mwaa/ /aws/services/mwaa 301 +/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager/ https://github.com/localstack-samples/amazon-rds-init-cdk 301 /references/coverage/coverage_pipes/ /aws/services/pipes 301 /user-guide/state-management/persistence/ /aws/capabilities/state-management/persistence 301 /references/coverage/coverage_mq/ /aws/services/mq 301 @@ -14,9 +15,12 @@ /user-guide/aws/ecs/ /aws/services/ecs 301 /user-guide/aws/dms/ /aws/services/dms 301 /references/coverage/coverage_managedblockchain/ /aws/services/managedblockchain 301 +/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/ https://github.com/localstack-samples/sample-fuzzy-movie-search-lambda-kinesis-elasticsearch 301 /references/docker-images/ /aws/capabilities/config/docker-images 301 /user-guide/aws/eks/ /aws/services/eks 301 +/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/ https://github.com/localstack-samples/appsync-graphql-api-sample 301 /user-guide/aws/cloudfront/ /aws/services/cloudfront 301 +/applications/note-taking-application-using-aws-sdk-for-javascript/ https://github.com/localstack-samples/aws-sdk-js-notes-app 301 /user-guide/state-management/export-import-state/ /aws/capabilities/state-management/export-import-state 301 /references/coverage/coverage_s3control/ /aws/services/s3 301 /references/custom-tls-certificates/ /aws/capabilities/security-testing/custom-tls-certificates 301 @@ -38,6 +42,7 @@ /user-guide/integrations/devcontainers/ /aws/integrations/containers/devcontainers 301 /references/coverage/coverage_secretsmanager/ /aws/services/secretsmanager 301 /user-guide/ci/travis-ci/ /aws/integrations/continuous-integration/travis-ci 301 +/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/ https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample 301 /user-guide/lambda-tools/ /aws/tooling/lambda-tools 301 /user-guide/integrations/aws-cdk/ /aws/integrations/aws-native-tools/aws-cdk 301 /references/podman/ /aws/capabilities/config/podman 301 @@ -58,6 +63,7 @@ /references/coverage/coverage_kinesis/ /aws/services/kinesis 301 /references/coverage/coverage_autoscaling/ /aws/services/autoscaling 301 /references/coverage/coverage_kms/ /aws/services/kms 301 +/applications/step-up-authentication-using-amazon-cognito/ https://github.com/localstack-samples/step-up-auth-sample 301 /references/coverage/coverage_athena/ /aws/services/athena 301 /user-guide/aws/mediastore/ /aws/services/mediastore 301 /references/coverage/coverage_fis/ /aws/services/fis 301 @@ -74,6 +80,7 @@ /references/lambda-provider-v2/ /aws/services/lambda 301 /user-guide/web-application/ci-keys/ /aws/capabilities/web-app/ci-keys 301 /references/coverage/coverage_appconfigdata/ /aws/services/appconfig 301 +/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/ https://github.com/localstack-samples/serverless-image-resizer 301 /user-guide/security-testing/ /aws/capabilities/security-testing/ 301 /user-guide/aws/applicationautoscaling/ /aws/services/appautoscaling 301 /user-guide/aws/bedrock/ /aws/services/bedrock 301 @@ -103,6 +110,8 @@ /user-guide/aws/transfer/ /aws/services/transfer 301 /references/coverage/coverage_batch/ /aws/services/batch 301 /references/coverage/coverage_neptune/ /aws/services/neptune 301 +/applications/temp/ /aws/sample-apps/ 301 +/applications/serverless-container-based-apis-with-amazon-ecs-api-gateway/ https://github.com/localstack-samples/serverless-api-ecs-apigateway-sample 301 /user-guide/aws/s3/ /aws/services/s3 301 /user-guide/lambda-tools/vscode-extension/ /aws/tooling/lambda-tools/vscode-extension 301 /user-guide/chaos-engineering/ /aws/capabilities/chaos-engineering/ 301 @@ -139,6 +148,7 @@ /user-guide/aws/xray/ /aws/services/xray 301 /user-guide/aws/pca/ /aws/services/pca 301 /user-guide/aws/waf/ /aws/services/waf 301 +/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/ https://github.com/localstack-samples/event-driven-architecture-with-amazon-sns-fifo 301 /user-guide/aws/apigateway/ /aws/services/apigateway 301 /user-guide/integrations/cloud-custodian/ /aws/integrations/infrastructure-as-code/cloud-custodian/ 301 /references/coverage/coverage_lambda/ /aws/services/lambda 301 @@ -148,6 +158,7 @@ /user-guide/integrations/kafka/ /aws/integrations/messaging/selfmanaged-kafka-cluster/ 301 /user-guide/chaos-engineering/fault-injection-service/ /aws/capabilities/chaos-engineering/fault-injection-service 301 /references/logging/ /aws/capabilities/config/logging 301 +/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses/ https://github.com/localstack-samples/sample-transcribe-app 301 /user-guide/aws/route53resolver/ /aws/services/route53resolver 301 /references/coverage/coverage_wafv2/ /aws/services/waf 301 /user-guide/integrations/sdks/cpp/ /aws/integrations/aws-sdks/net/cpp 301 @@ -158,6 +169,7 @@ /user-guide/tools/localstack-docker-extension/ /aws/tooling/localstack-docker-extension/ 301 /user-guide/aws/cloudformation/ /aws/services/cloudformation 301 /user-guide/web-application/resource-browser/ /aws/capabilities/web-app/resource-browser 301 +/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/ https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app 301 /references/coverage/coverage_resource-groups/ /aws/services/resourcegroups 301 /user-guide/state-management/support/ /aws/capabilities/state-management/persistence-coverage 301 /references/coverage/coverage_redshift/ /aws/services/redshift 301 @@ -207,6 +219,7 @@ /user-guide/tools/ /aws/tooling/ 301 /user-guide/aws/timestream/ /aws/services/timestream 301 /references/coverage/coverage_pinpoint/ /aws/services/pinpoint 301 +/applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds/ https://github.com/localstack-samples-samples/sample-serverless-rds-proxy-demo 301 /user-guide/aws/transcribe/ /aws/services/transcribe 301 /references/coverage/coverage_cloudformation/ /aws/services/cloudformation 301 /references/coverage/coverage_apigatewayv2/ /aws/services/apigateway 301 @@ -269,10 +282,12 @@ /user-guide/integrations/architect/ /aws/integrations/app-frameworks/architect/ 301 /user-guide/integrations/gitpod/ /aws/integrations/containers/gitpod/ 301 /user-guide/aws/managedblockchain/ /aws/services/managedblockchain 301 +/applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation/ https://github.com/localstack-samples/query-data-s3-athena-glue-sample 301 /user-guide/integrations/ /aws/integrations/ 301 /user-guide/aws/codebuild/ /aws/services/codebuild 301 /user-guide/aws/ses/ /aws/services/ses 301 /references/coverage/coverage_sagemaker-runtime/ /aws/services/sagemaker 301 +/applications/messaging-processing-application-with-sqs-dynamodb-and-fargate/ https://github.com/localstack-samples/sqs-fargate-ddb-cdk-go 301 /user-guide/aws/mq/ /aws/services/mq 301 /user-guide/localstack-enterprise/kubernetes-executor/ /aws/enterprise/kubernetes-executor 301 /user-guide/aws/iot/ /aws/services/iot 301 @@ -282,6 +297,7 @@ /user-guide/localstack-enterprise/single-sign-on/ /aws/enterprise/sso 301 /user-guide/aws/redshift/ /aws/services/redshift 301 /references/coverage/coverage_verifiedpermissions/ /aws/services/verifiedpermissions 301 +/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/ https://github.com/localstack-samples/shipment-list-demo 301 /references/coverage/coverage_iotanalytics/ /aws/services/iotanalytics 301 /user-guide/integrations/chalice/ /aws/integrations/aws-native-tools/aws-chalice/ 301 /user-guide/security-testing/iam-policy-stream/ /aws/capabilities/security-testing/iam-policy-stream 301 @@ -321,7 +337,7 @@ /user-guide/aws/ecr/ /aws/services/ecr 301 /user-guide/aws/stepfunctions/ /aws/services/stepfunctions 301 /references/coverage/coverage_elasticache/ /aws/services/elasticache 301 -/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint/ https://github.com/localstack-samples/sample-mnist-digit-recognition-sagemaker 301 +/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint/ https://github.com/localstack-samples-samples/sample-mnist-digit-recognition-sagemaker 301 /user-guide/state-management/pods-cli/ /aws/capabilities/state-management/cli-commands 301 /user-guide/aws/dynamodbstreams/ /aws/services/dynamodbstreams 301 /user-guide/ci/ /aws/user-guide/ci 301 diff --git a/scripts/redirects/README.md b/scripts/redirects/README.md index 0cfee5a5..f30b92f2 100644 --- a/scripts/redirects/README.md +++ b/scripts/redirects/README.md @@ -101,7 +101,7 @@ Test your redirects against the staging environment: ```bash python test_redirects.py \ --config redirects_config.json \ - --staging-url "https://a5c92421.localstack-docs.pages.dev" \ + --staging-url "https://redirects.localstack-docs.pages.dev" \ --report redirect_test_report.md ``` diff --git a/scripts/redirects/redirects_config.json b/scripts/redirects/redirects_config.json index 1692e534..30c44cc6 100644 --- a/scripts/redirects/redirects_config.json +++ b/scripts/redirects/redirects_config.json @@ -72,7 +72,7 @@ }, { "old_link": "/applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager/", - "new_link": "https://github.com/localstack/amazon-rds-init-cdk", + "new_link": "https://github.com/localstack-samples/amazon-rds-init-cdk", "status_code": 301 }, { @@ -129,7 +129,7 @@ }, { "old_link": "/applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/", - "new_link": "https://github.com/localstack/sample-fuzzy-movie-search-lambda-kinesis-elasticsearch", + "new_link": "https://github.com/localstack-samples/sample-fuzzy-movie-search-lambda-kinesis-elasticsearch", "status_code": 301 }, { @@ -156,7 +156,7 @@ }, { "old_link": "/applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/", - "new_link": "https://github.com/localstack/appsync-graphql-api-sample", + "new_link": "https://github.com/localstack-samples/appsync-graphql-api-sample", "status_code": 301 }, { @@ -166,7 +166,7 @@ }, { "old_link": "/applications/note-taking-application-using-aws-sdk-for-javascript/", - "new_link": "https://github.com/localstack/aws-sdk-js-notes-app", + "new_link": "https://github.com/localstack-samples/aws-sdk-js-notes-app", "status_code": 301 }, { @@ -282,7 +282,7 @@ }, { "old_link": "/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/", - "new_link": "https://github.com/localstack/microservices-apigateway-lambda-dynamodb-sqs-sample", + "new_link": "https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample", "status_code": 301 }, { @@ -387,7 +387,7 @@ }, { "old_link": "/applications/step-up-authentication-using-amazon-cognito/", - "new_link": "https://github.com/localstack/step-up-auth-sample", + "new_link": "https://github.com/localstack-samples/step-up-auth-sample", "status_code": 301 }, { @@ -514,7 +514,7 @@ }, { "old_link": "/applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/", - "new_link": "https://github.com/localstack/serverless-image-resizer", + "new_link": "https://github.com/localstack-samples/serverless-image-resizer", "status_code": 301 }, { @@ -693,7 +693,7 @@ }, { "old_link": "/applications/serverless-container-based-apis-with-amazon-ecs-api-gateway/", - "new_link": "https://github.com/localstack/serverless-api-ecs-apigateway-sample" + "new_link": "https://github.com/localstack-samples/serverless-api-ecs-apigateway-sample" }, { "old_link": "/user-guide/aws/s3/", @@ -901,7 +901,7 @@ }, { "old_link": "/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/", - "new_link": "https://github.com/localstack/event-driven-architecture-with-amazon-sns-fifo", + "new_link": "https://github.com/localstack-samples/event-driven-architecture-with-amazon-sns-fifo", "status_code": 301 }, { @@ -957,7 +957,7 @@ }, { "old_link": "/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses/", - "new_link": "https://github.com/localstack/sample-transcribe-app", + "new_link": "https://github.com/localstack-samples/sample-transcribe-app", "status_code": 301 }, { @@ -1024,7 +1024,7 @@ }, { "old_link": "/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/", - "new_link": "https://github.com/localstack/loan-broker-stepfunctions-lambda-app", + "new_link": "https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app", "status_code": 301 }, { @@ -1303,7 +1303,7 @@ }, { "old_link": "/applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds/", - "new_link": "https://github.com/localstack-samples/sample-serverless-rds-proxy-demo", + "new_link": "https://github.com/localstack-samples-samples/sample-serverless-rds-proxy-demo", "status_code": 301 }, { @@ -1678,7 +1678,7 @@ }, { "old_link": "/applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation/", - "new_link": "https://github.com/localstack/query-data-s3-athena-glue-sample", + "new_link": "https://github.com/localstack-samples/query-data-s3-athena-glue-sample", "status_code": 301 }, { @@ -1709,7 +1709,7 @@ }, { "old_link": "/applications/messaging-processing-application-with-sqs-dynamodb-and-fargate/", - "new_link": "https://github.com/localstack/sqs-fargate-ddb-cdk-go", + "new_link": "https://github.com/localstack-samples/sqs-fargate-ddb-cdk-go", "status_code": 301 }, { @@ -1765,7 +1765,7 @@ }, { "old_link": "/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/", - "new_link": "https://github.com/localstack/shipment-list-demo", + "new_link": "https://github.com/localstack-samples/shipment-list-demo", "status_code": 301 }, { @@ -1995,7 +1995,7 @@ }, { "old_link": "/applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint/", - "new_link": "https://github.com/localstack-samples/sample-mnist-digit-recognition-sagemaker", + "new_link": "https://github.com/localstack-samples-samples/sample-mnist-digit-recognition-sagemaker", "status_code": 301 }, { diff --git a/scripts/redirects/test_redirects.py b/scripts/redirects/test_redirects.py index 22780ba1..d6dd77ce 100644 --- a/scripts/redirects/test_redirects.py +++ b/scripts/redirects/test_redirects.py @@ -28,7 +28,7 @@ def test_redirect(self, old_path: str, expected_new_path: str) -> Tuple[bool, st Args: old_path: Path to test (e.g., "/user-guide/") - expected_new_path: Expected redirect path (e.g., "/aws/user-guide/") + expected_new_path: Expected redirect path (e.g., "/aws/user-guide/") or external URL Returns: (success, final_url, status_code, message) @@ -47,14 +47,30 @@ def test_redirect(self, old_path: str, expected_new_path: str) -> Tuple[bool, st final_url = response.url status_code = response.status_code - # Build expected full URL - expected_staging_url = f"{self.staging_base_url}{expected_new_path}" + # Determine expected URL based on whether it's external or internal + parsed_expected = urlparse(expected_new_path) + if parsed_expected.scheme in ('http', 'https'): + # External URL - use as-is + expected_full_url = expected_new_path + else: + # Internal path - combine with staging base URL + expected_full_url = f"{self.staging_base_url}{expected_new_path}" + + # Normalize URLs for comparison (handle trailing slashes) + def normalize_url_for_comparison(url): + """Normalize URL for comparison by removing trailing slash from path""" + parsed = urlparse(url) + path = parsed.path.rstrip('/') if parsed.path != '/' else parsed.path + return f"{parsed.scheme}://{parsed.netloc}{path}{('?' + parsed.query) if parsed.query else ''}{('#' + parsed.fragment) if parsed.fragment else ''}" + + normalized_final = normalize_url_for_comparison(final_url) + normalized_expected = normalize_url_for_comparison(expected_full_url) # Check if redirect worked correctly - if final_url == expected_staging_url: + if normalized_final == normalized_expected: return True, final_url, status_code, "โœ… Redirect successful" else: - return False, final_url, status_code, f"โŒ Expected: {expected_staging_url}, Got: {final_url}" + return False, final_url, status_code, f"โŒ Expected: {expected_full_url}, Got: {final_url}" except requests.exceptions.Timeout: return False, "", 0, "โฐ Request timeout" @@ -79,7 +95,13 @@ def test_all_redirects(self, config_file: Path) -> dict: # Test AWS redirects if 'aws' in config: print(f"\n๐Ÿ” Testing AWS redirects...") - for i, redirect in enumerate(config['aws'], 1): + aws_redirects = [r for r in config['aws'] if r.get('_note') != "MANUALLY REVIEW AND UPDATE new_link"] + skipped_aws = len(config['aws']) - len(aws_redirects) + + if skipped_aws > 0: + print(f" โญ๏ธ Skipping {skipped_aws} AWS redirects with manual review notes") + + for i, redirect in enumerate(aws_redirects, 1): old_path = redirect['old_link'] new_path = redirect['new_link'] @@ -108,35 +130,41 @@ def test_all_redirects(self, config_file: Path) -> dict: time.sleep(0.5) # Test Snowflake redirects - if 'snowflake' in config: - print(f"\nโ„๏ธ Testing Snowflake redirects...") - for i, redirect in enumerate(config['snowflake'], 1): - old_path = redirect['old_link'] - new_path = redirect['new_link'] + # if 'snowflake' in config: + # print(f"\nโ„๏ธ Testing Snowflake redirects...") + # snowflake_redirects = [r for r in config['snowflake'] if r.get('_note') != "MANUALLY REVIEW AND UPDATE new_link"] + # skipped_snowflake = len(config['snowflake']) - len(snowflake_redirects) + + # if skipped_snowflake > 0: + # print(f" โญ๏ธ Skipping {skipped_snowflake} Snowflake redirects with manual review notes") + + # for i, redirect in enumerate(snowflake_redirects, 1): + # old_path = redirect['old_link'] + # new_path = redirect['new_link'] - print(f" [{i}] Testing: {old_path}") - success, final_url, status_code, message = self.test_redirect(old_path, new_path) + # print(f" [{i}] Testing: {old_path}") + # success, final_url, status_code, message = self.test_redirect(old_path, new_path) - results['total'] += 1 - if success: - results['passed'] += 1 - print(f" {message}") - else: - results['failed'] += 1 - print(f" {message}") + # results['total'] += 1 + # if success: + # results['passed'] += 1 + # print(f" {message}") + # else: + # results['failed'] += 1 + # print(f" {message}") - results['details'].append({ - 'product': 'snowflake', - 'old_url': old_path, - 'expected_new_url': new_path, - 'final_url': final_url, - 'status_code': status_code, - 'success': success, - 'message': message - }) + # results['details'].append({ + # 'product': 'snowflake', + # 'old_url': old_path, + # 'expected_new_url': new_path, + # 'final_url': final_url, + # 'status_code': status_code, + # 'success': success, + # 'message': message + # }) - # Small delay to be respectful - time.sleep(0.5) + # # Small delay to be respectful + # time.sleep(0.5) return results @@ -238,4 +266,4 @@ def main(): if __name__ == "__main__": - exit(main()) \ No newline at end of file + exit(main()) From 322e4b6eacee49bd64b510bbacf69270be673190 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Mon, 30 Jun 2025 22:23:22 +0530 Subject: [PATCH 10/14] new redirects --- public/_redirects | 14 ++++++++ scripts/redirects/redirects_config.json | 44 +++++++++---------------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/public/_redirects b/public/_redirects index 04221e7e..03cb0074 100644 --- a/public/_redirects +++ b/public/_redirects @@ -2,6 +2,7 @@ /user-guide/aws/batch/ /aws/services/batch 301 /references/coverage/coverage_scheduler/ /aws/services/scheduler 301 /user-guide/extensions/ /aws/capabilities/extensions 301 +/tutorials/s3-static-website-terraform/ /aws/tutorials/s3-static-website-terraform 301 /references/coverage/coverage_rds-data/ /aws/services/rds 301 /references/coverage/coverage_ec2/ /aws/services/ec2 301 /references/coverage/coverage_iotwireless/ /aws/services/iotwireless 301 @@ -16,6 +17,7 @@ /user-guide/aws/dms/ /aws/services/dms 301 /references/coverage/coverage_managedblockchain/ /aws/services/managedblockchain 301 /applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/ https://github.com/localstack-samples/sample-fuzzy-movie-search-lambda-kinesis-elasticsearch 301 +/tutorials/elb-load-balancing/ /aws/tutorials/elb-load-balancing 301 /references/docker-images/ /aws/capabilities/config/docker-images 301 /user-guide/aws/eks/ /aws/services/eks 301 /applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/ https://github.com/localstack-samples/appsync-graphql-api-sample 301 @@ -73,6 +75,7 @@ /references/coverage/coverage_elasticbeanstalk/ /aws/services/elasticbeanstalk 301 /user-guide/web-application/instance-management/ /aws/capabilities/web-app/instance-management 301 /references/coverage/coverage_qldb/ /aws/services/qldb 301 +/tutorials/reproducible-machine-learning-cloud-pods/ /aws/tutorials/reproducible-machine-learning-cloud-pods 301 /references/coverage/coverage_ecs/ /aws/services/ecs 301 /references/coverage/coverage_acm/ /aws/services/acm 301 /references/coverage/coverage_cloudtrail/ /aws/services/cloudtrail 301 @@ -104,6 +107,7 @@ /references/coverage/coverage_iam/ /aws/services/iam 301 /user-guide/tools/localsurf/ /aws/tooling/localsurf 301 /user-guide/extensions/extensions-library/ /aws/tooling/extensions/extensions-library 301 +/tutorials/ecs-ecr-container-app/ /aws/tutorials/ecs-ecr-container-app 301 /references/coverage/coverage_elastictranscoder/ /aws/services/elastictranscoder 301 /user-guide/aws/feature-coverage/ /aws/services/ 301 /user-guide/aws/lambda/ /aws/services/lambda 301 @@ -141,6 +145,7 @@ /user-guide/integrations/serverless-framework/ /aws/integrations/app-frameworks/serverless-framework 301 /references/coverage/coverage_sqs/ /aws/services/sqs 301 /user-guide/aws/appsync/ /aws/services/appsync 301 +/tutorials/schema-evolution-glue-msk/ /aws/tutorials/schema-evolution-glue-msk 301 /user-guide/ci/bitbucket/ /aws/integrations/continuous-integration/bitbucket 301 /user-guide/aws/scheduler/ /aws/services/scheduler 301 /user-guide/integrations/quarkus/ /aws/integrations/app-frameworks/quarkus 301 @@ -158,6 +163,7 @@ /user-guide/integrations/kafka/ /aws/integrations/messaging/selfmanaged-kafka-cluster/ 301 /user-guide/chaos-engineering/fault-injection-service/ /aws/capabilities/chaos-engineering/fault-injection-service 301 /references/logging/ /aws/capabilities/config/logging 301 +/tutorials/java-notification-app/ /aws/tutorials/java-notification-app 301 /applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses/ https://github.com/localstack-samples/sample-transcribe-app 301 /user-guide/aws/route53resolver/ /aws/services/route53resolver 301 /references/coverage/coverage_wafv2/ /aws/services/waf 301 @@ -165,9 +171,11 @@ /user-guide/integrations/testcontainers/ /aws/integrations/testing/testcontainers 301 /references/internal-endpoints/ /aws/capabilities/networking/internal-endpoints 301 /user-guide/aws/iotanalytics/ /aws/services/iotanalytics 301 +/tutorials/lambda-ecr-container-images/ /aws/tutorials/lambda-ecr-container-images 301 /user-guide/aws/fis/ /aws/services/fis 301 /user-guide/tools/localstack-docker-extension/ /aws/tooling/localstack-docker-extension/ 301 /user-guide/aws/cloudformation/ /aws/services/cloudformation 301 +/tutorials/route-53-failover/ /aws/tutorials/route-53-failover 301 /user-guide/web-application/resource-browser/ /aws/capabilities/web-app/resource-browser 301 /applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/ https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app 301 /references/coverage/coverage_resource-groups/ /aws/services/resourcegroups 301 @@ -182,7 +190,9 @@ /user-guide/aws/athena/ /aws/services/athena 301 /user-guide/extensions/official-extensions/ /aws/tooling/extensions/official-extensions 301 /user-guide/aws/textract/ /aws/services/textract 301 +/tutorials/iam-policy-stream/ /aws/tutorials/iam-policy-stream 301 /references/coverage/coverage_ses/ /aws/services/ses 301 +/tutorials/gitlab_ci_testcontainers/ /aws/tutorials/gitlab-ci-testcontainers 301 /user-guide/integrations/aws-sam/ /aws/integrations/aws-native-tools/aws-sam 301 /user-guide/aws/firehose/ /aws/services/firehose 301 /user-guide/web-application/ /aws/capabilities/web-app/ 301 @@ -229,6 +239,7 @@ /user-guide/cloud-sandbox/ephemeral-instance/ /aws/capabilities/cloud-sandbox/ephemeral-instance 301 /references/coverage/coverage_timestream-write/ /aws/services/timestream 301 /user-guide/aws/pinpoint/ /aws/services/pinpoint 301 +/tutorials/cloud-pods-collaborative-debugging/ /aws/tutorials/cloud-pods-collaborative-debugging 301 /references/coverage/coverage_emr/ /aws/services/emr 301 /user-guide/aws/iam/ /aws/services/iam 301 /references/coverage/coverage_codepipeline/ /aws/services/codepipeline 301 @@ -240,6 +251,7 @@ /references/coverage/coverage_events/ /aws/services/events 301 /references/coverage/coverage_timestream-query/ /aws/services/timestream 301 /references/network-troubleshooting/endpoint-url/ /aws/capabilities/networking/endpoint-url 301 +/tutorials/ephemeral-application-previews/ /aws/tutorials/ephemeral-application-previews 301 /user-guide/web-application/accounts/ /aws/capabilities/web-app/accounts 301 /references/coverage/coverage_appsync/ /aws/services/appsync 301 /references/coverage/coverage_ecr/ /aws/services/ecr 301 @@ -316,6 +328,7 @@ /user-guide/aws/identitystore/ /aws/services/identitystore 301 /references/coverage/coverage_redshift-data/ /aws/services/redshift 301 /user-guide/aws/elasticache/ /aws/services/elasticache 301 +/tutorials/using-terraform-with-testcontainers-and-localstack/ /aws/tutorials/using-terraform-with-testcontainers-and-localstack 301 /references/coverage/coverage_cloudfront/ /aws/services/cloudfront 301 /user-guide/tools/localstack-sdk/java/ /aws/user-guide/tools/localstack-sdk/java 301 /user-guide/aws/codecommit/ /aws/services/codecommit 301 @@ -326,6 +339,7 @@ /references/coverage/coverage_support/ /aws/services/support 301 /user-guide/ /aws/ 301 /user-guide/aws/qldb/ /aws/services/qldb 301 +/tutorials/simulating-outages/ /aws/tutorials/simulating-outages 301 /user-guide/aws/acm/ /aws/services/acm 301 /user-guide/integrations/sdks/php/ /aws/integrations/aws-sdks/net/php 301 /references/coverage/coverage_sns/ /aws/services/sns 301 diff --git a/scripts/redirects/redirects_config.json b/scripts/redirects/redirects_config.json index 30c44cc6..8ef0a17f 100644 --- a/scripts/redirects/redirects_config.json +++ b/scripts/redirects/redirects_config.json @@ -29,8 +29,7 @@ { "old_link": "/tutorials/s3-static-website-terraform/", "new_link": "/aws/tutorials/s3-static-website-terraform", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_sso-admin/", @@ -141,8 +140,7 @@ { "old_link": "/tutorials/elb-load-balancing/", "new_link": "/aws/tutorials/elb-load-balancing", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/docker-images/", @@ -468,8 +466,7 @@ { "old_link": "/tutorials/reproducible-machine-learning-cloud-pods/", "new_link": "/aws/tutorials/reproducible-machine-learning-cloud-pods", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_ecs/", @@ -647,8 +644,7 @@ { "old_link": "/tutorials/ecs-ecr-container-app/", "new_link": "/aws/tutorials/ecs-ecr-container-app", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_elastictranscoder/", @@ -849,8 +845,7 @@ { "old_link": "/tutorials/schema-evolution-glue-msk/", "new_link": "/aws/tutorials/schema-evolution-glue-msk", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/ci/bitbucket/", @@ -952,8 +947,7 @@ { "old_link": "/tutorials/java-notification-app/", "new_link": "/aws/tutorials/java-notification-app", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses/", @@ -993,8 +987,7 @@ { "old_link": "/tutorials/lambda-ecr-container-images/", "new_link": "/aws/tutorials/lambda-ecr-container-images", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/fis/", @@ -1014,8 +1007,7 @@ { "old_link": "/tutorials/route-53-failover/", "new_link": "/aws/tutorials/route-53-failover", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/web-application/resource-browser/", @@ -1096,8 +1088,7 @@ { "old_link": "/tutorials/iam-policy-stream/", "new_link": "/aws/tutorials/iam-policy-stream", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_ses/", @@ -1106,9 +1097,8 @@ }, { "old_link": "/tutorials/gitlab_ci_testcontainers/", - "new_link": "/aws/tutorials/gitlab_ci_testcontainers", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/tutorials/gitlab-ci-testcontainers", + "status_code": 301 }, { "old_link": "/user-guide/integrations/aws-sam/", @@ -1360,8 +1350,7 @@ { "old_link": "/tutorials/cloud-pods-collaborative-debugging/", "new_link": "/aws/tutorials/cloud-pods-collaborative-debugging", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_emr/", @@ -1433,8 +1422,7 @@ { "old_link": "/tutorials/ephemeral-application-previews/", "new_link": "/aws/tutorials/ephemeral-application-previews", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/web-application/accounts/", @@ -1867,8 +1855,7 @@ { "old_link": "/tutorials/using-terraform-with-testcontainers-and-localstack/", "new_link": "/aws/tutorials/using-terraform-with-testcontainers-and-localstack", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_cloudfront/", @@ -1929,8 +1916,7 @@ { "old_link": "/tutorials/simulating-outages/", "new_link": "/aws/tutorials/simulating-outages", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/user-guide/aws/acm/", From c0618cb55412c4c0cae8c5863dd61c4371209775 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Mon, 30 Jun 2025 23:11:38 +0530 Subject: [PATCH 11/14] more redirects --- public/_redirects | 13 + scripts/redirects/redirect_test_report.md | 2255 +++++++++++++++++++++ scripts/redirects/redirects_config.json | 59 +- 3 files changed, 2291 insertions(+), 36 deletions(-) create mode 100644 scripts/redirects/redirect_test_report.md diff --git a/public/_redirects b/public/_redirects index 03cb0074..03443281 100644 --- a/public/_redirects +++ b/public/_redirects @@ -1,3 +1,4 @@ +/legal/third-party-software-tools/ /aws/legal/third-party-software-tools 301 /references/coverage/coverage_elb/ /aws/services/elb 301 /user-guide/aws/batch/ /aws/services/batch 301 /references/coverage/coverage_scheduler/ /aws/services/scheduler 301 @@ -5,6 +6,8 @@ /tutorials/s3-static-website-terraform/ /aws/tutorials/s3-static-website-terraform 301 /references/coverage/coverage_rds-data/ /aws/services/rds 301 /references/coverage/coverage_ec2/ /aws/services/ec2 301 +/references/licensing/ /aws/licensing 301 +/legal/ /aws/legal/third-party-software-tools 301 /references/coverage/coverage_iotwireless/ /aws/services/iotwireless 301 /references/coverage/coverage_mwaa/ /aws/services/mwaa 301 /applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager/ https://github.com/localstack-samples/amazon-rds-init-cdk 301 @@ -14,9 +17,11 @@ /references/coverage/coverage_xray/ /aws/services/xray 301 /references/coverage/coverage_cognito-identity/ /aws/services/cognito 301 /user-guide/aws/ecs/ /aws/services/ecs 301 +/references/usage-tracking/ /aws/capabilities/config/usage-tracking 301 /user-guide/aws/dms/ /aws/services/dms 301 /references/coverage/coverage_managedblockchain/ /aws/services/managedblockchain 301 /applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/ https://github.com/localstack-samples/sample-fuzzy-movie-search-lambda-kinesis-elasticsearch 301 +/references/regions-coverage/ /aws/capabilities/config/regions-coverage/ 301 /tutorials/elb-load-balancing/ /aws/tutorials/elb-load-balancing 301 /references/docker-images/ /aws/capabilities/config/docker-images 301 /user-guide/aws/eks/ /aws/services/eks 301 @@ -71,10 +76,13 @@ /references/coverage/coverage_fis/ /aws/services/fis 301 /user-guide/aws/logs/ /aws/services/cloudwatchlogs 301 /user-guide/cloud-sandbox/ /aws/capabilities/cloud-sandbox 301 +/user-guide/localstack-enterprise/ci-analytics/ /aws/enterprise/ci-analytics 301 +/references/changelog/ /aws/changelog 301 /references/credentials/ /aws/capabilities/config/credentials 301 /references/coverage/coverage_elasticbeanstalk/ /aws/services/elasticbeanstalk 301 /user-guide/web-application/instance-management/ /aws/capabilities/web-app/instance-management 301 /references/coverage/coverage_qldb/ /aws/services/qldb 301 +/references/cross-account-access/ /aws/capabilities/config/cross-account-access 301 /tutorials/reproducible-machine-learning-cloud-pods/ /aws/tutorials/reproducible-machine-learning-cloud-pods 301 /references/coverage/coverage_ecs/ /aws/services/ecs 301 /references/coverage/coverage_acm/ /aws/services/acm 301 @@ -101,6 +109,7 @@ /references/coverage/coverage_ce/ /aws/services/ce 301 /user-guide/extensions/getting-started/ /aws/tooling/extensions/getting-started 301 /user-guide/integrations/sdks/ /aws/integrations/aws-sdks/ 301 +/user-guide/localstack-enterprise/single-sign-on/azure-ad/ /aws/enterprise/sso/azure-ad 301 /user-guide/tools/localstack-desktop/ /aws/capabilities/web-app/localstack-desktop 301 /references/coverage/coverage_es/ /aws/services/es 301 /user-guide/integrations/sdks/javascript/ /aws/integrations/aws-sdks/net/javascript 301 @@ -111,6 +120,7 @@ /references/coverage/coverage_elastictranscoder/ /aws/services/elastictranscoder 301 /user-guide/aws/feature-coverage/ /aws/services/ 301 /user-guide/aws/lambda/ /aws/services/lambda 301 +/references/iam-coverage/ /aws/capabilities/security-testing/iam-coverage/ 301 /user-guide/aws/transfer/ /aws/services/transfer 301 /references/coverage/coverage_batch/ /aws/services/batch 301 /references/coverage/coverage_neptune/ /aws/services/neptune 301 @@ -197,6 +207,7 @@ /user-guide/aws/firehose/ /aws/services/firehose 301 /user-guide/web-application/ /aws/capabilities/web-app/ 301 /references/coverage/coverage_sagemaker/ /aws/services/sagemaker 301 +/references/arm64-support/ /aws/capabilities/config/arm64-support/ 301 /user-guide/aws/shield/ /aws/services/shield 301 /user-guide/integrations/terraform/ /aws/integrations/infrastructure-as-code/terraform 301 /user-guide/aws/es/ /aws/services/es 301 @@ -271,6 +282,7 @@ /references/coverage/coverage_s3/ /aws/services/s3 301 /user-guide/aws/emr/ /aws/services/emr 301 /user-guide/tools/dns-server/ /aws/tooling/dns-server 301 +/user-guide/chaos-engineering/chaos-application-dashboard/ /aws/capabilities/chaos-engineering/chaos-application-dashboard 301 /references/coverage/coverage_route53/ /aws/services/route53 301 /references/coverage/coverage_dynamodbstreams/ /aws/services/dynamodbstreams 301 /references/coverage/coverage_dynamodb/ /aws/services/dynamodb 301 @@ -331,6 +343,7 @@ /tutorials/using-terraform-with-testcontainers-and-localstack/ /aws/tutorials/using-terraform-with-testcontainers-and-localstack 301 /references/coverage/coverage_cloudfront/ /aws/services/cloudfront 301 /user-guide/tools/localstack-sdk/java/ /aws/user-guide/tools/localstack-sdk/java 301 +/references/network-troubleshooting/readme/ /aws/capabilities/networking/ 301 /user-guide/aws/codecommit/ /aws/services/codecommit 301 /references/coverage/coverage_swf/ /aws/services/swf 301 /user-guide/integrations/sdks/go/ /aws/integrations/aws-sdks/net/go 301 diff --git a/scripts/redirects/redirect_test_report.md b/scripts/redirects/redirect_test_report.md new file mode 100644 index 00000000..443bd988 --- /dev/null +++ b/scripts/redirects/redirect_test_report.md @@ -0,0 +1,2255 @@ +# LocalStack Redirect Test Report +**Generated:** 2025-06-30 22:36:30 +**Staging URL:** https://redirects.localstack-docs.pages.dev + +## Summary +- **Total tests:** 370 +- **Passed:** 366 โœ… +- **Failed:** 4 โŒ +- **Success rate:** 98.9% + +## Failed Tests +### AWS: /applications/note-taking-application-using-aws-sdk-for-javascript/ +- **Expected:** https://github.com/localstack-samples/aws-sdk-js-notes-app +- **Got:** https://github.com/localstack-samples/sample-notes-app-dynamodb-lambda-apigateway +- **Status:** 200 +- **Message:** โŒ Expected: https://github.com/localstack-samples/aws-sdk-js-notes-app, Got: https://github.com/localstack-samples/sample-notes-app-dynamodb-lambda-apigateway + +### AWS: /applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/ +- **Expected:** https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample +- **Got:** https://github.com/localstack-samples/sample-microservices-apigateway-lambda-dynamodb-sqs +- **Status:** 200 +- **Message:** โŒ Expected: https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample, Got: https://github.com/localstack-samples/sample-microservices-apigateway-lambda-dynamodb-sqs + +### AWS: /applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/ +- **Expected:** https://github.com/localstack-samples/event-driven-architecture-with-amazon-sns-fifo +- **Got:** https://github.com/localstack-samples/sample-sam-sns-fifo-dynamodb-lambda +- **Status:** 200 +- **Message:** โŒ Expected: https://github.com/localstack-samples/event-driven-architecture-with-amazon-sns-fifo, Got: https://github.com/localstack-samples/sample-sam-sns-fifo-dynamodb-lambda + +### AWS: /applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/ +- **Expected:** https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app +- **Got:** https://github.com/localstack-samples/sample-loan-broker-stepfunctions-lambda +- **Status:** 200 +- **Message:** โŒ Expected: https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app, Got: https://github.com/localstack-samples/sample-loan-broker-stepfunctions-lambda + +## All Test Details +### โœ… AWS: /references/coverage/coverage_elb/ +- **Expected:** /aws/services/elb +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elb/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/batch/ +- **Expected:** /aws/services/batch +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/batch/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_scheduler/ +- **Expected:** /aws/services/scheduler +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/scheduler/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/extensions/ +- **Expected:** /aws/capabilities/extensions +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/extensions +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/s3-static-website-terraform/ +- **Expected:** /aws/tutorials/s3-static-website-terraform +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/s3-static-website-terraform/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_rds-data/ +- **Expected:** /aws/services/rds +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/rds/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_ec2/ +- **Expected:** /aws/services/ec2 +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ec2/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_iotwireless/ +- **Expected:** /aws/services/iotwireless +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotwireless/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_mwaa/ +- **Expected:** /aws/services/mwaa +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mwaa/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager/ +- **Expected:** https://github.com/localstack-samples/amazon-rds-init-cdk +- **Final URL:** https://github.com/localstack-samples/amazon-rds-init-cdk +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_pipes/ +- **Expected:** /aws/services/pipes +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/pipes/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/state-management/persistence/ +- **Expected:** /aws/capabilities/state-management/persistence +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/persistence/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_mq/ +- **Expected:** /aws/services/mq +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mq/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_xray/ +- **Expected:** /aws/services/xray +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/xray/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_cognito-identity/ +- **Expected:** /aws/services/cognito +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cognito/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/ecs/ +- **Expected:** /aws/services/ecs +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ecs/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/dms/ +- **Expected:** /aws/services/dms +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/dms/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_managedblockchain/ +- **Expected:** /aws/services/managedblockchain +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/managedblockchain/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/ +- **Expected:** https://github.com/localstack-samples/sample-fuzzy-movie-search-lambda-kinesis-elasticsearch +- **Final URL:** https://github.com/localstack-samples/sample-fuzzy-movie-search-lambda-kinesis-elasticsearch +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/elb-load-balancing/ +- **Expected:** /aws/tutorials/elb-load-balancing +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/elb-load-balancing/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/docker-images/ +- **Expected:** /aws/capabilities/config/docker-images +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/docker-images/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/eks/ +- **Expected:** /aws/services/eks +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/eks/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/ +- **Expected:** https://github.com/localstack-samples/appsync-graphql-api-sample +- **Final URL:** https://github.com/localstack-samples/appsync-graphql-api-sample +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/cloudfront/ +- **Expected:** /aws/services/cloudfront +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudfront/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โŒ AWS: /applications/note-taking-application-using-aws-sdk-for-javascript/ +- **Expected:** https://github.com/localstack-samples/aws-sdk-js-notes-app +- **Final URL:** https://github.com/localstack-samples/sample-notes-app-dynamodb-lambda-apigateway +- **Status Code:** 200 +- **Message:** โŒ Expected: https://github.com/localstack-samples/aws-sdk-js-notes-app, Got: https://github.com/localstack-samples/sample-notes-app-dynamodb-lambda-apigateway + +### โœ… AWS: /user-guide/state-management/export-import-state/ +- **Expected:** /aws/capabilities/state-management/export-import-state +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/export-import-state/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_s3control/ +- **Expected:** /aws/services/s3 +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/s3/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/custom-tls-certificates/ +- **Expected:** /aws/capabilities/security-testing/custom-tls-certificates +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/security-testing/custom-tls-certificates/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_codecommit/ +- **Expected:** /aws/services/codecommit +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codecommit/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/localstack-enterprise/enterprise-image/ +- **Expected:** /aws/enterprise/enterprise-image +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/enterprise-image/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/tools/testing-utils/ +- **Expected:** /aws/tooling/testing-utils +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/testing-utils/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/codedeploy/ +- **Expected:** /aws/services/codedeploy +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codedeploy/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_serverlessrepo/ +- **Expected:** /aws/services/serverlessrepo +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/serverlessrepo/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/resource_groups/ +- **Expected:** /aws/services/resource_groups +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/resource_groups +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_glue/ +- **Expected:** /aws/services/glue +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/glue/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/ssm/ +- **Expected:** /aws/services/ssm +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ssm/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_sts/ +- **Expected:** /aws/services/sts +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sts/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/iotwireless/ +- **Expected:** /aws/services/iotwireless +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotwireless/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/sdks/python/ +- **Expected:** /aws/integrations/aws-sdks/net/python +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/python +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/crossplane/ +- **Expected:** /aws/integrations/infrastructure-as-code/crossplane +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/infrastructure-as-code/crossplane/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_elbv2/ +- **Expected:** /aws/services/elb +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elb/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/openshift/ +- **Expected:** /aws/integrations/containers/openshift +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/containers/openshift/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/memorydb/ +- **Expected:** /aws/services/memorydb +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/memorydb/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/devcontainers/ +- **Expected:** /aws/integrations/containers/devcontainers +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/containers/devcontainers/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_secretsmanager/ +- **Expected:** /aws/services/secretsmanager +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/secretsmanager/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/ci/travis-ci/ +- **Expected:** /aws/integrations/continuous-integration/travis-ci +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/continuous-integration/travis-ci/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โŒ AWS: /applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/ +- **Expected:** https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample +- **Final URL:** https://github.com/localstack-samples/sample-microservices-apigateway-lambda-dynamodb-sqs +- **Status Code:** 200 +- **Message:** โŒ Expected: https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample, Got: https://github.com/localstack-samples/sample-microservices-apigateway-lambda-dynamodb-sqs + +### โœ… AWS: /user-guide/lambda-tools/ +- **Expected:** /aws/tooling/lambda-tools +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/lambda-tools/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/aws-cdk/ +- **Expected:** /aws/integrations/aws-native-tools/aws-cdk +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-native-tools/aws-cdk/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/podman/ +- **Expected:** /aws/capabilities/config/podman +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/podman/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_memorydb/ +- **Expected:** /aws/services/memorydb +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/memorydb/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/former2/ +- **Expected:** /aws/integrations/infrastructure-as-code/former2 +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/infrastructure-as-code/former2/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/localstack-enterprise/k8s-operator/ +- **Expected:** /aws/enterprise/k8s-operator +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/k8s-operator/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/aws-cli/ +- **Expected:** /aws/integrations/aws-native-tools/aws-cli +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-native-tools/aws-cli/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_kinesisanalyticsv2/ +- **Expected:** /aws/services/apacheflink +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/apacheflink/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_amplify/ +- **Expected:** /aws/services/amplify +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/amplify/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/events/ +- **Expected:** /aws/services/events +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/events/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/pipes/ +- **Expected:** /aws/services/pipes +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/pipes/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/ci/circle-ci/ +- **Expected:** /aws/integrations/continuous-integration/circle-ci +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/continuous-integration/circle-ci +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/network-troubleshooting/transparent-endpoint-injection/ +- **Expected:** /aws/capabilities/networking/transparent-endpoint-injection +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/transparent-endpoint-injection/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_kafka/ +- **Expected:** /aws/services/msk +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/msk/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_servicediscovery/ +- **Expected:** /aws/services/servicediscovery +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/servicediscovery/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_apigateway/ +- **Expected:** /aws/services/apigateway +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/apigateway/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/ +- **Expected:** /aws/tutorials +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_kinesis/ +- **Expected:** /aws/services/kinesis +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kinesis/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_autoscaling/ +- **Expected:** /aws/services/autoscaling +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/autoscaling/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_kms/ +- **Expected:** /aws/services/kms +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kms/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/step-up-authentication-using-amazon-cognito/ +- **Expected:** https://github.com/localstack-samples/step-up-auth-sample +- **Final URL:** https://github.com/localstack-samples/step-up-auth-sample +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_athena/ +- **Expected:** /aws/services/athena +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/athena/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/mediastore/ +- **Expected:** /aws/services/mediastore +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mediastore/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_fis/ +- **Expected:** /aws/services/fis +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/fis/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/logs/ +- **Expected:** /aws/services/cloudwatchlogs +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudwatchlogs/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/cloud-sandbox/ +- **Expected:** /aws/capabilities/cloud-sandbox +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/cloud-sandbox/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/credentials/ +- **Expected:** /aws/capabilities/config/credentials +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/credentials/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_elasticbeanstalk/ +- **Expected:** /aws/services/elasticbeanstalk +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elasticbeanstalk/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/web-application/instance-management/ +- **Expected:** /aws/capabilities/web-app/instance-management +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/instance-management/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_qldb/ +- **Expected:** /aws/services/qldb +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/qldb/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/reproducible-machine-learning-cloud-pods/ +- **Expected:** /aws/tutorials/reproducible-machine-learning-cloud-pods +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/reproducible-machine-learning-cloud-pods/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_ecs/ +- **Expected:** /aws/services/ecs +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ecs/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_acm/ +- **Expected:** /aws/services/acm +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/acm/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_cloudtrail/ +- **Expected:** /aws/services/cloudtrail +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudtrail/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/ +- **Expected:** /aws/services/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/lambda-provider-v2/ +- **Expected:** /aws/services/lambda +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/lambda/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/web-application/ci-keys/ +- **Expected:** /aws/capabilities/web-app/ci-keys +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/ci-keys +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_appconfigdata/ +- **Expected:** /aws/services/appconfig +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appconfig/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/ +- **Expected:** https://github.com/localstack-samples/serverless-image-resizer +- **Final URL:** https://github.com/localstack-samples/serverless-image-resizer +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/security-testing/ +- **Expected:** /aws/capabilities/security-testing/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/security-testing/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/applicationautoscaling/ +- **Expected:** /aws/services/appautoscaling +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appautoscaling/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/bedrock/ +- **Expected:** /aws/services/bedrock +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/bedrock/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/sts/ +- **Expected:** /aws/services/sts +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sts/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/docdb/ +- **Expected:** /aws/services/docdb +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/docdb/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/tools/transparent-endpoint-injection/ +- **Expected:** /aws/capabilities/networking/transparent-endpoint-injection +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/transparent-endpoint-injection/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/account/ +- **Expected:** /aws/services/account +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/account/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_efs/ +- **Expected:** /aws/services/efs +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/efs/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/localstack-enterprise/ +- **Expected:** /aws/enterprise/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /getting-started/auth-token/ +- **Expected:** /aws/getting-started/auth-token +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/auth-token/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/localstack-enterprise/enterprise-support/ +- **Expected:** /aws/enterprise/enterprise-support +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/enterprise-support/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/support/ +- **Expected:** /aws/services/support +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/support/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_resourcegroupstaggingapi/ +- **Expected:** /aws/services/resourcegroups +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/resourcegroups/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/external-ports/ +- **Expected:** /aws/capabilities/networking/external-port-range +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/external-port-range/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_ce/ +- **Expected:** /aws/services/ce +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ce/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/extensions/getting-started/ +- **Expected:** /aws/tooling/extensions/getting-started +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/extensions/getting-started/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/sdks/ +- **Expected:** /aws/integrations/aws-sdks/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/tools/localstack-desktop/ +- **Expected:** /aws/capabilities/web-app/localstack-desktop +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/localstack-desktop/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_es/ +- **Expected:** /aws/services/es +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/es/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/sdks/javascript/ +- **Expected:** /aws/integrations/aws-sdks/net/javascript +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/javascript +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_iam/ +- **Expected:** /aws/services/iam +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iam/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/tools/localsurf/ +- **Expected:** /aws/tooling/localsurf +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/localsurf/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/extensions/extensions-library/ +- **Expected:** /aws/tooling/extensions/extensions-library +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/extensions/extensions-library/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/ecs-ecr-container-app/ +- **Expected:** /aws/tutorials/ecs-ecr-container-app +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/ecs-ecr-container-app/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_elastictranscoder/ +- **Expected:** /aws/services/elastictranscoder +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elastictranscoder/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/feature-coverage/ +- **Expected:** /aws/services/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/lambda/ +- **Expected:** /aws/services/lambda +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/lambda/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/transfer/ +- **Expected:** /aws/services/transfer +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/transfer/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_batch/ +- **Expected:** /aws/services/batch +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/batch/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_neptune/ +- **Expected:** /aws/services/neptune +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/neptune/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/temp/ +- **Expected:** /aws/sample-apps/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/sample-apps/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/serverless-container-based-apis-with-amazon-ecs-api-gateway/ +- **Expected:** https://github.com/localstack-samples/serverless-api-ecs-apigateway-sample +- **Final URL:** https://github.com/localstack-samples/serverless-api-ecs-apigateway-sample +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/s3/ +- **Expected:** /aws/services/s3 +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/s3/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/lambda-tools/vscode-extension/ +- **Expected:** /aws/tooling/lambda-tools/vscode-extension +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/lambda-tools/vscode-extension/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/chaos-engineering/ +- **Expected:** /aws/capabilities/chaos-engineering/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/chaos-engineering/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /persistence/supported/ +- **Expected:** /aws/capabilities/state-management/persistence-coverage +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/persistence-coverage/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/ce/ +- **Expected:** /aws/services/ce +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ce/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/kinesisanalyticsv2/ +- **Expected:** /aws/services/kinesisanalyticsv2 +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kinesisanalyticsv2 +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/state-management/cloud-pods/ +- **Expected:** /aws/capabilities/state-management/cloud-pods +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/cloud-pods/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_transcribe/ +- **Expected:** /aws/services/transcribe +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/transcribe/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_mediastore-data/ +- **Expected:** /aws/services/mediastore +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mediastore/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/route53/ +- **Expected:** /aws/services/route53 +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/route53/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/config/ +- **Expected:** /aws/services/config +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/config/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_identitystore/ +- **Expected:** /aws/services/identitystore +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/identitystore/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_codedeploy/ +- **Expected:** /aws/services/codedeploy +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codedeploy/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/msk/ +- **Expected:** /aws/services/msk +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/msk/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/state-management/ +- **Expected:** /aws/capabilities/state-management/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/copilot/ +- **Expected:** /aws/integrations/aws-native-tools/aws-copilot-cli/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-native-tools/aws-copilot-cli/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/eksctl/ +- **Expected:** /aws/integrations/containers/eksctl/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/containers/eksctl/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /getting-started/faq/ +- **Expected:** /aws/getting-started/faq +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/faq/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/elb/ +- **Expected:** /aws/services/elb +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elb/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/kubernetes/ +- **Expected:** /aws/integrations/containers/kubernetes/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/containers/kubernetes/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/lakeformation/ +- **Expected:** /aws/services/lakeformation +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/lakeformation/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_firehose/ +- **Expected:** /aws/services/firehose +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/firehose/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/verifiedpermissions/ +- **Expected:** /aws/services/verifiedpermissions +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/verifiedpermissions/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_kinesisanalytics/ +- **Expected:** /aws/services/kinesisanalytics +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kinesisanalytics/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/sns/ +- **Expected:** /aws/services/sns +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sns/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/tools/aws-replicator/ +- **Expected:** /aws/tooling/aws-replicator +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/aws-replicator/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/serverless-framework/ +- **Expected:** /aws/integrations/app-frameworks/serverless-framework +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/app-frameworks/serverless-framework/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_sqs/ +- **Expected:** /aws/services/sqs +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sqs/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/appsync/ +- **Expected:** /aws/services/appsync +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appsync/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/schema-evolution-glue-msk/ +- **Expected:** /aws/tutorials/schema-evolution-glue-msk +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/schema-evolution-glue-msk/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/ci/bitbucket/ +- **Expected:** /aws/integrations/continuous-integration/bitbucket +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/continuous-integration/bitbucket/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/scheduler/ +- **Expected:** /aws/services/scheduler +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/scheduler/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/quarkus/ +- **Expected:** /aws/integrations/app-frameworks/quarkus +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/app-frameworks/quarkus/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/servicediscovery/ +- **Expected:** /aws/services/servicediscovery +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/servicediscovery/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/xray/ +- **Expected:** /aws/services/xray +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/xray/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/pca/ +- **Expected:** /aws/services/pca +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/pca/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/waf/ +- **Expected:** /aws/services/waf +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/waf/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โŒ AWS: /applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/ +- **Expected:** https://github.com/localstack-samples/event-driven-architecture-with-amazon-sns-fifo +- **Final URL:** https://github.com/localstack-samples/sample-sam-sns-fifo-dynamodb-lambda +- **Status Code:** 200 +- **Message:** โŒ Expected: https://github.com/localstack-samples/event-driven-architecture-with-amazon-sns-fifo, Got: https://github.com/localstack-samples/sample-sam-sns-fifo-dynamodb-lambda + +### โœ… AWS: /user-guide/aws/apigateway/ +- **Expected:** /aws/services/apigateway +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/apigateway/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/cloud-custodian/ +- **Expected:** /aws/integrations/infrastructure-as-code/cloud-custodian/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/infrastructure-as-code/cloud-custodian/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_lambda/ +- **Expected:** /aws/services/lambda +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/lambda/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/sdks/java/ +- **Expected:** /aws/integrations/aws-sdks/net/java +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/java +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_logs/ +- **Expected:** /aws/services/logs +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/logs +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_mediastore/ +- **Expected:** /aws/services/mediastore +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mediastore/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/kafka/ +- **Expected:** /aws/integrations/messaging/selfmanaged-kafka-cluster/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/messaging/selfmanaged-kafka-cluster/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/chaos-engineering/fault-injection-service/ +- **Expected:** /aws/capabilities/chaos-engineering/fault-injection-service +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/chaos-engineering/fault-injection-service +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/logging/ +- **Expected:** /aws/capabilities/config/logging +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/logging/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/java-notification-app/ +- **Expected:** /aws/tutorials/java-notification-app +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/java-notification-app/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses/ +- **Expected:** https://github.com/localstack-samples/sample-transcribe-app +- **Final URL:** https://github.com/localstack-samples/sample-transcribe-app +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/route53resolver/ +- **Expected:** /aws/services/route53resolver +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/route53resolver/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_wafv2/ +- **Expected:** /aws/services/waf +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/waf/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/sdks/cpp/ +- **Expected:** /aws/integrations/aws-sdks/net/cpp +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/cpp +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/testcontainers/ +- **Expected:** /aws/integrations/testing/testcontainers +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/testing/testcontainers/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/internal-endpoints/ +- **Expected:** /aws/capabilities/networking/internal-endpoints +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/internal-endpoints/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/iotanalytics/ +- **Expected:** /aws/services/iotanalytics +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotanalytics/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/lambda-ecr-container-images/ +- **Expected:** /aws/tutorials/lambda-ecr-container-images +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/lambda-ecr-container-images/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/fis/ +- **Expected:** /aws/services/fis +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/fis/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/tools/localstack-docker-extension/ +- **Expected:** /aws/tooling/localstack-docker-extension/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/localstack-docker-extension/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/cloudformation/ +- **Expected:** /aws/services/cloudformation +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudformation/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/route-53-failover/ +- **Expected:** /aws/tutorials/route-53-failover +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/route-53-failover/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/web-application/resource-browser/ +- **Expected:** /aws/capabilities/web-app/resource-browser +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/resource-browser/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โŒ AWS: /applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/ +- **Expected:** https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app +- **Final URL:** https://github.com/localstack-samples/sample-loan-broker-stepfunctions-lambda +- **Status Code:** 200 +- **Message:** โŒ Expected: https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app, Got: https://github.com/localstack-samples/sample-loan-broker-stepfunctions-lambda + +### โœ… AWS: /references/coverage/coverage_resource-groups/ +- **Expected:** /aws/services/resourcegroups +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/resourcegroups/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/state-management/support/ +- **Expected:** /aws/capabilities/state-management/persistence-coverage +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/persistence-coverage/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_redshift/ +- **Expected:** /aws/services/redshift +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/redshift/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/lambdatest-hyperexecute/ +- **Expected:** /aws/integrations/testing/lambdatest-hyperexecute/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/testing/lambdatest-hyperexecute/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/ +- **Expected:** /aws/sample-apps/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/sample-apps/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/web-application/users-and-licenses/ +- **Expected:** /aws/capabilities/web-app/users-and-licenses +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/users-and-licenses +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/tools/localstack-sdk/ +- **Expected:** /aws/tooling/localstack-sdks/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/localstack-sdks/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_apigatewaymanagementapi/ +- **Expected:** /aws/services/apigateway +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/apigateway/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_transfer/ +- **Expected:** /aws/services/transfer +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/transfer/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/athena/ +- **Expected:** /aws/services/athena +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/athena/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/extensions/official-extensions/ +- **Expected:** /aws/tooling/extensions/official-extensions +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/extensions/official-extensions +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/textract/ +- **Expected:** /aws/services/textract +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/textract/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/iam-policy-stream/ +- **Expected:** /aws/tutorials/iam-policy-stream +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/iam-policy-stream/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_ses/ +- **Expected:** /aws/services/ses +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ses/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/gitlab_ci_testcontainers/ +- **Expected:** /aws/tutorials/gitlab-ci-testcontainers +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/gitlab-ci-testcontainers/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/aws-sam/ +- **Expected:** /aws/integrations/aws-native-tools/aws-sam +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-native-tools/aws-sam/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/firehose/ +- **Expected:** /aws/services/firehose +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/firehose/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/web-application/ +- **Expected:** /aws/capabilities/web-app/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_sagemaker/ +- **Expected:** /aws/services/sagemaker +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sagemaker/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/shield/ +- **Expected:** /aws/services/shield +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/shield/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/terraform/ +- **Expected:** /aws/integrations/infrastructure-as-code/terraform +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/infrastructure-as-code/terraform/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/es/ +- **Expected:** /aws/services/es +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/es/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_dms/ +- **Expected:** /aws/services/dms +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/dms/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/extensions/developing-extensions/ +- **Expected:** /aws/tooling/extensions/developing-extensions +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/extensions/developing-extensions/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/security-testing/explainable-iam/ +- **Expected:** /aws/capabilities/security-testing/explainable-iam +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/security-testing/explainable-iam/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/ram/ +- **Expected:** /aws/services/ram +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ram/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_ssm/ +- **Expected:** /aws/services/ssm +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ssm/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/network-troubleshooting/created-resources/ +- **Expected:** /aws/capabilities/networking/created-resources +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/created-resources +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/swf/ +- **Expected:** /aws/services/swf +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/swf/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/ci/github-actions/ +- **Expected:** /aws/integrations/continuous-integration/github-actions +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/continuous-integration/github-actions/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/serverlessrepo/ +- **Expected:** /aws/services/serverlessrepo +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/serverlessrepo/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/sqs/ +- **Expected:** /aws/services/sqs +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sqs/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_ram/ +- **Expected:** /aws/services/ram +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ram/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/secretsmanager/ +- **Expected:** /aws/services/secretsmanager +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/secretsmanager/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/web-application/stack-insights/ +- **Expected:** /aws/capabilities/web-app/stack-insights +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/stack-insights/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/autoscaling/ +- **Expected:** /aws/services/autoscaling +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/autoscaling/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_opensearch/ +- **Expected:** /aws/services/opensearch +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/opensearch/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_emr-serverless/ +- **Expected:** /aws/services/emr +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/emr/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/cloudwatch/ +- **Expected:** /aws/services/cloudwatch +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudwatch/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/elasticbeanstalk/ +- **Expected:** /aws/services/elasticbeanstalk +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elasticbeanstalk/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_mediaconvert/ +- **Expected:** /aws/services/mediaconvert +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mediaconvert +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/state-management/launchpad/ +- **Expected:** /aws/capabilities/state-management/launchpad +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/launchpad/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/ci/codebuild/ +- **Expected:** /aws/integrations/continuous-integration/codebuild +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/continuous-integration/codebuild/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/iotdata/ +- **Expected:** /aws/services/iotdata +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotdata/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_textract/ +- **Expected:** /aws/services/textract +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/textract/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_codebuild/ +- **Expected:** /aws/services/codebuild +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codebuild/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/elastictranscoder/ +- **Expected:** /aws/services/elastictranscoder +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elastictranscoder/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_glacier/ +- **Expected:** /aws/services/glacier +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/glacier/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/tools/ +- **Expected:** /aws/tooling/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/timestream/ +- **Expected:** /aws/services/timestream +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/timestream/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_pinpoint/ +- **Expected:** /aws/services/pinpoint +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/pinpoint/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds/ +- **Expected:** https://github.com/localstack-samples-samples/sample-serverless-rds-proxy-demo +- **Final URL:** https://github.com/localstack-samples-samples/sample-serverless-rds-proxy-demo +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/transcribe/ +- **Expected:** /aws/services/transcribe +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/transcribe/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_cloudformation/ +- **Expected:** /aws/services/cloudformation +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudformation/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_apigatewayv2/ +- **Expected:** /aws/services/apigateway +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/apigateway/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/kinesis/ +- **Expected:** /aws/services/kinesis +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kinesis/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_bedrock-runtime/ +- **Expected:** /aws/services/bedrock +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/bedrock/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_iot-data/ +- **Expected:** /aws/services/iotdata +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotdata/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/cloud-sandbox/ephemeral-instance/ +- **Expected:** /aws/capabilities/cloud-sandbox/ephemeral-instance +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/cloud-sandbox/ephemeral-instance +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_timestream-write/ +- **Expected:** /aws/services/timestream +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/timestream/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/pinpoint/ +- **Expected:** /aws/services/pinpoint +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/pinpoint/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/cloud-pods-collaborative-debugging/ +- **Expected:** /aws/tutorials/cloud-pods-collaborative-debugging +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/cloud-pods-collaborative-debugging/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_emr/ +- **Expected:** /aws/services/emr +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/emr/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/iam/ +- **Expected:** /aws/services/iam +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iam/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_codepipeline/ +- **Expected:** /aws/services/codepipeline +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codepipeline/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/network-troubleshooting/ +- **Expected:** /aws/capabilities/networking/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/ci/gitlab-ci/ +- **Expected:** /aws/integrations/continuous-integration/gitlab-ci +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/continuous-integration/gitlab-ci/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/kms/ +- **Expected:** /aws/services/kms +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kms/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_stepfunctions/ +- **Expected:** /aws/services/stepfunctions +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/stepfunctions/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_sesv2/ +- **Expected:** /aws/services/ses +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ses/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_events/ +- **Expected:** /aws/services/events +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/events/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_timestream-query/ +- **Expected:** /aws/services/timestream +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/timestream/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/network-troubleshooting/endpoint-url/ +- **Expected:** /aws/capabilities/networking/endpoint-url +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/endpoint-url +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/ephemeral-application-previews/ +- **Expected:** /aws/tutorials/ephemeral-application-previews +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/ephemeral-application-previews/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/web-application/accounts/ +- **Expected:** /aws/capabilities/web-app/accounts +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/accounts/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_appsync/ +- **Expected:** /aws/services/appsync +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appsync/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_ecr/ +- **Expected:** /aws/services/ecr +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ecr/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_application-autoscaling/ +- **Expected:** /aws/services/appautoscaling +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appautoscaling/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/lambda-tools/debugging/ +- **Expected:** /aws/tooling/lambda-tools/debugging +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/lambda-tools/debugging +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/rancher-desktop/ +- **Expected:** /aws/integrations/containers/rancher-desktop +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/containers/rancher-desktop/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/sdks/ruby/ +- **Expected:** /aws/integrations/aws-sdks/net/ruby +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/ruby +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/mwaa/ +- **Expected:** /aws/services/mwaa +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mwaa/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/organizations/ +- **Expected:** /aws/services/organizations +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/organizations/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/sagemaker/ +- **Expected:** /aws/services/sagemaker +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sagemaker/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/configuration/ +- **Expected:** /aws/capabilities/config/configuration +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/configuration/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/chaos-engineering/chaos-api/ +- **Expected:** /aws/capabilities/chaos-engineering/chaos-api +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/chaos-engineering/chaos-api/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/glacier/ +- **Expected:** /aws/services/glacier +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/glacier/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_qldb-session/ +- **Expected:** /aws/services/qldb +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/qldb/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/pulumi/ +- **Expected:** /aws/integrations/infrastructure-as-code/pulumi +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/infrastructure-as-code/pulumi/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/cloudtrail/ +- **Expected:** /aws/services/cloudtrail +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudtrail/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_s3/ +- **Expected:** /aws/services/s3 +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/s3/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/emr/ +- **Expected:** /aws/services/emr +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/emr/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/tools/dns-server/ +- **Expected:** /aws/tooling/dns-server +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/dns-server/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_route53/ +- **Expected:** /aws/services/route53 +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/route53/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_dynamodbstreams/ +- **Expected:** /aws/services/dynamodbstreams +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/dynamodbstreams/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_dynamodb/ +- **Expected:** /aws/services/dynamodb +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/dynamodb/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/ec2/ +- **Expected:** /aws/services/ec2 +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ec2/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/cloud-sandbox/application-previews/ +- **Expected:** /aws/capabilities/cloud-sandbox/application-previews +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/cloud-sandbox/application-previews +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/spring-cloud-function/ +- **Expected:** /aws/integrations/app-frameworks/spring-cloud-function +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/app-frameworks/spring-cloud-function/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/multi-account-setups/ +- **Expected:** /aws/capabilities/config/multi-account-setups/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/multi-account-setups/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/elementalmediaconvert/ +- **Expected:** /aws/services/elementalmediaconvert +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elementalmediaconvert/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_shield/ +- **Expected:** /aws/services/shield +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/shield/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/dynamodb/ +- **Expected:** /aws/services/dynamodb +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/dynamodb/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/tools/event-studio/ +- **Expected:** /aws/tooling/event-studio/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/event-studio/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/ +- **Expected:** /aws/services/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_acm-pca/ +- **Expected:** /aws/services/acm-pca +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/acm-pca +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/opensearch/ +- **Expected:** /aws/services/opensearch +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/opensearch/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/neptune/ +- **Expected:** /aws/services/neptune +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/neptune/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/codepipeline/ +- **Expected:** /aws/services/codepipeline +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codepipeline/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_docdb/ +- **Expected:** /aws/services/docdb +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/docdb/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_appconfig/ +- **Expected:** /aws/services/appconfig +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appconfig/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_iot/ +- **Expected:** /aws/services/iot +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iot/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /getting-started/installation/ +- **Expected:** /aws/getting-started/installation +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/installation/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/architect/ +- **Expected:** /aws/integrations/app-frameworks/architect/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/app-frameworks/architect/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/gitpod/ +- **Expected:** /aws/integrations/containers/gitpod/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/containers/gitpod/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/managedblockchain/ +- **Expected:** /aws/services/managedblockchain +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/managedblockchain/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation/ +- **Expected:** https://github.com/localstack-samples/query-data-s3-athena-glue-sample +- **Final URL:** https://github.com/localstack-samples/query-data-s3-athena-glue-sample +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/ +- **Expected:** /aws/integrations/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/codebuild/ +- **Expected:** /aws/services/codebuild +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codebuild/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/ses/ +- **Expected:** /aws/services/ses +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ses/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_sagemaker-runtime/ +- **Expected:** /aws/services/sagemaker +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sagemaker/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/messaging-processing-application-with-sqs-dynamodb-and-fargate/ +- **Expected:** https://github.com/localstack-samples/sqs-fargate-ddb-cdk-go +- **Final URL:** https://github.com/localstack-samples/sqs-fargate-ddb-cdk-go +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/mq/ +- **Expected:** /aws/services/mq +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mq/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/localstack-enterprise/kubernetes-executor/ +- **Expected:** /aws/enterprise/kubernetes-executor +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/kubernetes-executor/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/iot/ +- **Expected:** /aws/services/iot +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iot/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/backup/ +- **Expected:** /aws/services/backup +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/backup/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_organizations/ +- **Expected:** /aws/services/organizations +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/organizations/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/kinesisanalytics/ +- **Expected:** /aws/services/kinesisanalytics +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kinesisanalytics/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/localstack-enterprise/single-sign-on/ +- **Expected:** /aws/enterprise/sso +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/sso/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/redshift/ +- **Expected:** /aws/services/redshift +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/redshift/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_verifiedpermissions/ +- **Expected:** /aws/services/verifiedpermissions +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/verifiedpermissions/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/ +- **Expected:** https://github.com/localstack-samples/shipment-list-demo +- **Final URL:** https://github.com/localstack-samples/shipment-list-demo +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_iotanalytics/ +- **Expected:** /aws/services/iotanalytics +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotanalytics/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/chalice/ +- **Expected:** /aws/integrations/aws-native-tools/aws-chalice/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-native-tools/aws-chalice/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/security-testing/iam-policy-stream/ +- **Expected:** /aws/capabilities/security-testing/iam-policy-stream +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/security-testing/iam-policy-stream/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/security-testing/iam-enforcement/ +- **Expected:** /aws/capabilities/security-testing/iam-enforcement +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/security-testing/iam-enforcement +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_route53resolver/ +- **Expected:** /aws/services/route53resolver +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/route53resolver/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_config/ +- **Expected:** /aws/services/config +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/config/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_account/ +- **Expected:** /aws/services/account +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/account/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/web-application/stack-overview/ +- **Expected:** /aws/capabilities/web-app/stack-overview +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/stack-overview/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/appconfig/ +- **Expected:** /aws/services/appconfig +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appconfig/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/cognito/ +- **Expected:** /aws/services/cognito +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cognito/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_bedrock/ +- **Expected:** /aws/services/bedrock +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/bedrock/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/efs/ +- **Expected:** /aws/services/efs +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/efs/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_rds/ +- **Expected:** /aws/services/rds +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/rds/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_backup/ +- **Expected:** /aws/services/backup +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/backup/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/rds/ +- **Expected:** /aws/services/rds +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/rds/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/identitystore/ +- **Expected:** /aws/services/identitystore +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/identitystore/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_redshift-data/ +- **Expected:** /aws/services/redshift +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/redshift/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/elasticache/ +- **Expected:** /aws/services/elasticache +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elasticache/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/using-terraform-with-testcontainers-and-localstack/ +- **Expected:** /aws/tutorials/using-terraform-with-testcontainers-and-localstack +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/using-terraform-with-testcontainers-and-localstack/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_cloudfront/ +- **Expected:** /aws/services/cloudfront +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudfront/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/tools/localstack-sdk/java/ +- **Expected:** /aws/user-guide/tools/localstack-sdk/java +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/user-guide/tools/localstack-sdk/java +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/codecommit/ +- **Expected:** /aws/services/codecommit +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codecommit/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_swf/ +- **Expected:** /aws/services/swf +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/swf/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/sdks/go/ +- **Expected:** /aws/integrations/aws-sdks/net/go +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/go +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /persistence/ +- **Expected:** /aws/capabilities/state-management/persistence/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/persistence/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/init-hooks/ +- **Expected:** /aws/capabilities/config/initialization-hooks/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/initialization-hooks/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_support/ +- **Expected:** /aws/services/support +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/support/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/ +- **Expected:** /aws/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/qldb/ +- **Expected:** /aws/services/qldb +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/qldb/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/simulating-outages/ +- **Expected:** /aws/tutorials/simulating-outages +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/simulating-outages/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/acm/ +- **Expected:** /aws/services/acm +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/acm/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/sdks/php/ +- **Expected:** /aws/integrations/aws-sdks/net/php +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/php +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_sns/ +- **Expected:** /aws/services/sns +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sns/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /getting-started/help-and-support/ +- **Expected:** /aws/getting-started/help-support +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/help-support/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/amplify/ +- **Expected:** /aws/services/amplify +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/amplify/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_lakeformation/ +- **Expected:** /aws/services/lakeformation +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/lakeformation/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/integrations/sdks/dotnet/ +- **Expected:** /aws/integrations/aws-sdks/net/dotnet +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/dotnet +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_cloudwatch/ +- **Expected:** /aws/services/cloudwatch +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudwatch/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/ecr/ +- **Expected:** /aws/services/ecr +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ecr/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/stepfunctions/ +- **Expected:** /aws/services/stepfunctions +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/stepfunctions/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_elasticache/ +- **Expected:** /aws/services/elasticache +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elasticache/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint/ +- **Expected:** https://github.com/localstack-samples-samples/sample-mnist-digit-recognition-sagemaker +- **Final URL:** https://github.com/localstack-samples-samples/sample-mnist-digit-recognition-sagemaker +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/state-management/pods-cli/ +- **Expected:** /aws/capabilities/state-management/cli-commands +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/cli-commands/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/dynamodbstreams/ +- **Expected:** /aws/services/dynamodbstreams +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/dynamodbstreams/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/ci/ +- **Expected:** /aws/user-guide/ci +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/user-guide/ci +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_eks/ +- **Expected:** /aws/services/eks +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/eks/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_cognito-idp/ +- **Expected:** /aws/services/cognito +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cognito/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/web-application/workspace/ +- **Expected:** /aws/capabilities/web-app/workspace +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/workspace +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/coverage/coverage_cloudcontrol/ +- **Expected:** /aws/services/cloudcontrol +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudcontrol +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /tutorials/replicate-aws-resources-localstack-extension/ +- **Expected:** /aws/tutorials/replicate-aws-resources-localstack-extension +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/replicate-aws-resources-localstack-extension/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/tools/localstack-sdk/python/ +- **Expected:** /aws/tooling/localstack-sdks/python +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/localstack-sdks/python +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/lambda-tools/hot-reloading/ +- **Expected:** /aws/tooling/lambda-tools/hot-reloading +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/lambda-tools/hot-reloading/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /getting-started/quickstart/ +- **Expected:** /aws/getting-started/quickstart +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/quickstart/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /overview/ +- **Expected:** /aws/getting-started +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/aws/glue/ +- **Expected:** /aws/services/glue +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/glue/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /getting-started/ +- **Expected:** /aws/getting-started +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /user-guide/extensions/managing-extensions/ +- **Expected:** /aws/tooling/extensions/managing-extensions +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/extensions/managing-extensions/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/filesystem/ +- **Expected:** /aws/capabilities/config/filesystem/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/filesystem/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful diff --git a/scripts/redirects/redirects_config.json b/scripts/redirects/redirects_config.json index 8ef0a17f..0458d48d 100644 --- a/scripts/redirects/redirects_config.json +++ b/scripts/redirects/redirects_config.json @@ -3,8 +3,7 @@ { "old_link": "/legal/third-party-software-tools/", "new_link": "/aws/legal/third-party-software-tools", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_elb/", @@ -49,15 +48,13 @@ }, { "old_link": "/references/licensing/", - "new_link": "/aws/references/licensing", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/licensing", + "status_code": 301 }, { "old_link": "/legal/", - "new_link": "/aws/legal", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/legal/third-party-software-tools", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_iotwireless/", @@ -112,9 +109,8 @@ }, { "old_link": "/references/usage-tracking/", - "new_link": "/aws/references/usage-tracking", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/config/usage-tracking", + "status_code": 301 }, { "old_link": "/user-guide/aws/dms/", @@ -133,9 +129,8 @@ }, { "old_link": "/references/regions-coverage/", - "new_link": "/aws/references/regions-coverage", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/config/regions-coverage/", + "status_code": 301 }, { "old_link": "/tutorials/elb-load-balancing/", @@ -422,14 +417,12 @@ { "old_link": "/user-guide/localstack-enterprise/ci-analytics/", "new_link": "/aws/enterprise/ci-analytics", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/changelog/", - "new_link": "/aws/references/changelog", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/changelog", + "status_code": 301 }, { "old_link": "/references/credentials/", @@ -459,9 +452,8 @@ }, { "old_link": "/references/cross-account-access/", - "new_link": "/aws/references/cross-account-access", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/config/cross-account-access", + "status_code": 301 }, { "old_link": "/tutorials/reproducible-machine-learning-cloud-pods/", @@ -607,9 +599,8 @@ }, { "old_link": "/user-guide/localstack-enterprise/single-sign-on/azure-ad/", - "new_link": "/aws/enterprise/single-sign-on/azure-ad", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/enterprise/sso/azure-ad", + "status_code": 301 }, { "old_link": "/user-guide/tools/localstack-desktop/", @@ -663,9 +654,8 @@ }, { "old_link": "/references/iam-coverage/", - "new_link": "/aws/references/iam-coverage", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/security-testing/iam-coverage/", + "status_code": 301 }, { "old_link": "/user-guide/aws/transfer/", @@ -1122,9 +1112,8 @@ }, { "old_link": "/references/arm64-support/", - "new_link": "/aws/references/arm64-support", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/config/arm64-support/", + "status_code": 301 }, { "old_link": "/user-guide/aws/shield/", @@ -1546,8 +1535,7 @@ { "old_link": "/user-guide/chaos-engineering/chaos-application-dashboard/", "new_link": "/aws/capabilities/chaos-engineering/chaos-application-dashboard", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "status_code": 301 }, { "old_link": "/references/coverage/coverage_route53/", @@ -1869,9 +1857,8 @@ }, { "old_link": "/references/network-troubleshooting/readme/", - "new_link": "/aws/capabilities/networking/readme", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/capabilities/networking/", + "status_code": 301 }, { "old_link": "/user-guide/aws/codecommit/", From 1079e7f285430eaa263133d444a56d970f1a0c4b Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Mon, 30 Jun 2025 23:18:54 +0530 Subject: [PATCH 12/14] more --- public/_redirects | 17 +++++ scripts/redirects/redirects_config.json | 85 ++++++++++--------------- 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/public/_redirects b/public/_redirects index 03443281..b9783c53 100644 --- a/public/_redirects +++ b/public/_redirects @@ -14,6 +14,7 @@ /references/coverage/coverage_pipes/ /aws/services/pipes 301 /user-guide/state-management/persistence/ /aws/capabilities/state-management/persistence 301 /references/coverage/coverage_mq/ /aws/services/mq 301 +/academy/localstack-101/what-is-localstack/ https://youtu.be/B2EML5L3-tw?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 301 /references/coverage/coverage_xray/ /aws/services/xray 301 /references/coverage/coverage_cognito-identity/ /aws/services/cognito 301 /user-guide/aws/ecs/ /aws/services/ecs 301 @@ -40,6 +41,7 @@ /references/coverage/coverage_glue/ /aws/services/glue 301 /user-guide/aws/ssm/ /aws/services/ssm 301 /references/coverage/coverage_sts/ /aws/services/sts 301 +/academy/localstack-101/course-overview/ https://youtu.be/VLL-BI1AWcc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 301 /user-guide/aws/iotwireless/ /aws/services/iotwireless 301 /user-guide/integrations/sdks/python/ /aws/integrations/aws-sdks/net/python 301 /user-guide/integrations/crossplane/ /aws/integrations/infrastructure-as-code/crossplane 301 @@ -75,6 +77,7 @@ /user-guide/aws/mediastore/ /aws/services/mediastore 301 /references/coverage/coverage_fis/ /aws/services/fis 301 /user-guide/aws/logs/ /aws/services/cloudwatchlogs 301 +/academy/localstack-deployment/infra-cloudformation/ https://youtu.be/K0OgQ5eq588?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 /user-guide/cloud-sandbox/ /aws/capabilities/cloud-sandbox 301 /user-guide/localstack-enterprise/ci-analytics/ /aws/enterprise/ci-analytics 301 /references/changelog/ /aws/changelog 301 @@ -82,6 +85,7 @@ /references/coverage/coverage_elasticbeanstalk/ /aws/services/elasticbeanstalk 301 /user-guide/web-application/instance-management/ /aws/capabilities/web-app/instance-management 301 /references/coverage/coverage_qldb/ /aws/services/qldb 301 +/academy/localstack-deployment/iam-policy-stream/ https://youtu.be/TOBLG2Z6xAM?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 /references/cross-account-access/ /aws/capabilities/config/cross-account-access 301 /tutorials/reproducible-machine-learning-cloud-pods/ /aws/tutorials/reproducible-machine-learning-cloud-pods 301 /references/coverage/coverage_ecs/ /aws/services/ecs 301 @@ -90,6 +94,7 @@ /user-guide/aws/ /aws/services/ 301 /references/lambda-provider-v2/ /aws/services/lambda 301 /user-guide/web-application/ci-keys/ /aws/capabilities/web-app/ci-keys 301 +/academy/localstack-deployment/ls-integrations/ https://youtu.be/YV0Zs6UNI9I 301 /references/coverage/coverage_appconfigdata/ /aws/services/appconfig 301 /applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/ https://github.com/localstack-samples/serverless-image-resizer 301 /user-guide/security-testing/ /aws/capabilities/security-testing/ 301 @@ -160,6 +165,7 @@ /user-guide/aws/scheduler/ /aws/services/scheduler 301 /user-guide/integrations/quarkus/ /aws/integrations/app-frameworks/quarkus 301 /user-guide/aws/servicediscovery/ /aws/services/servicediscovery 301 +/academy/localstack-101/ https://youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk 301 /user-guide/aws/xray/ /aws/services/xray 301 /user-guide/aws/pca/ /aws/services/pca 301 /user-guide/aws/waf/ /aws/services/waf 301 @@ -226,6 +232,7 @@ /user-guide/web-application/stack-insights/ /aws/capabilities/web-app/stack-insights 301 /user-guide/aws/autoscaling/ /aws/services/autoscaling 301 /references/coverage/coverage_opensearch/ /aws/services/opensearch 301 +/academy/localstack-101/cloud-pods/ https://youtu.be/InqTdSvxuag?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 301 /references/coverage/coverage_emr-serverless/ /aws/services/emr 301 /user-guide/aws/cloudwatch/ /aws/services/cloudwatch 301 /user-guide/aws/elasticbeanstalk/ /aws/services/elasticbeanstalk 301 @@ -241,6 +248,7 @@ /user-guide/aws/timestream/ /aws/services/timestream 301 /references/coverage/coverage_pinpoint/ /aws/services/pinpoint 301 /applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds/ https://github.com/localstack-samples-samples/sample-serverless-rds-proxy-demo 301 +/academy/localstack-101/why-localstack/ https://youtu.be/EDGIBpUpYWU?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 301 /user-guide/aws/transcribe/ /aws/services/transcribe 301 /references/coverage/coverage_cloudformation/ /aws/services/cloudformation 301 /references/coverage/coverage_apigatewayv2/ /aws/services/apigateway 301 @@ -253,7 +261,9 @@ /tutorials/cloud-pods-collaborative-debugging/ /aws/tutorials/cloud-pods-collaborative-debugging 301 /references/coverage/coverage_emr/ /aws/services/emr 301 /user-guide/aws/iam/ /aws/services/iam 301 +/academy/localstack-deployment/course-overview/ https://youtu.be/XDIat6laW28?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 /references/coverage/coverage_codepipeline/ /aws/services/codepipeline 301 +/academy/localstack-deployment/infra-terraform/ https://youtu.be/lsF3kewOeBU?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 /references/network-troubleshooting/ /aws/capabilities/networking/ 301 /user-guide/ci/gitlab-ci/ /aws/integrations/continuous-integration/gitlab-ci 301 /user-guide/aws/kms/ /aws/services/kms 301 @@ -266,12 +276,15 @@ /user-guide/web-application/accounts/ /aws/capabilities/web-app/accounts 301 /references/coverage/coverage_appsync/ /aws/services/appsync 301 /references/coverage/coverage_ecr/ /aws/services/ecr 301 +/academy/localstack-deployment/ https://youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O 301 /references/coverage/coverage_application-autoscaling/ /aws/services/appautoscaling 301 /user-guide/lambda-tools/debugging/ /aws/tooling/lambda-tools/debugging 301 /user-guide/integrations/rancher-desktop/ /aws/integrations/containers/rancher-desktop 301 /user-guide/integrations/sdks/ruby/ /aws/integrations/aws-sdks/net/ruby 301 /user-guide/aws/mwaa/ /aws/services/mwaa 301 +/academy/localstack-deployment/deploy-app-ls/ https://youtu.be/qIB79b-iw2U?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 /user-guide/aws/organizations/ /aws/services/organizations 301 +/academy/localstack-deployment/github-action-ls/ https://youtu.be/XNh8aSaT9v0?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 /user-guide/aws/sagemaker/ /aws/services/sagemaker 301 /references/configuration/ /aws/capabilities/config/configuration 301 /user-guide/chaos-engineering/chaos-api/ /aws/capabilities/chaos-engineering/chaos-api 301 @@ -307,6 +320,7 @@ /user-guide/integrations/gitpod/ /aws/integrations/containers/gitpod/ 301 /user-guide/aws/managedblockchain/ /aws/services/managedblockchain 301 /applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation/ https://github.com/localstack-samples/query-data-s3-athena-glue-sample 301 +/academy/localstack-101/web-app-resource-browser/ https://youtu.be/SoXtngYp-8k?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 301 /user-guide/integrations/ /aws/integrations/ 301 /user-guide/aws/codebuild/ /aws/services/codebuild 301 /user-guide/aws/ses/ /aws/services/ses 301 @@ -321,6 +335,7 @@ /user-guide/localstack-enterprise/single-sign-on/ /aws/enterprise/sso 301 /user-guide/aws/redshift/ /aws/services/redshift 301 /references/coverage/coverage_verifiedpermissions/ /aws/services/verifiedpermissions 301 +/academy/localstack-101/full-project-demo/ https://youtu.be/cQxg3Dnteyc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 301 /applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/ https://github.com/localstack-samples/shipment-list-demo 301 /references/coverage/coverage_iotanalytics/ /aws/services/iotanalytics 301 /user-guide/integrations/chalice/ /aws/integrations/aws-native-tools/aws-chalice/ 301 @@ -330,6 +345,7 @@ /references/coverage/coverage_config/ /aws/services/config 301 /references/coverage/coverage_account/ /aws/services/account 301 /user-guide/web-application/stack-overview/ /aws/capabilities/web-app/stack-overview 301 +/academy/localstack-deployment/cloud-pods/ https://youtu.be/ZJP2xfvwR_g?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 /user-guide/aws/appconfig/ /aws/services/appconfig 301 /user-guide/aws/cognito/ /aws/services/cognito 301 /references/coverage/coverage_bedrock/ /aws/services/bedrock 301 @@ -360,6 +376,7 @@ /user-guide/aws/amplify/ /aws/services/amplify 301 /references/coverage/coverage_lakeformation/ /aws/services/lakeformation 301 /user-guide/integrations/sdks/dotnet/ /aws/integrations/aws-sdks/net/dotnet 301 +/academy/ https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 301 /references/coverage/coverage_cloudwatch/ /aws/services/cloudwatch 301 /user-guide/aws/ecr/ /aws/services/ecr 301 /user-guide/aws/stepfunctions/ /aws/services/stepfunctions 301 diff --git a/scripts/redirects/redirects_config.json b/scripts/redirects/redirects_config.json index 0458d48d..e6a63826 100644 --- a/scripts/redirects/redirects_config.json +++ b/scripts/redirects/redirects_config.json @@ -88,9 +88,8 @@ }, { "old_link": "/academy/localstack-101/what-is-localstack/", - "new_link": "/aws/academy/localstack-101/what-is-localstack", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/B2EML5L3-tw?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_xray/", @@ -224,9 +223,8 @@ }, { "old_link": "/academy/localstack-101/course-overview/", - "new_link": "/aws/academy/localstack-101/course-overview", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/VLL-BI1AWcc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0", + "status_code": 301 }, { "old_link": "/user-guide/aws/iotwireless/", @@ -405,9 +403,8 @@ }, { "old_link": "/academy/localstack-deployment/infra-cloudformation/", - "new_link": "/aws/academy/localstack-deployment/infra-cloudformation", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/K0OgQ5eq588?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "status_code": 301 }, { "old_link": "/user-guide/cloud-sandbox/", @@ -446,9 +443,8 @@ }, { "old_link": "/academy/localstack-deployment/iam-policy-stream/", - "new_link": "/aws/academy/localstack-deployment/iam-policy-stream", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/TOBLG2Z6xAM?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "status_code": 301 }, { "old_link": "/references/cross-account-access/", @@ -492,9 +488,8 @@ }, { "old_link": "/academy/localstack-deployment/ls-integrations/", - "new_link": "/aws/academy/localstack-deployment/ls-integrations", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/YV0Zs6UNI9I", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_appconfigdata/", @@ -865,9 +860,8 @@ }, { "old_link": "/academy/localstack-101/", - "new_link": "/aws/academy/localstack-101", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk", + "status_code": 301 }, { "old_link": "/user-guide/aws/xray/", @@ -1207,9 +1201,8 @@ }, { "old_link": "/academy/localstack-101/cloud-pods/", - "new_link": "/aws/academy/localstack-101/cloud-pods", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/InqTdSvxuag?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_emr-serverless/", @@ -1287,9 +1280,8 @@ }, { "old_link": "/academy/localstack-101/why-localstack/", - "new_link": "/aws/academy/localstack-101/why-localstack", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/EDGIBpUpYWU?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0", + "status_code": 301 }, { "old_link": "/user-guide/aws/transcribe/", @@ -1353,9 +1345,8 @@ }, { "old_link": "/academy/localstack-deployment/course-overview/", - "new_link": "/aws/academy/localstack-deployment/course-overview", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/XDIat6laW28?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_codepipeline/", @@ -1364,9 +1355,8 @@ }, { "old_link": "/academy/localstack-deployment/infra-terraform/", - "new_link": "/aws/academy/localstack-deployment/infra-terraform", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/lsF3kewOeBU?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "status_code": 301 }, { "old_link": "/references/network-troubleshooting/", @@ -1430,9 +1420,8 @@ }, { "old_link": "/academy/localstack-deployment/", - "new_link": "/aws/academy/localstack-deployment", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_application-autoscaling/", @@ -1467,9 +1456,8 @@ }, { "old_link": "/academy/localstack-deployment/deploy-app-ls/", - "new_link": "/aws/academy/localstack-deployment/deploy-app-ls", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/qIB79b-iw2U?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "status_code": 301 }, { "old_link": "/user-guide/aws/organizations/", @@ -1478,9 +1466,8 @@ }, { "old_link": "/academy/localstack-deployment/github-action-ls/", - "new_link": "/aws/academy/localstack-deployment/github-action-ls", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/XNh8aSaT9v0?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "status_code": 301 }, { "old_link": "/user-guide/aws/sagemaker/", @@ -1659,9 +1646,8 @@ }, { "old_link": "/academy/localstack-101/web-app-resource-browser/", - "new_link": "/aws/academy/localstack-101/web-app-resource-browser", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/SoXtngYp-8k?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0", + "status_code": 301 }, { "old_link": "/user-guide/integrations/", @@ -1735,9 +1721,8 @@ }, { "old_link": "/academy/localstack-101/full-project-demo/", - "new_link": "/aws/academy/localstack-101/full-project-demo", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/cQxg3Dnteyc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0", + "status_code": 301 }, { "old_link": "/applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/", @@ -1786,9 +1771,8 @@ }, { "old_link": "/academy/localstack-deployment/cloud-pods/", - "new_link": "/aws/academy/localstack-deployment/cloud-pods", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://youtu.be/ZJP2xfvwR_g?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "status_code": 301 }, { "old_link": "/user-guide/aws/appconfig/", @@ -1942,9 +1926,8 @@ }, { "old_link": "/academy/", - "new_link": "/aws/academy", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_cloudwatch/", From c00d55776178591a9cc21fefc1655336998d2744 Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Tue, 1 Jul 2025 00:00:31 +0530 Subject: [PATCH 13/14] fix last set (1) --- public/_redirects | 2 + scripts/redirects/redirect_test_report.md | 286 +++++++++++++++++++++- scripts/redirects/redirects_config.json | 10 +- 3 files changed, 287 insertions(+), 11 deletions(-) diff --git a/public/_redirects b/public/_redirects index b9783c53..eff61329 100644 --- a/public/_redirects +++ b/public/_redirects @@ -152,6 +152,7 @@ /user-guide/aws/elb/ /aws/services/elb 301 /user-guide/integrations/kubernetes/ /aws/integrations/containers/kubernetes/ 301 /user-guide/aws/lakeformation/ /aws/services/lakeformation 301 +/developer-hub/ /aws/sample-apps 301 /references/coverage/coverage_firehose/ /aws/services/firehose 301 /user-guide/aws/verifiedpermissions/ /aws/services/verifiedpermissions 301 /references/coverage/coverage_kinesisanalytics/ /aws/services/kinesisanalytics 301 @@ -162,6 +163,7 @@ /user-guide/aws/appsync/ /aws/services/appsync 301 /tutorials/schema-evolution-glue-msk/ /aws/tutorials/schema-evolution-glue-msk 301 /user-guide/ci/bitbucket/ /aws/integrations/continuous-integration/bitbucket 301 +/contributing/ https://github.com/localstack/localstack/blob/master/docs/CONTRIBUTING.md 301 /user-guide/aws/scheduler/ /aws/services/scheduler 301 /user-guide/integrations/quarkus/ /aws/integrations/app-frameworks/quarkus 301 /user-guide/aws/servicediscovery/ /aws/services/servicediscovery 301 diff --git a/scripts/redirects/redirect_test_report.md b/scripts/redirects/redirect_test_report.md index 443bd988..f8dc36bc 100644 --- a/scripts/redirects/redirect_test_report.md +++ b/scripts/redirects/redirect_test_report.md @@ -1,26 +1,62 @@ # LocalStack Redirect Test Report -**Generated:** 2025-06-30 22:36:30 +**Generated:** 2025-06-30 23:32:43 **Staging URL:** https://redirects.localstack-docs.pages.dev ## Summary -- **Total tests:** 370 -- **Passed:** 366 โœ… -- **Failed:** 4 โŒ -- **Success rate:** 98.9% +- **Total tests:** 400 +- **Passed:** 380 โœ… +- **Failed:** 20 โŒ +- **Success rate:** 95.0% ## Failed Tests +### AWS: /academy/localstack-101/what-is-localstack/ +- **Expected:** https://youtu.be/B2EML5L3-tw?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=B2EML5L3-tw&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/B2EML5L3-tw?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=B2EML5L3-tw&feature=youtu.be + ### AWS: /applications/note-taking-application-using-aws-sdk-for-javascript/ - **Expected:** https://github.com/localstack-samples/aws-sdk-js-notes-app - **Got:** https://github.com/localstack-samples/sample-notes-app-dynamodb-lambda-apigateway - **Status:** 200 - **Message:** โŒ Expected: https://github.com/localstack-samples/aws-sdk-js-notes-app, Got: https://github.com/localstack-samples/sample-notes-app-dynamodb-lambda-apigateway +### AWS: /academy/localstack-101/course-overview/ +- **Expected:** https://youtu.be/VLL-BI1AWcc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=VLL-BI1AWcc&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/VLL-BI1AWcc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=VLL-BI1AWcc&feature=youtu.be + ### AWS: /applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/ - **Expected:** https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample - **Got:** https://github.com/localstack-samples/sample-microservices-apigateway-lambda-dynamodb-sqs - **Status:** 200 - **Message:** โŒ Expected: https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample, Got: https://github.com/localstack-samples/sample-microservices-apigateway-lambda-dynamodb-sqs +### AWS: /academy/localstack-deployment/infra-cloudformation/ +- **Expected:** https://youtu.be/K0OgQ5eq588?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=K0OgQ5eq588&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/K0OgQ5eq588?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=K0OgQ5eq588&feature=youtu.be + +### AWS: /academy/localstack-deployment/iam-policy-stream/ +- **Expected:** https://youtu.be/TOBLG2Z6xAM?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=TOBLG2Z6xAM&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/TOBLG2Z6xAM?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=TOBLG2Z6xAM&feature=youtu.be + +### AWS: /academy/localstack-deployment/ls-integrations/ +- **Expected:** https://youtu.be/YV0Zs6UNI9I +- **Got:** https://www.youtube.com/watch?v=YV0Zs6UNI9I&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/YV0Zs6UNI9I, Got: https://www.youtube.com/watch?v=YV0Zs6UNI9I&feature=youtu.be + +### AWS: /academy/localstack-101/ +- **Expected:** https://youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk +- **Got:** https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk +- **Status:** 200 +- **Message:** โŒ Expected: https://youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk, Got: https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk + ### AWS: /applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/ - **Expected:** https://github.com/localstack-samples/event-driven-architecture-with-amazon-sns-fifo - **Got:** https://github.com/localstack-samples/sample-sam-sns-fifo-dynamodb-lambda @@ -33,7 +69,73 @@ - **Status:** 200 - **Message:** โŒ Expected: https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app, Got: https://github.com/localstack-samples/sample-loan-broker-stepfunctions-lambda +### AWS: /academy/localstack-101/cloud-pods/ +- **Expected:** https://youtu.be/InqTdSvxuag?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=InqTdSvxuag&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/InqTdSvxuag?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=InqTdSvxuag&feature=youtu.be + +### AWS: /academy/localstack-101/why-localstack/ +- **Expected:** https://youtu.be/EDGIBpUpYWU?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=EDGIBpUpYWU&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/EDGIBpUpYWU?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=EDGIBpUpYWU&feature=youtu.be + +### AWS: /academy/localstack-deployment/course-overview/ +- **Expected:** https://youtu.be/XDIat6laW28?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XDIat6laW28&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/XDIat6laW28?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XDIat6laW28&feature=youtu.be + +### AWS: /academy/localstack-deployment/infra-terraform/ +- **Expected:** https://youtu.be/lsF3kewOeBU?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=lsF3kewOeBU&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/lsF3kewOeBU?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=lsF3kewOeBU&feature=youtu.be + +### AWS: /academy/localstack-deployment/ +- **Expected:** https://youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O +- **Got:** https://www.youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O +- **Status:** 200 +- **Message:** โŒ Expected: https://youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O, Got: https://www.youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O + +### AWS: /academy/localstack-deployment/deploy-app-ls/ +- **Expected:** https://youtu.be/qIB79b-iw2U?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=qIB79b-iw2U&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/qIB79b-iw2U?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=qIB79b-iw2U&feature=youtu.be + +### AWS: /academy/localstack-deployment/github-action-ls/ +- **Expected:** https://youtu.be/XNh8aSaT9v0?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XNh8aSaT9v0&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/XNh8aSaT9v0?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XNh8aSaT9v0&feature=youtu.be + +### AWS: /academy/localstack-101/web-app-resource-browser/ +- **Expected:** https://youtu.be/SoXtngYp-8k?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=SoXtngYp-8k&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/SoXtngYp-8k?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=SoXtngYp-8k&feature=youtu.be + +### AWS: /academy/localstack-101/full-project-demo/ +- **Expected:** https://youtu.be/cQxg3Dnteyc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=cQxg3Dnteyc&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/cQxg3Dnteyc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=cQxg3Dnteyc&feature=youtu.be + +### AWS: /academy/localstack-deployment/cloud-pods/ +- **Expected:** https://youtu.be/ZJP2xfvwR_g?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=ZJP2xfvwR_g&feature=youtu.be +- **Status:** 200 +- **Message:** โŒ Expected: https://youtu.be/ZJP2xfvwR_g?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=ZJP2xfvwR_g&feature=youtu.be + ## All Test Details +### โœ… AWS: /legal/third-party-software-tools/ +- **Expected:** /aws/legal/third-party-software-tools +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/legal/third-party-software-tools/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + ### โœ… AWS: /references/coverage/coverage_elb/ - **Expected:** /aws/services/elb - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elb/ @@ -76,6 +178,18 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โœ… AWS: /references/licensing/ +- **Expected:** /aws/licensing +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/licensing/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /legal/ +- **Expected:** /aws/legal/third-party-software-tools +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/legal/third-party-software-tools/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + ### โœ… AWS: /references/coverage/coverage_iotwireless/ - **Expected:** /aws/services/iotwireless - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotwireless/ @@ -112,6 +226,12 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-101/what-is-localstack/ +- **Expected:** https://youtu.be/B2EML5L3-tw?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=B2EML5L3-tw&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/B2EML5L3-tw?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=B2EML5L3-tw&feature=youtu.be + ### โœ… AWS: /references/coverage/coverage_xray/ - **Expected:** /aws/services/xray - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/xray/ @@ -130,6 +250,12 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โœ… AWS: /references/usage-tracking/ +- **Expected:** /aws/capabilities/config/usage-tracking +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/usage-tracking/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + ### โœ… AWS: /user-guide/aws/dms/ - **Expected:** /aws/services/dms - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/dms/ @@ -148,6 +274,12 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โœ… AWS: /references/regions-coverage/ +- **Expected:** /aws/capabilities/config/regions-coverage/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/regions-coverage/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + ### โœ… AWS: /tutorials/elb-load-balancing/ - **Expected:** /aws/tutorials/elb-load-balancing - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/elb-load-balancing/ @@ -256,6 +388,12 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-101/course-overview/ +- **Expected:** https://youtu.be/VLL-BI1AWcc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=VLL-BI1AWcc&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/VLL-BI1AWcc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=VLL-BI1AWcc&feature=youtu.be + ### โœ… AWS: /user-guide/aws/iotwireless/ - **Expected:** /aws/services/iotwireless - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotwireless/ @@ -466,12 +604,30 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-deployment/infra-cloudformation/ +- **Expected:** https://youtu.be/K0OgQ5eq588?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=K0OgQ5eq588&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/K0OgQ5eq588?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=K0OgQ5eq588&feature=youtu.be + ### โœ… AWS: /user-guide/cloud-sandbox/ - **Expected:** /aws/capabilities/cloud-sandbox - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/cloud-sandbox/ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โœ… AWS: /user-guide/localstack-enterprise/ci-analytics/ +- **Expected:** /aws/enterprise/ci-analytics +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/ci-analytics/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + +### โœ… AWS: /references/changelog/ +- **Expected:** /aws/changelog +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/changelog/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + ### โœ… AWS: /references/credentials/ - **Expected:** /aws/capabilities/config/credentials - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/credentials/ @@ -496,6 +652,18 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-deployment/iam-policy-stream/ +- **Expected:** https://youtu.be/TOBLG2Z6xAM?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=TOBLG2Z6xAM&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/TOBLG2Z6xAM?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=TOBLG2Z6xAM&feature=youtu.be + +### โœ… AWS: /references/cross-account-access/ +- **Expected:** /aws/capabilities/config/cross-account-access +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/cross-account-access/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + ### โœ… AWS: /tutorials/reproducible-machine-learning-cloud-pods/ - **Expected:** /aws/tutorials/reproducible-machine-learning-cloud-pods - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/reproducible-machine-learning-cloud-pods/ @@ -538,6 +706,12 @@ - **Status Code:** 404 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-deployment/ls-integrations/ +- **Expected:** https://youtu.be/YV0Zs6UNI9I +- **Final URL:** https://www.youtube.com/watch?v=YV0Zs6UNI9I&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/YV0Zs6UNI9I, Got: https://www.youtube.com/watch?v=YV0Zs6UNI9I&feature=youtu.be + ### โœ… AWS: /references/coverage/coverage_appconfigdata/ - **Expected:** /aws/services/appconfig - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appconfig/ @@ -652,6 +826,12 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โœ… AWS: /user-guide/localstack-enterprise/single-sign-on/azure-ad/ +- **Expected:** /aws/enterprise/sso/azure-ad +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/sso/azure-ad/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + ### โœ… AWS: /user-guide/tools/localstack-desktop/ - **Expected:** /aws/capabilities/web-app/localstack-desktop - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/localstack-desktop/ @@ -712,6 +892,12 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โœ… AWS: /references/iam-coverage/ +- **Expected:** /aws/capabilities/security-testing/iam-coverage/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/security-testing/iam-coverage/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + ### โœ… AWS: /user-guide/aws/transfer/ - **Expected:** /aws/services/transfer - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/transfer/ @@ -946,6 +1132,12 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-101/ +- **Expected:** https://youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk +- **Final URL:** https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk, Got: https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk + ### โœ… AWS: /user-guide/aws/xray/ - **Expected:** /aws/services/xray - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/xray/ @@ -1228,6 +1420,12 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โœ… AWS: /references/arm64-support/ +- **Expected:** /aws/capabilities/config/arm64-support/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/arm64-support/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + ### โœ… AWS: /user-guide/aws/shield/ - **Expected:** /aws/services/shield - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/shield/ @@ -1336,6 +1534,12 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-101/cloud-pods/ +- **Expected:** https://youtu.be/InqTdSvxuag?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=InqTdSvxuag&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/InqTdSvxuag?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=InqTdSvxuag&feature=youtu.be + ### โœ… AWS: /references/coverage/coverage_emr-serverless/ - **Expected:** /aws/services/emr - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/emr/ @@ -1426,6 +1630,12 @@ - **Status Code:** 404 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-101/why-localstack/ +- **Expected:** https://youtu.be/EDGIBpUpYWU?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=EDGIBpUpYWU&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/EDGIBpUpYWU?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=EDGIBpUpYWU&feature=youtu.be + ### โœ… AWS: /user-guide/aws/transcribe/ - **Expected:** /aws/services/transcribe - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/transcribe/ @@ -1498,12 +1708,24 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-deployment/course-overview/ +- **Expected:** https://youtu.be/XDIat6laW28?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XDIat6laW28&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/XDIat6laW28?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XDIat6laW28&feature=youtu.be + ### โœ… AWS: /references/coverage/coverage_codepipeline/ - **Expected:** /aws/services/codepipeline - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codepipeline/ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-deployment/infra-terraform/ +- **Expected:** https://youtu.be/lsF3kewOeBU?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=lsF3kewOeBU&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/lsF3kewOeBU?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=lsF3kewOeBU&feature=youtu.be + ### โœ… AWS: /references/network-troubleshooting/ - **Expected:** /aws/capabilities/networking/ - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/ @@ -1576,6 +1798,12 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-deployment/ +- **Expected:** https://youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O +- **Final URL:** https://www.youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O, Got: https://www.youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O + ### โœ… AWS: /references/coverage/coverage_application-autoscaling/ - **Expected:** /aws/services/appautoscaling - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appautoscaling/ @@ -1606,12 +1834,24 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-deployment/deploy-app-ls/ +- **Expected:** https://youtu.be/qIB79b-iw2U?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=qIB79b-iw2U&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/qIB79b-iw2U?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=qIB79b-iw2U&feature=youtu.be + ### โœ… AWS: /user-guide/aws/organizations/ - **Expected:** /aws/services/organizations - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/organizations/ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-deployment/github-action-ls/ +- **Expected:** https://youtu.be/XNh8aSaT9v0?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XNh8aSaT9v0&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/XNh8aSaT9v0?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XNh8aSaT9v0&feature=youtu.be + ### โœ… AWS: /user-guide/aws/sagemaker/ - **Expected:** /aws/services/sagemaker - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sagemaker/ @@ -1672,6 +1912,12 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โœ… AWS: /user-guide/chaos-engineering/chaos-application-dashboard/ +- **Expected:** /aws/capabilities/chaos-engineering/chaos-application-dashboard +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/chaos-engineering/chaos-application-dashboard +- **Status Code:** 404 +- **Message:** โœ… Redirect successful + ### โœ… AWS: /references/coverage/coverage_route53/ - **Expected:** /aws/services/route53 - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/route53/ @@ -1816,6 +2062,12 @@ - **Status Code:** 404 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-101/web-app-resource-browser/ +- **Expected:** https://youtu.be/SoXtngYp-8k?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=SoXtngYp-8k&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/SoXtngYp-8k?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=SoXtngYp-8k&feature=youtu.be + ### โœ… AWS: /user-guide/integrations/ - **Expected:** /aws/integrations/ - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/ @@ -1900,6 +2152,12 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-101/full-project-demo/ +- **Expected:** https://youtu.be/cQxg3Dnteyc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=cQxg3Dnteyc&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/cQxg3Dnteyc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=cQxg3Dnteyc&feature=youtu.be + ### โœ… AWS: /applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/ - **Expected:** https://github.com/localstack-samples/shipment-list-demo - **Final URL:** https://github.com/localstack-samples/shipment-list-demo @@ -1954,6 +2212,12 @@ - **Status Code:** 200 - **Message:** โœ… Redirect successful +### โŒ AWS: /academy/localstack-deployment/cloud-pods/ +- **Expected:** https://youtu.be/ZJP2xfvwR_g?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF +- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=ZJP2xfvwR_g&feature=youtu.be +- **Status Code:** 200 +- **Message:** โŒ Expected: https://youtu.be/ZJP2xfvwR_g?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=ZJP2xfvwR_g&feature=youtu.be + ### โœ… AWS: /user-guide/aws/appconfig/ - **Expected:** /aws/services/appconfig - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appconfig/ @@ -2032,6 +2296,12 @@ - **Status Code:** 404 - **Message:** โœ… Redirect successful +### โœ… AWS: /references/network-troubleshooting/readme/ +- **Expected:** /aws/capabilities/networking/ +- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/ +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + ### โœ… AWS: /user-guide/aws/codecommit/ - **Expected:** /aws/services/codecommit - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codecommit/ @@ -2128,6 +2398,12 @@ - **Status Code:** 404 - **Message:** โœ… Redirect successful +### โœ… AWS: /academy/ +- **Expected:** https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Final URL:** https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 +- **Status Code:** 200 +- **Message:** โœ… Redirect successful + ### โœ… AWS: /references/coverage/coverage_cloudwatch/ - **Expected:** /aws/services/cloudwatch - **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudwatch/ diff --git a/scripts/redirects/redirects_config.json b/scripts/redirects/redirects_config.json index e6a63826..e1da7977 100644 --- a/scripts/redirects/redirects_config.json +++ b/scripts/redirects/redirects_config.json @@ -783,9 +783,8 @@ }, { "old_link": "/developer-hub/", - "new_link": "/aws/developer-hub", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "/aws/sample-apps", + "status_code": 301 }, { "old_link": "/references/coverage/coverage_firehose/", @@ -839,9 +838,8 @@ }, { "old_link": "/contributing/", - "new_link": "/aws/contributing", - "status_code": 301, - "_note": "MANUALLY REVIEW AND UPDATE new_link" + "new_link": "https://github.com/localstack/localstack/blob/master/docs/CONTRIBUTING.md", + "status_code": 301 }, { "old_link": "/user-guide/aws/scheduler/", From c9fcd16e05146dc8e3d947c83aa12b65dfa5ce8a Mon Sep 17 00:00:00 2001 From: HarshCasper Date: Tue, 1 Jul 2025 00:07:58 +0530 Subject: [PATCH 14/14] fix last set (2) --- public/_redirects | 40 +- scripts/redirects/redirect_test_report.md | 2531 --------------------- scripts/redirects/redirects_config.json | 40 +- 3 files changed, 40 insertions(+), 2571 deletions(-) delete mode 100644 scripts/redirects/redirect_test_report.md diff --git a/public/_redirects b/public/_redirects index eff61329..aa090c4a 100644 --- a/public/_redirects +++ b/public/_redirects @@ -14,7 +14,7 @@ /references/coverage/coverage_pipes/ /aws/services/pipes 301 /user-guide/state-management/persistence/ /aws/capabilities/state-management/persistence 301 /references/coverage/coverage_mq/ /aws/services/mq 301 -/academy/localstack-101/what-is-localstack/ https://youtu.be/B2EML5L3-tw?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 301 +/academy/localstack-101/what-is-localstack/ https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=B2EML5L3-tw&feature=youtu.be 301 /references/coverage/coverage_xray/ /aws/services/xray 301 /references/coverage/coverage_cognito-identity/ /aws/services/cognito 301 /user-guide/aws/ecs/ /aws/services/ecs 301 @@ -28,7 +28,7 @@ /user-guide/aws/eks/ /aws/services/eks 301 /applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/ https://github.com/localstack-samples/appsync-graphql-api-sample 301 /user-guide/aws/cloudfront/ /aws/services/cloudfront 301 -/applications/note-taking-application-using-aws-sdk-for-javascript/ https://github.com/localstack-samples/aws-sdk-js-notes-app 301 +/applications/note-taking-application-using-aws-sdk-for-javascript/ https://github.com/localstack-samples/sample-notes-app-dynamodb-lambda-apigateway 301 /user-guide/state-management/export-import-state/ /aws/capabilities/state-management/export-import-state 301 /references/coverage/coverage_s3control/ /aws/services/s3 301 /references/custom-tls-certificates/ /aws/capabilities/security-testing/custom-tls-certificates 301 @@ -41,7 +41,7 @@ /references/coverage/coverage_glue/ /aws/services/glue 301 /user-guide/aws/ssm/ /aws/services/ssm 301 /references/coverage/coverage_sts/ /aws/services/sts 301 -/academy/localstack-101/course-overview/ https://youtu.be/VLL-BI1AWcc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 301 +/academy/localstack-101/course-overview/ https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=VLL-BI1AWcc&feature=youtu.be 301 /user-guide/aws/iotwireless/ /aws/services/iotwireless 301 /user-guide/integrations/sdks/python/ /aws/integrations/aws-sdks/net/python 301 /user-guide/integrations/crossplane/ /aws/integrations/infrastructure-as-code/crossplane 301 @@ -51,7 +51,7 @@ /user-guide/integrations/devcontainers/ /aws/integrations/containers/devcontainers 301 /references/coverage/coverage_secretsmanager/ /aws/services/secretsmanager 301 /user-guide/ci/travis-ci/ /aws/integrations/continuous-integration/travis-ci 301 -/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/ https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample 301 +/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/ https://github.com/localstack-samples/sample-microservices-apigateway-lambda-dynamodb-sqs 301 /user-guide/lambda-tools/ /aws/tooling/lambda-tools 301 /user-guide/integrations/aws-cdk/ /aws/integrations/aws-native-tools/aws-cdk 301 /references/podman/ /aws/capabilities/config/podman 301 @@ -77,7 +77,7 @@ /user-guide/aws/mediastore/ /aws/services/mediastore 301 /references/coverage/coverage_fis/ /aws/services/fis 301 /user-guide/aws/logs/ /aws/services/cloudwatchlogs 301 -/academy/localstack-deployment/infra-cloudformation/ https://youtu.be/K0OgQ5eq588?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 +/academy/localstack-deployment/infra-cloudformation/ https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=K0OgQ5eq588&feature=youtu.be 301 /user-guide/cloud-sandbox/ /aws/capabilities/cloud-sandbox 301 /user-guide/localstack-enterprise/ci-analytics/ /aws/enterprise/ci-analytics 301 /references/changelog/ /aws/changelog 301 @@ -85,7 +85,7 @@ /references/coverage/coverage_elasticbeanstalk/ /aws/services/elasticbeanstalk 301 /user-guide/web-application/instance-management/ /aws/capabilities/web-app/instance-management 301 /references/coverage/coverage_qldb/ /aws/services/qldb 301 -/academy/localstack-deployment/iam-policy-stream/ https://youtu.be/TOBLG2Z6xAM?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 +/academy/localstack-deployment/iam-policy-stream/ https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=TOBLG2Z6xAM&feature=youtu.be 301 /references/cross-account-access/ /aws/capabilities/config/cross-account-access 301 /tutorials/reproducible-machine-learning-cloud-pods/ /aws/tutorials/reproducible-machine-learning-cloud-pods 301 /references/coverage/coverage_ecs/ /aws/services/ecs 301 @@ -94,7 +94,7 @@ /user-guide/aws/ /aws/services/ 301 /references/lambda-provider-v2/ /aws/services/lambda 301 /user-guide/web-application/ci-keys/ /aws/capabilities/web-app/ci-keys 301 -/academy/localstack-deployment/ls-integrations/ https://youtu.be/YV0Zs6UNI9I 301 +/academy/localstack-deployment/ls-integrations/ https://www.youtube.com/watch?v=YV0Zs6UNI9I&feature=youtu.be 301 /references/coverage/coverage_appconfigdata/ /aws/services/appconfig 301 /applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/ https://github.com/localstack-samples/serverless-image-resizer 301 /user-guide/security-testing/ /aws/capabilities/security-testing/ 301 @@ -167,11 +167,11 @@ /user-guide/aws/scheduler/ /aws/services/scheduler 301 /user-guide/integrations/quarkus/ /aws/integrations/app-frameworks/quarkus 301 /user-guide/aws/servicediscovery/ /aws/services/servicediscovery 301 -/academy/localstack-101/ https://youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk 301 +/academy/localstack-101/ https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk 301 /user-guide/aws/xray/ /aws/services/xray 301 /user-guide/aws/pca/ /aws/services/pca 301 /user-guide/aws/waf/ /aws/services/waf 301 -/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/ https://github.com/localstack-samples/event-driven-architecture-with-amazon-sns-fifo 301 +/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/ https://github.com/localstack-samples/sample-sam-sns-fifo-dynamodb-lambda 301 /user-guide/aws/apigateway/ /aws/services/apigateway 301 /user-guide/integrations/cloud-custodian/ /aws/integrations/infrastructure-as-code/cloud-custodian/ 301 /references/coverage/coverage_lambda/ /aws/services/lambda 301 @@ -195,7 +195,7 @@ /user-guide/aws/cloudformation/ /aws/services/cloudformation 301 /tutorials/route-53-failover/ /aws/tutorials/route-53-failover 301 /user-guide/web-application/resource-browser/ /aws/capabilities/web-app/resource-browser 301 -/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/ https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app 301 +/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/ https://github.com/localstack-samples/sample-loan-broker-stepfunctions-lambda 301 /references/coverage/coverage_resource-groups/ /aws/services/resourcegroups 301 /user-guide/state-management/support/ /aws/capabilities/state-management/persistence-coverage 301 /references/coverage/coverage_redshift/ /aws/services/redshift 301 @@ -234,7 +234,7 @@ /user-guide/web-application/stack-insights/ /aws/capabilities/web-app/stack-insights 301 /user-guide/aws/autoscaling/ /aws/services/autoscaling 301 /references/coverage/coverage_opensearch/ /aws/services/opensearch 301 -/academy/localstack-101/cloud-pods/ https://youtu.be/InqTdSvxuag?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 301 +/academy/localstack-101/cloud-pods/ https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=InqTdSvxuag&feature=youtu.be 301 /references/coverage/coverage_emr-serverless/ /aws/services/emr 301 /user-guide/aws/cloudwatch/ /aws/services/cloudwatch 301 /user-guide/aws/elasticbeanstalk/ /aws/services/elasticbeanstalk 301 @@ -250,7 +250,7 @@ /user-guide/aws/timestream/ /aws/services/timestream 301 /references/coverage/coverage_pinpoint/ /aws/services/pinpoint 301 /applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds/ https://github.com/localstack-samples-samples/sample-serverless-rds-proxy-demo 301 -/academy/localstack-101/why-localstack/ https://youtu.be/EDGIBpUpYWU?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 301 +/academy/localstack-101/why-localstack/ https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=EDGIBpUpYWU&feature=youtu.be 301 /user-guide/aws/transcribe/ /aws/services/transcribe 301 /references/coverage/coverage_cloudformation/ /aws/services/cloudformation 301 /references/coverage/coverage_apigatewayv2/ /aws/services/apigateway 301 @@ -263,9 +263,9 @@ /tutorials/cloud-pods-collaborative-debugging/ /aws/tutorials/cloud-pods-collaborative-debugging 301 /references/coverage/coverage_emr/ /aws/services/emr 301 /user-guide/aws/iam/ /aws/services/iam 301 -/academy/localstack-deployment/course-overview/ https://youtu.be/XDIat6laW28?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 +/academy/localstack-deployment/course-overview/ https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XDIat6laW28&feature=youtu.be 301 /references/coverage/coverage_codepipeline/ /aws/services/codepipeline 301 -/academy/localstack-deployment/infra-terraform/ https://youtu.be/lsF3kewOeBU?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 +/academy/localstack-deployment/infra-terraform/ https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=lsF3kewOeBU&feature=youtu.be 301 /references/network-troubleshooting/ /aws/capabilities/networking/ 301 /user-guide/ci/gitlab-ci/ /aws/integrations/continuous-integration/gitlab-ci 301 /user-guide/aws/kms/ /aws/services/kms 301 @@ -278,15 +278,15 @@ /user-guide/web-application/accounts/ /aws/capabilities/web-app/accounts 301 /references/coverage/coverage_appsync/ /aws/services/appsync 301 /references/coverage/coverage_ecr/ /aws/services/ecr 301 -/academy/localstack-deployment/ https://youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O 301 +/academy/localstack-deployment/ https://www.youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O 301 /references/coverage/coverage_application-autoscaling/ /aws/services/appautoscaling 301 /user-guide/lambda-tools/debugging/ /aws/tooling/lambda-tools/debugging 301 /user-guide/integrations/rancher-desktop/ /aws/integrations/containers/rancher-desktop 301 /user-guide/integrations/sdks/ruby/ /aws/integrations/aws-sdks/net/ruby 301 /user-guide/aws/mwaa/ /aws/services/mwaa 301 -/academy/localstack-deployment/deploy-app-ls/ https://youtu.be/qIB79b-iw2U?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 +/academy/localstack-deployment/deploy-app-ls/ https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=qIB79b-iw2U&feature=youtu.be 301 /user-guide/aws/organizations/ /aws/services/organizations 301 -/academy/localstack-deployment/github-action-ls/ https://youtu.be/XNh8aSaT9v0?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 +/academy/localstack-deployment/github-action-ls/ https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XNh8aSaT9v0&feature=youtu.be 301 /user-guide/aws/sagemaker/ /aws/services/sagemaker 301 /references/configuration/ /aws/capabilities/config/configuration 301 /user-guide/chaos-engineering/chaos-api/ /aws/capabilities/chaos-engineering/chaos-api 301 @@ -322,7 +322,7 @@ /user-guide/integrations/gitpod/ /aws/integrations/containers/gitpod/ 301 /user-guide/aws/managedblockchain/ /aws/services/managedblockchain 301 /applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation/ https://github.com/localstack-samples/query-data-s3-athena-glue-sample 301 -/academy/localstack-101/web-app-resource-browser/ https://youtu.be/SoXtngYp-8k?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 301 +/academy/localstack-101/web-app-resource-browser/ https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=SoXtngYp-8k&feature=youtu.be 301 /user-guide/integrations/ /aws/integrations/ 301 /user-guide/aws/codebuild/ /aws/services/codebuild 301 /user-guide/aws/ses/ /aws/services/ses 301 @@ -337,7 +337,7 @@ /user-guide/localstack-enterprise/single-sign-on/ /aws/enterprise/sso 301 /user-guide/aws/redshift/ /aws/services/redshift 301 /references/coverage/coverage_verifiedpermissions/ /aws/services/verifiedpermissions 301 -/academy/localstack-101/full-project-demo/ https://youtu.be/cQxg3Dnteyc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 301 +/academy/localstack-101/full-project-demo/ https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=cQxg3Dnteyc&feature=youtu.be 301 /applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/ https://github.com/localstack-samples/shipment-list-demo 301 /references/coverage/coverage_iotanalytics/ /aws/services/iotanalytics 301 /user-guide/integrations/chalice/ /aws/integrations/aws-native-tools/aws-chalice/ 301 @@ -347,7 +347,7 @@ /references/coverage/coverage_config/ /aws/services/config 301 /references/coverage/coverage_account/ /aws/services/account 301 /user-guide/web-application/stack-overview/ /aws/capabilities/web-app/stack-overview 301 -/academy/localstack-deployment/cloud-pods/ https://youtu.be/ZJP2xfvwR_g?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF 301 +/academy/localstack-deployment/cloud-pods/ https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=ZJP2xfvwR_g&feature=youtu.be 301 /user-guide/aws/appconfig/ /aws/services/appconfig 301 /user-guide/aws/cognito/ /aws/services/cognito 301 /references/coverage/coverage_bedrock/ /aws/services/bedrock 301 diff --git a/scripts/redirects/redirect_test_report.md b/scripts/redirects/redirect_test_report.md deleted file mode 100644 index f8dc36bc..00000000 --- a/scripts/redirects/redirect_test_report.md +++ /dev/null @@ -1,2531 +0,0 @@ -# LocalStack Redirect Test Report -**Generated:** 2025-06-30 23:32:43 -**Staging URL:** https://redirects.localstack-docs.pages.dev - -## Summary -- **Total tests:** 400 -- **Passed:** 380 โœ… -- **Failed:** 20 โŒ -- **Success rate:** 95.0% - -## Failed Tests -### AWS: /academy/localstack-101/what-is-localstack/ -- **Expected:** https://youtu.be/B2EML5L3-tw?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=B2EML5L3-tw&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/B2EML5L3-tw?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=B2EML5L3-tw&feature=youtu.be - -### AWS: /applications/note-taking-application-using-aws-sdk-for-javascript/ -- **Expected:** https://github.com/localstack-samples/aws-sdk-js-notes-app -- **Got:** https://github.com/localstack-samples/sample-notes-app-dynamodb-lambda-apigateway -- **Status:** 200 -- **Message:** โŒ Expected: https://github.com/localstack-samples/aws-sdk-js-notes-app, Got: https://github.com/localstack-samples/sample-notes-app-dynamodb-lambda-apigateway - -### AWS: /academy/localstack-101/course-overview/ -- **Expected:** https://youtu.be/VLL-BI1AWcc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=VLL-BI1AWcc&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/VLL-BI1AWcc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=VLL-BI1AWcc&feature=youtu.be - -### AWS: /applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/ -- **Expected:** https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample -- **Got:** https://github.com/localstack-samples/sample-microservices-apigateway-lambda-dynamodb-sqs -- **Status:** 200 -- **Message:** โŒ Expected: https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample, Got: https://github.com/localstack-samples/sample-microservices-apigateway-lambda-dynamodb-sqs - -### AWS: /academy/localstack-deployment/infra-cloudformation/ -- **Expected:** https://youtu.be/K0OgQ5eq588?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=K0OgQ5eq588&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/K0OgQ5eq588?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=K0OgQ5eq588&feature=youtu.be - -### AWS: /academy/localstack-deployment/iam-policy-stream/ -- **Expected:** https://youtu.be/TOBLG2Z6xAM?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=TOBLG2Z6xAM&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/TOBLG2Z6xAM?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=TOBLG2Z6xAM&feature=youtu.be - -### AWS: /academy/localstack-deployment/ls-integrations/ -- **Expected:** https://youtu.be/YV0Zs6UNI9I -- **Got:** https://www.youtube.com/watch?v=YV0Zs6UNI9I&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/YV0Zs6UNI9I, Got: https://www.youtube.com/watch?v=YV0Zs6UNI9I&feature=youtu.be - -### AWS: /academy/localstack-101/ -- **Expected:** https://youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk -- **Got:** https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk -- **Status:** 200 -- **Message:** โŒ Expected: https://youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk, Got: https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk - -### AWS: /applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/ -- **Expected:** https://github.com/localstack-samples/event-driven-architecture-with-amazon-sns-fifo -- **Got:** https://github.com/localstack-samples/sample-sam-sns-fifo-dynamodb-lambda -- **Status:** 200 -- **Message:** โŒ Expected: https://github.com/localstack-samples/event-driven-architecture-with-amazon-sns-fifo, Got: https://github.com/localstack-samples/sample-sam-sns-fifo-dynamodb-lambda - -### AWS: /applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/ -- **Expected:** https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app -- **Got:** https://github.com/localstack-samples/sample-loan-broker-stepfunctions-lambda -- **Status:** 200 -- **Message:** โŒ Expected: https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app, Got: https://github.com/localstack-samples/sample-loan-broker-stepfunctions-lambda - -### AWS: /academy/localstack-101/cloud-pods/ -- **Expected:** https://youtu.be/InqTdSvxuag?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=InqTdSvxuag&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/InqTdSvxuag?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=InqTdSvxuag&feature=youtu.be - -### AWS: /academy/localstack-101/why-localstack/ -- **Expected:** https://youtu.be/EDGIBpUpYWU?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=EDGIBpUpYWU&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/EDGIBpUpYWU?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=EDGIBpUpYWU&feature=youtu.be - -### AWS: /academy/localstack-deployment/course-overview/ -- **Expected:** https://youtu.be/XDIat6laW28?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XDIat6laW28&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/XDIat6laW28?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XDIat6laW28&feature=youtu.be - -### AWS: /academy/localstack-deployment/infra-terraform/ -- **Expected:** https://youtu.be/lsF3kewOeBU?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=lsF3kewOeBU&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/lsF3kewOeBU?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=lsF3kewOeBU&feature=youtu.be - -### AWS: /academy/localstack-deployment/ -- **Expected:** https://youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O -- **Got:** https://www.youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O -- **Status:** 200 -- **Message:** โŒ Expected: https://youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O, Got: https://www.youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O - -### AWS: /academy/localstack-deployment/deploy-app-ls/ -- **Expected:** https://youtu.be/qIB79b-iw2U?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=qIB79b-iw2U&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/qIB79b-iw2U?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=qIB79b-iw2U&feature=youtu.be - -### AWS: /academy/localstack-deployment/github-action-ls/ -- **Expected:** https://youtu.be/XNh8aSaT9v0?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XNh8aSaT9v0&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/XNh8aSaT9v0?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XNh8aSaT9v0&feature=youtu.be - -### AWS: /academy/localstack-101/web-app-resource-browser/ -- **Expected:** https://youtu.be/SoXtngYp-8k?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=SoXtngYp-8k&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/SoXtngYp-8k?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=SoXtngYp-8k&feature=youtu.be - -### AWS: /academy/localstack-101/full-project-demo/ -- **Expected:** https://youtu.be/cQxg3Dnteyc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=cQxg3Dnteyc&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/cQxg3Dnteyc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=cQxg3Dnteyc&feature=youtu.be - -### AWS: /academy/localstack-deployment/cloud-pods/ -- **Expected:** https://youtu.be/ZJP2xfvwR_g?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Got:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=ZJP2xfvwR_g&feature=youtu.be -- **Status:** 200 -- **Message:** โŒ Expected: https://youtu.be/ZJP2xfvwR_g?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=ZJP2xfvwR_g&feature=youtu.be - -## All Test Details -### โœ… AWS: /legal/third-party-software-tools/ -- **Expected:** /aws/legal/third-party-software-tools -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/legal/third-party-software-tools/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_elb/ -- **Expected:** /aws/services/elb -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elb/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/batch/ -- **Expected:** /aws/services/batch -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/batch/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_scheduler/ -- **Expected:** /aws/services/scheduler -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/scheduler/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/extensions/ -- **Expected:** /aws/capabilities/extensions -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/extensions -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/s3-static-website-terraform/ -- **Expected:** /aws/tutorials/s3-static-website-terraform -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/s3-static-website-terraform/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_rds-data/ -- **Expected:** /aws/services/rds -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/rds/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_ec2/ -- **Expected:** /aws/services/ec2 -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ec2/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/licensing/ -- **Expected:** /aws/licensing -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/licensing/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /legal/ -- **Expected:** /aws/legal/third-party-software-tools -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/legal/third-party-software-tools/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_iotwireless/ -- **Expected:** /aws/services/iotwireless -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotwireless/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_mwaa/ -- **Expected:** /aws/services/mwaa -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mwaa/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /applications/amazon-rds-initialization-using-cdk-lambda-ecr-and-secrets-manager/ -- **Expected:** https://github.com/localstack-samples/amazon-rds-init-cdk -- **Final URL:** https://github.com/localstack-samples/amazon-rds-init-cdk -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_pipes/ -- **Expected:** /aws/services/pipes -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/pipes/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/state-management/persistence/ -- **Expected:** /aws/capabilities/state-management/persistence -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/persistence/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_mq/ -- **Expected:** /aws/services/mq -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mq/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-101/what-is-localstack/ -- **Expected:** https://youtu.be/B2EML5L3-tw?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=B2EML5L3-tw&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/B2EML5L3-tw?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=B2EML5L3-tw&feature=youtu.be - -### โœ… AWS: /references/coverage/coverage_xray/ -- **Expected:** /aws/services/xray -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/xray/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_cognito-identity/ -- **Expected:** /aws/services/cognito -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cognito/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/ecs/ -- **Expected:** /aws/services/ecs -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ecs/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/usage-tracking/ -- **Expected:** /aws/capabilities/config/usage-tracking -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/usage-tracking/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/dms/ -- **Expected:** /aws/services/dms -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/dms/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_managedblockchain/ -- **Expected:** /aws/services/managedblockchain -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/managedblockchain/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /applications/search-application-with-lambda-kinesis-firehose-elasticsearch-s3/ -- **Expected:** https://github.com/localstack-samples/sample-fuzzy-movie-search-lambda-kinesis-elasticsearch -- **Final URL:** https://github.com/localstack-samples/sample-fuzzy-movie-search-lambda-kinesis-elasticsearch -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/regions-coverage/ -- **Expected:** /aws/capabilities/config/regions-coverage/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/regions-coverage/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/elb-load-balancing/ -- **Expected:** /aws/tutorials/elb-load-balancing -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/elb-load-balancing/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/docker-images/ -- **Expected:** /aws/capabilities/config/docker-images -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/docker-images/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/eks/ -- **Expected:** /aws/services/eks -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/eks/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /applications/appsync-graphql-apis-for-dynamodb-and-rds-aurora-postgresql/ -- **Expected:** https://github.com/localstack-samples/appsync-graphql-api-sample -- **Final URL:** https://github.com/localstack-samples/appsync-graphql-api-sample -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/cloudfront/ -- **Expected:** /aws/services/cloudfront -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudfront/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /applications/note-taking-application-using-aws-sdk-for-javascript/ -- **Expected:** https://github.com/localstack-samples/aws-sdk-js-notes-app -- **Final URL:** https://github.com/localstack-samples/sample-notes-app-dynamodb-lambda-apigateway -- **Status Code:** 200 -- **Message:** โŒ Expected: https://github.com/localstack-samples/aws-sdk-js-notes-app, Got: https://github.com/localstack-samples/sample-notes-app-dynamodb-lambda-apigateway - -### โœ… AWS: /user-guide/state-management/export-import-state/ -- **Expected:** /aws/capabilities/state-management/export-import-state -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/export-import-state/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_s3control/ -- **Expected:** /aws/services/s3 -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/s3/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/custom-tls-certificates/ -- **Expected:** /aws/capabilities/security-testing/custom-tls-certificates -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/security-testing/custom-tls-certificates/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_codecommit/ -- **Expected:** /aws/services/codecommit -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codecommit/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/localstack-enterprise/enterprise-image/ -- **Expected:** /aws/enterprise/enterprise-image -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/enterprise-image/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/tools/testing-utils/ -- **Expected:** /aws/tooling/testing-utils -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/testing-utils/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/codedeploy/ -- **Expected:** /aws/services/codedeploy -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codedeploy/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_serverlessrepo/ -- **Expected:** /aws/services/serverlessrepo -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/serverlessrepo/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/resource_groups/ -- **Expected:** /aws/services/resource_groups -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/resource_groups -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_glue/ -- **Expected:** /aws/services/glue -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/glue/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/ssm/ -- **Expected:** /aws/services/ssm -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ssm/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_sts/ -- **Expected:** /aws/services/sts -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sts/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-101/course-overview/ -- **Expected:** https://youtu.be/VLL-BI1AWcc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=VLL-BI1AWcc&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/VLL-BI1AWcc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=VLL-BI1AWcc&feature=youtu.be - -### โœ… AWS: /user-guide/aws/iotwireless/ -- **Expected:** /aws/services/iotwireless -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotwireless/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/sdks/python/ -- **Expected:** /aws/integrations/aws-sdks/net/python -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/python -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/crossplane/ -- **Expected:** /aws/integrations/infrastructure-as-code/crossplane -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/infrastructure-as-code/crossplane/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_elbv2/ -- **Expected:** /aws/services/elb -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elb/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/openshift/ -- **Expected:** /aws/integrations/containers/openshift -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/containers/openshift/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/memorydb/ -- **Expected:** /aws/services/memorydb -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/memorydb/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/devcontainers/ -- **Expected:** /aws/integrations/containers/devcontainers -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/containers/devcontainers/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_secretsmanager/ -- **Expected:** /aws/services/secretsmanager -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/secretsmanager/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/ci/travis-ci/ -- **Expected:** /aws/integrations/continuous-integration/travis-ci -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/continuous-integration/travis-ci/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/ -- **Expected:** https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample -- **Final URL:** https://github.com/localstack-samples/sample-microservices-apigateway-lambda-dynamodb-sqs -- **Status Code:** 200 -- **Message:** โŒ Expected: https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample, Got: https://github.com/localstack-samples/sample-microservices-apigateway-lambda-dynamodb-sqs - -### โœ… AWS: /user-guide/lambda-tools/ -- **Expected:** /aws/tooling/lambda-tools -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/lambda-tools/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/aws-cdk/ -- **Expected:** /aws/integrations/aws-native-tools/aws-cdk -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-native-tools/aws-cdk/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/podman/ -- **Expected:** /aws/capabilities/config/podman -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/podman/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_memorydb/ -- **Expected:** /aws/services/memorydb -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/memorydb/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/former2/ -- **Expected:** /aws/integrations/infrastructure-as-code/former2 -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/infrastructure-as-code/former2/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/localstack-enterprise/k8s-operator/ -- **Expected:** /aws/enterprise/k8s-operator -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/k8s-operator/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/aws-cli/ -- **Expected:** /aws/integrations/aws-native-tools/aws-cli -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-native-tools/aws-cli/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_kinesisanalyticsv2/ -- **Expected:** /aws/services/apacheflink -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/apacheflink/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_amplify/ -- **Expected:** /aws/services/amplify -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/amplify/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/events/ -- **Expected:** /aws/services/events -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/events/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/pipes/ -- **Expected:** /aws/services/pipes -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/pipes/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/ci/circle-ci/ -- **Expected:** /aws/integrations/continuous-integration/circle-ci -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/continuous-integration/circle-ci -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/network-troubleshooting/transparent-endpoint-injection/ -- **Expected:** /aws/capabilities/networking/transparent-endpoint-injection -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/transparent-endpoint-injection/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_kafka/ -- **Expected:** /aws/services/msk -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/msk/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_servicediscovery/ -- **Expected:** /aws/services/servicediscovery -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/servicediscovery/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_apigateway/ -- **Expected:** /aws/services/apigateway -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/apigateway/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/ -- **Expected:** /aws/tutorials -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_kinesis/ -- **Expected:** /aws/services/kinesis -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kinesis/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_autoscaling/ -- **Expected:** /aws/services/autoscaling -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/autoscaling/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_kms/ -- **Expected:** /aws/services/kms -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kms/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /applications/step-up-authentication-using-amazon-cognito/ -- **Expected:** https://github.com/localstack-samples/step-up-auth-sample -- **Final URL:** https://github.com/localstack-samples/step-up-auth-sample -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_athena/ -- **Expected:** /aws/services/athena -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/athena/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/mediastore/ -- **Expected:** /aws/services/mediastore -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mediastore/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_fis/ -- **Expected:** /aws/services/fis -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/fis/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/logs/ -- **Expected:** /aws/services/cloudwatchlogs -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudwatchlogs/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-deployment/infra-cloudformation/ -- **Expected:** https://youtu.be/K0OgQ5eq588?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=K0OgQ5eq588&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/K0OgQ5eq588?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=K0OgQ5eq588&feature=youtu.be - -### โœ… AWS: /user-guide/cloud-sandbox/ -- **Expected:** /aws/capabilities/cloud-sandbox -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/cloud-sandbox/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/localstack-enterprise/ci-analytics/ -- **Expected:** /aws/enterprise/ci-analytics -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/ci-analytics/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/changelog/ -- **Expected:** /aws/changelog -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/changelog/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/credentials/ -- **Expected:** /aws/capabilities/config/credentials -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/credentials/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_elasticbeanstalk/ -- **Expected:** /aws/services/elasticbeanstalk -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elasticbeanstalk/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/web-application/instance-management/ -- **Expected:** /aws/capabilities/web-app/instance-management -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/instance-management/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_qldb/ -- **Expected:** /aws/services/qldb -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/qldb/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-deployment/iam-policy-stream/ -- **Expected:** https://youtu.be/TOBLG2Z6xAM?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=TOBLG2Z6xAM&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/TOBLG2Z6xAM?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=TOBLG2Z6xAM&feature=youtu.be - -### โœ… AWS: /references/cross-account-access/ -- **Expected:** /aws/capabilities/config/cross-account-access -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/cross-account-access/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/reproducible-machine-learning-cloud-pods/ -- **Expected:** /aws/tutorials/reproducible-machine-learning-cloud-pods -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/reproducible-machine-learning-cloud-pods/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_ecs/ -- **Expected:** /aws/services/ecs -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ecs/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_acm/ -- **Expected:** /aws/services/acm -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/acm/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_cloudtrail/ -- **Expected:** /aws/services/cloudtrail -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudtrail/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/ -- **Expected:** /aws/services/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/lambda-provider-v2/ -- **Expected:** /aws/services/lambda -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/lambda/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/web-application/ci-keys/ -- **Expected:** /aws/capabilities/web-app/ci-keys -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/ci-keys -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-deployment/ls-integrations/ -- **Expected:** https://youtu.be/YV0Zs6UNI9I -- **Final URL:** https://www.youtube.com/watch?v=YV0Zs6UNI9I&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/YV0Zs6UNI9I, Got: https://www.youtube.com/watch?v=YV0Zs6UNI9I&feature=youtu.be - -### โœ… AWS: /references/coverage/coverage_appconfigdata/ -- **Expected:** /aws/services/appconfig -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appconfig/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /applications/serverless-image-resizer-with-aws-lambda-s3-sns-and-ses/ -- **Expected:** https://github.com/localstack-samples/serverless-image-resizer -- **Final URL:** https://github.com/localstack-samples/serverless-image-resizer -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/security-testing/ -- **Expected:** /aws/capabilities/security-testing/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/security-testing/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/applicationautoscaling/ -- **Expected:** /aws/services/appautoscaling -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appautoscaling/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/bedrock/ -- **Expected:** /aws/services/bedrock -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/bedrock/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/sts/ -- **Expected:** /aws/services/sts -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sts/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/docdb/ -- **Expected:** /aws/services/docdb -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/docdb/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/tools/transparent-endpoint-injection/ -- **Expected:** /aws/capabilities/networking/transparent-endpoint-injection -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/transparent-endpoint-injection/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/account/ -- **Expected:** /aws/services/account -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/account/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_efs/ -- **Expected:** /aws/services/efs -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/efs/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/localstack-enterprise/ -- **Expected:** /aws/enterprise/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /getting-started/auth-token/ -- **Expected:** /aws/getting-started/auth-token -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/auth-token/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/localstack-enterprise/enterprise-support/ -- **Expected:** /aws/enterprise/enterprise-support -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/enterprise-support/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/support/ -- **Expected:** /aws/services/support -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/support/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_resourcegroupstaggingapi/ -- **Expected:** /aws/services/resourcegroups -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/resourcegroups/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/external-ports/ -- **Expected:** /aws/capabilities/networking/external-port-range -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/external-port-range/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_ce/ -- **Expected:** /aws/services/ce -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ce/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/extensions/getting-started/ -- **Expected:** /aws/tooling/extensions/getting-started -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/extensions/getting-started/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/sdks/ -- **Expected:** /aws/integrations/aws-sdks/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/localstack-enterprise/single-sign-on/azure-ad/ -- **Expected:** /aws/enterprise/sso/azure-ad -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/sso/azure-ad/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/tools/localstack-desktop/ -- **Expected:** /aws/capabilities/web-app/localstack-desktop -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/localstack-desktop/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_es/ -- **Expected:** /aws/services/es -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/es/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/sdks/javascript/ -- **Expected:** /aws/integrations/aws-sdks/net/javascript -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/javascript -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_iam/ -- **Expected:** /aws/services/iam -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iam/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/tools/localsurf/ -- **Expected:** /aws/tooling/localsurf -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/localsurf/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/extensions/extensions-library/ -- **Expected:** /aws/tooling/extensions/extensions-library -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/extensions/extensions-library/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/ecs-ecr-container-app/ -- **Expected:** /aws/tutorials/ecs-ecr-container-app -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/ecs-ecr-container-app/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_elastictranscoder/ -- **Expected:** /aws/services/elastictranscoder -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elastictranscoder/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/feature-coverage/ -- **Expected:** /aws/services/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/lambda/ -- **Expected:** /aws/services/lambda -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/lambda/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/iam-coverage/ -- **Expected:** /aws/capabilities/security-testing/iam-coverage/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/security-testing/iam-coverage/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/transfer/ -- **Expected:** /aws/services/transfer -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/transfer/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_batch/ -- **Expected:** /aws/services/batch -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/batch/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_neptune/ -- **Expected:** /aws/services/neptune -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/neptune/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /applications/temp/ -- **Expected:** /aws/sample-apps/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/sample-apps/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /applications/serverless-container-based-apis-with-amazon-ecs-api-gateway/ -- **Expected:** https://github.com/localstack-samples/serverless-api-ecs-apigateway-sample -- **Final URL:** https://github.com/localstack-samples/serverless-api-ecs-apigateway-sample -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/s3/ -- **Expected:** /aws/services/s3 -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/s3/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/lambda-tools/vscode-extension/ -- **Expected:** /aws/tooling/lambda-tools/vscode-extension -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/lambda-tools/vscode-extension/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/chaos-engineering/ -- **Expected:** /aws/capabilities/chaos-engineering/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/chaos-engineering/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /persistence/supported/ -- **Expected:** /aws/capabilities/state-management/persistence-coverage -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/persistence-coverage/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/ce/ -- **Expected:** /aws/services/ce -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ce/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/kinesisanalyticsv2/ -- **Expected:** /aws/services/kinesisanalyticsv2 -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kinesisanalyticsv2 -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/state-management/cloud-pods/ -- **Expected:** /aws/capabilities/state-management/cloud-pods -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/cloud-pods/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_transcribe/ -- **Expected:** /aws/services/transcribe -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/transcribe/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_mediastore-data/ -- **Expected:** /aws/services/mediastore -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mediastore/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/route53/ -- **Expected:** /aws/services/route53 -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/route53/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/config/ -- **Expected:** /aws/services/config -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/config/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_identitystore/ -- **Expected:** /aws/services/identitystore -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/identitystore/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_codedeploy/ -- **Expected:** /aws/services/codedeploy -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codedeploy/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/msk/ -- **Expected:** /aws/services/msk -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/msk/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/state-management/ -- **Expected:** /aws/capabilities/state-management/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/copilot/ -- **Expected:** /aws/integrations/aws-native-tools/aws-copilot-cli/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-native-tools/aws-copilot-cli/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/eksctl/ -- **Expected:** /aws/integrations/containers/eksctl/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/containers/eksctl/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /getting-started/faq/ -- **Expected:** /aws/getting-started/faq -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/faq/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/elb/ -- **Expected:** /aws/services/elb -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elb/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/kubernetes/ -- **Expected:** /aws/integrations/containers/kubernetes/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/containers/kubernetes/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/lakeformation/ -- **Expected:** /aws/services/lakeformation -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/lakeformation/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_firehose/ -- **Expected:** /aws/services/firehose -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/firehose/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/verifiedpermissions/ -- **Expected:** /aws/services/verifiedpermissions -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/verifiedpermissions/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_kinesisanalytics/ -- **Expected:** /aws/services/kinesisanalytics -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kinesisanalytics/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/sns/ -- **Expected:** /aws/services/sns -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sns/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/tools/aws-replicator/ -- **Expected:** /aws/tooling/aws-replicator -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/aws-replicator/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/serverless-framework/ -- **Expected:** /aws/integrations/app-frameworks/serverless-framework -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/app-frameworks/serverless-framework/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_sqs/ -- **Expected:** /aws/services/sqs -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sqs/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/appsync/ -- **Expected:** /aws/services/appsync -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appsync/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/schema-evolution-glue-msk/ -- **Expected:** /aws/tutorials/schema-evolution-glue-msk -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/schema-evolution-glue-msk/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/ci/bitbucket/ -- **Expected:** /aws/integrations/continuous-integration/bitbucket -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/continuous-integration/bitbucket/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/scheduler/ -- **Expected:** /aws/services/scheduler -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/scheduler/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/quarkus/ -- **Expected:** /aws/integrations/app-frameworks/quarkus -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/app-frameworks/quarkus/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/servicediscovery/ -- **Expected:** /aws/services/servicediscovery -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/servicediscovery/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-101/ -- **Expected:** https://youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk -- **Final URL:** https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk, Got: https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk - -### โœ… AWS: /user-guide/aws/xray/ -- **Expected:** /aws/services/xray -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/xray/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/pca/ -- **Expected:** /aws/services/pca -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/pca/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/waf/ -- **Expected:** /aws/services/waf -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/waf/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/ -- **Expected:** https://github.com/localstack-samples/event-driven-architecture-with-amazon-sns-fifo -- **Final URL:** https://github.com/localstack-samples/sample-sam-sns-fifo-dynamodb-lambda -- **Status Code:** 200 -- **Message:** โŒ Expected: https://github.com/localstack-samples/event-driven-architecture-with-amazon-sns-fifo, Got: https://github.com/localstack-samples/sample-sam-sns-fifo-dynamodb-lambda - -### โœ… AWS: /user-guide/aws/apigateway/ -- **Expected:** /aws/services/apigateway -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/apigateway/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/cloud-custodian/ -- **Expected:** /aws/integrations/infrastructure-as-code/cloud-custodian/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/infrastructure-as-code/cloud-custodian/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_lambda/ -- **Expected:** /aws/services/lambda -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/lambda/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/sdks/java/ -- **Expected:** /aws/integrations/aws-sdks/net/java -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/java -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_logs/ -- **Expected:** /aws/services/logs -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/logs -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_mediastore/ -- **Expected:** /aws/services/mediastore -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mediastore/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/kafka/ -- **Expected:** /aws/integrations/messaging/selfmanaged-kafka-cluster/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/messaging/selfmanaged-kafka-cluster/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/chaos-engineering/fault-injection-service/ -- **Expected:** /aws/capabilities/chaos-engineering/fault-injection-service -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/chaos-engineering/fault-injection-service -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/logging/ -- **Expected:** /aws/capabilities/config/logging -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/logging/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/java-notification-app/ -- **Expected:** /aws/tutorials/java-notification-app -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/java-notification-app/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /applications/serverless-transcription-application-using-transcribe-s3-lambda-sqs-and-ses/ -- **Expected:** https://github.com/localstack-samples/sample-transcribe-app -- **Final URL:** https://github.com/localstack-samples/sample-transcribe-app -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/route53resolver/ -- **Expected:** /aws/services/route53resolver -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/route53resolver/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_wafv2/ -- **Expected:** /aws/services/waf -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/waf/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/sdks/cpp/ -- **Expected:** /aws/integrations/aws-sdks/net/cpp -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/cpp -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/testcontainers/ -- **Expected:** /aws/integrations/testing/testcontainers -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/testing/testcontainers/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/internal-endpoints/ -- **Expected:** /aws/capabilities/networking/internal-endpoints -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/internal-endpoints/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/iotanalytics/ -- **Expected:** /aws/services/iotanalytics -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotanalytics/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/lambda-ecr-container-images/ -- **Expected:** /aws/tutorials/lambda-ecr-container-images -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/lambda-ecr-container-images/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/fis/ -- **Expected:** /aws/services/fis -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/fis/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/tools/localstack-docker-extension/ -- **Expected:** /aws/tooling/localstack-docker-extension/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/localstack-docker-extension/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/cloudformation/ -- **Expected:** /aws/services/cloudformation -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudformation/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/route-53-failover/ -- **Expected:** /aws/tutorials/route-53-failover -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/route-53-failover/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/web-application/resource-browser/ -- **Expected:** /aws/capabilities/web-app/resource-browser -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/resource-browser/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/ -- **Expected:** https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app -- **Final URL:** https://github.com/localstack-samples/sample-loan-broker-stepfunctions-lambda -- **Status Code:** 200 -- **Message:** โŒ Expected: https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app, Got: https://github.com/localstack-samples/sample-loan-broker-stepfunctions-lambda - -### โœ… AWS: /references/coverage/coverage_resource-groups/ -- **Expected:** /aws/services/resourcegroups -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/resourcegroups/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/state-management/support/ -- **Expected:** /aws/capabilities/state-management/persistence-coverage -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/persistence-coverage/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_redshift/ -- **Expected:** /aws/services/redshift -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/redshift/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/lambdatest-hyperexecute/ -- **Expected:** /aws/integrations/testing/lambdatest-hyperexecute/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/testing/lambdatest-hyperexecute/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /applications/ -- **Expected:** /aws/sample-apps/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/sample-apps/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/web-application/users-and-licenses/ -- **Expected:** /aws/capabilities/web-app/users-and-licenses -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/users-and-licenses -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/tools/localstack-sdk/ -- **Expected:** /aws/tooling/localstack-sdks/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/localstack-sdks/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_apigatewaymanagementapi/ -- **Expected:** /aws/services/apigateway -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/apigateway/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_transfer/ -- **Expected:** /aws/services/transfer -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/transfer/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/athena/ -- **Expected:** /aws/services/athena -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/athena/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/extensions/official-extensions/ -- **Expected:** /aws/tooling/extensions/official-extensions -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/extensions/official-extensions -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/textract/ -- **Expected:** /aws/services/textract -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/textract/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/iam-policy-stream/ -- **Expected:** /aws/tutorials/iam-policy-stream -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/iam-policy-stream/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_ses/ -- **Expected:** /aws/services/ses -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ses/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/gitlab_ci_testcontainers/ -- **Expected:** /aws/tutorials/gitlab-ci-testcontainers -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/gitlab-ci-testcontainers/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/aws-sam/ -- **Expected:** /aws/integrations/aws-native-tools/aws-sam -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-native-tools/aws-sam/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/firehose/ -- **Expected:** /aws/services/firehose -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/firehose/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/web-application/ -- **Expected:** /aws/capabilities/web-app/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_sagemaker/ -- **Expected:** /aws/services/sagemaker -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sagemaker/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/arm64-support/ -- **Expected:** /aws/capabilities/config/arm64-support/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/arm64-support/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/shield/ -- **Expected:** /aws/services/shield -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/shield/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/terraform/ -- **Expected:** /aws/integrations/infrastructure-as-code/terraform -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/infrastructure-as-code/terraform/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/es/ -- **Expected:** /aws/services/es -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/es/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_dms/ -- **Expected:** /aws/services/dms -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/dms/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/extensions/developing-extensions/ -- **Expected:** /aws/tooling/extensions/developing-extensions -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/extensions/developing-extensions/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/security-testing/explainable-iam/ -- **Expected:** /aws/capabilities/security-testing/explainable-iam -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/security-testing/explainable-iam/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/ram/ -- **Expected:** /aws/services/ram -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ram/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_ssm/ -- **Expected:** /aws/services/ssm -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ssm/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/network-troubleshooting/created-resources/ -- **Expected:** /aws/capabilities/networking/created-resources -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/created-resources -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/swf/ -- **Expected:** /aws/services/swf -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/swf/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/ci/github-actions/ -- **Expected:** /aws/integrations/continuous-integration/github-actions -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/continuous-integration/github-actions/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/serverlessrepo/ -- **Expected:** /aws/services/serverlessrepo -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/serverlessrepo/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/sqs/ -- **Expected:** /aws/services/sqs -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sqs/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_ram/ -- **Expected:** /aws/services/ram -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ram/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/secretsmanager/ -- **Expected:** /aws/services/secretsmanager -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/secretsmanager/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/web-application/stack-insights/ -- **Expected:** /aws/capabilities/web-app/stack-insights -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/stack-insights/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/autoscaling/ -- **Expected:** /aws/services/autoscaling -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/autoscaling/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_opensearch/ -- **Expected:** /aws/services/opensearch -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/opensearch/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-101/cloud-pods/ -- **Expected:** https://youtu.be/InqTdSvxuag?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=InqTdSvxuag&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/InqTdSvxuag?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=InqTdSvxuag&feature=youtu.be - -### โœ… AWS: /references/coverage/coverage_emr-serverless/ -- **Expected:** /aws/services/emr -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/emr/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/cloudwatch/ -- **Expected:** /aws/services/cloudwatch -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudwatch/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/elasticbeanstalk/ -- **Expected:** /aws/services/elasticbeanstalk -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elasticbeanstalk/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_mediaconvert/ -- **Expected:** /aws/services/mediaconvert -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mediaconvert -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/state-management/launchpad/ -- **Expected:** /aws/capabilities/state-management/launchpad -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/launchpad/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/ci/codebuild/ -- **Expected:** /aws/integrations/continuous-integration/codebuild -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/continuous-integration/codebuild/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/iotdata/ -- **Expected:** /aws/services/iotdata -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotdata/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_textract/ -- **Expected:** /aws/services/textract -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/textract/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_codebuild/ -- **Expected:** /aws/services/codebuild -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codebuild/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/elastictranscoder/ -- **Expected:** /aws/services/elastictranscoder -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elastictranscoder/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_glacier/ -- **Expected:** /aws/services/glacier -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/glacier/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/tools/ -- **Expected:** /aws/tooling/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/timestream/ -- **Expected:** /aws/services/timestream -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/timestream/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_pinpoint/ -- **Expected:** /aws/services/pinpoint -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/pinpoint/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /applications/serverless-rds-proxy-with-api-gateway-lambda-and-aurora-rds/ -- **Expected:** https://github.com/localstack-samples-samples/sample-serverless-rds-proxy-demo -- **Final URL:** https://github.com/localstack-samples-samples/sample-serverless-rds-proxy-demo -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-101/why-localstack/ -- **Expected:** https://youtu.be/EDGIBpUpYWU?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=EDGIBpUpYWU&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/EDGIBpUpYWU?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=EDGIBpUpYWU&feature=youtu.be - -### โœ… AWS: /user-guide/aws/transcribe/ -- **Expected:** /aws/services/transcribe -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/transcribe/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_cloudformation/ -- **Expected:** /aws/services/cloudformation -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudformation/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_apigatewayv2/ -- **Expected:** /aws/services/apigateway -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/apigateway/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/kinesis/ -- **Expected:** /aws/services/kinesis -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kinesis/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_bedrock-runtime/ -- **Expected:** /aws/services/bedrock -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/bedrock/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_iot-data/ -- **Expected:** /aws/services/iotdata -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotdata/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/cloud-sandbox/ephemeral-instance/ -- **Expected:** /aws/capabilities/cloud-sandbox/ephemeral-instance -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/cloud-sandbox/ephemeral-instance -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_timestream-write/ -- **Expected:** /aws/services/timestream -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/timestream/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/pinpoint/ -- **Expected:** /aws/services/pinpoint -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/pinpoint/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/cloud-pods-collaborative-debugging/ -- **Expected:** /aws/tutorials/cloud-pods-collaborative-debugging -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/cloud-pods-collaborative-debugging/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_emr/ -- **Expected:** /aws/services/emr -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/emr/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/iam/ -- **Expected:** /aws/services/iam -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iam/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-deployment/course-overview/ -- **Expected:** https://youtu.be/XDIat6laW28?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XDIat6laW28&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/XDIat6laW28?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XDIat6laW28&feature=youtu.be - -### โœ… AWS: /references/coverage/coverage_codepipeline/ -- **Expected:** /aws/services/codepipeline -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codepipeline/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-deployment/infra-terraform/ -- **Expected:** https://youtu.be/lsF3kewOeBU?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=lsF3kewOeBU&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/lsF3kewOeBU?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=lsF3kewOeBU&feature=youtu.be - -### โœ… AWS: /references/network-troubleshooting/ -- **Expected:** /aws/capabilities/networking/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/ci/gitlab-ci/ -- **Expected:** /aws/integrations/continuous-integration/gitlab-ci -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/continuous-integration/gitlab-ci/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/kms/ -- **Expected:** /aws/services/kms -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kms/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_stepfunctions/ -- **Expected:** /aws/services/stepfunctions -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/stepfunctions/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_sesv2/ -- **Expected:** /aws/services/ses -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ses/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_events/ -- **Expected:** /aws/services/events -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/events/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_timestream-query/ -- **Expected:** /aws/services/timestream -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/timestream/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/network-troubleshooting/endpoint-url/ -- **Expected:** /aws/capabilities/networking/endpoint-url -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/endpoint-url -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/ephemeral-application-previews/ -- **Expected:** /aws/tutorials/ephemeral-application-previews -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/ephemeral-application-previews/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/web-application/accounts/ -- **Expected:** /aws/capabilities/web-app/accounts -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/accounts/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_appsync/ -- **Expected:** /aws/services/appsync -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appsync/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_ecr/ -- **Expected:** /aws/services/ecr -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ecr/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-deployment/ -- **Expected:** https://youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O -- **Final URL:** https://www.youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O, Got: https://www.youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O - -### โœ… AWS: /references/coverage/coverage_application-autoscaling/ -- **Expected:** /aws/services/appautoscaling -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appautoscaling/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/lambda-tools/debugging/ -- **Expected:** /aws/tooling/lambda-tools/debugging -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/lambda-tools/debugging -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/rancher-desktop/ -- **Expected:** /aws/integrations/containers/rancher-desktop -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/containers/rancher-desktop/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/sdks/ruby/ -- **Expected:** /aws/integrations/aws-sdks/net/ruby -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/ruby -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/mwaa/ -- **Expected:** /aws/services/mwaa -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mwaa/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-deployment/deploy-app-ls/ -- **Expected:** https://youtu.be/qIB79b-iw2U?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=qIB79b-iw2U&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/qIB79b-iw2U?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=qIB79b-iw2U&feature=youtu.be - -### โœ… AWS: /user-guide/aws/organizations/ -- **Expected:** /aws/services/organizations -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/organizations/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-deployment/github-action-ls/ -- **Expected:** https://youtu.be/XNh8aSaT9v0?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XNh8aSaT9v0&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/XNh8aSaT9v0?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XNh8aSaT9v0&feature=youtu.be - -### โœ… AWS: /user-guide/aws/sagemaker/ -- **Expected:** /aws/services/sagemaker -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sagemaker/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/configuration/ -- **Expected:** /aws/capabilities/config/configuration -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/configuration/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/chaos-engineering/chaos-api/ -- **Expected:** /aws/capabilities/chaos-engineering/chaos-api -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/chaos-engineering/chaos-api/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/glacier/ -- **Expected:** /aws/services/glacier -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/glacier/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_qldb-session/ -- **Expected:** /aws/services/qldb -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/qldb/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/pulumi/ -- **Expected:** /aws/integrations/infrastructure-as-code/pulumi -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/infrastructure-as-code/pulumi/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/cloudtrail/ -- **Expected:** /aws/services/cloudtrail -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudtrail/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_s3/ -- **Expected:** /aws/services/s3 -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/s3/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/emr/ -- **Expected:** /aws/services/emr -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/emr/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/tools/dns-server/ -- **Expected:** /aws/tooling/dns-server -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/dns-server/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/chaos-engineering/chaos-application-dashboard/ -- **Expected:** /aws/capabilities/chaos-engineering/chaos-application-dashboard -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/chaos-engineering/chaos-application-dashboard -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_route53/ -- **Expected:** /aws/services/route53 -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/route53/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_dynamodbstreams/ -- **Expected:** /aws/services/dynamodbstreams -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/dynamodbstreams/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_dynamodb/ -- **Expected:** /aws/services/dynamodb -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/dynamodb/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/ec2/ -- **Expected:** /aws/services/ec2 -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ec2/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/cloud-sandbox/application-previews/ -- **Expected:** /aws/capabilities/cloud-sandbox/application-previews -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/cloud-sandbox/application-previews -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/spring-cloud-function/ -- **Expected:** /aws/integrations/app-frameworks/spring-cloud-function -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/app-frameworks/spring-cloud-function/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/multi-account-setups/ -- **Expected:** /aws/capabilities/config/multi-account-setups/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/multi-account-setups/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/elementalmediaconvert/ -- **Expected:** /aws/services/elementalmediaconvert -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elementalmediaconvert/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_shield/ -- **Expected:** /aws/services/shield -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/shield/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/dynamodb/ -- **Expected:** /aws/services/dynamodb -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/dynamodb/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/tools/event-studio/ -- **Expected:** /aws/tooling/event-studio/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/event-studio/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/ -- **Expected:** /aws/services/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_acm-pca/ -- **Expected:** /aws/services/acm-pca -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/acm-pca -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/opensearch/ -- **Expected:** /aws/services/opensearch -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/opensearch/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/neptune/ -- **Expected:** /aws/services/neptune -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/neptune/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/codepipeline/ -- **Expected:** /aws/services/codepipeline -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codepipeline/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_docdb/ -- **Expected:** /aws/services/docdb -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/docdb/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_appconfig/ -- **Expected:** /aws/services/appconfig -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appconfig/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_iot/ -- **Expected:** /aws/services/iot -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iot/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /getting-started/installation/ -- **Expected:** /aws/getting-started/installation -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/installation/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/architect/ -- **Expected:** /aws/integrations/app-frameworks/architect/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/app-frameworks/architect/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/gitpod/ -- **Expected:** /aws/integrations/containers/gitpod/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/containers/gitpod/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/managedblockchain/ -- **Expected:** /aws/services/managedblockchain -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/managedblockchain/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /applications/query-data-in-s3-bucket-with-amazon-athena-glue-catalog-cloudformation/ -- **Expected:** https://github.com/localstack-samples/query-data-s3-athena-glue-sample -- **Final URL:** https://github.com/localstack-samples/query-data-s3-athena-glue-sample -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-101/web-app-resource-browser/ -- **Expected:** https://youtu.be/SoXtngYp-8k?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=SoXtngYp-8k&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/SoXtngYp-8k?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=SoXtngYp-8k&feature=youtu.be - -### โœ… AWS: /user-guide/integrations/ -- **Expected:** /aws/integrations/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/codebuild/ -- **Expected:** /aws/services/codebuild -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codebuild/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/ses/ -- **Expected:** /aws/services/ses -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ses/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_sagemaker-runtime/ -- **Expected:** /aws/services/sagemaker -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sagemaker/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /applications/messaging-processing-application-with-sqs-dynamodb-and-fargate/ -- **Expected:** https://github.com/localstack-samples/sqs-fargate-ddb-cdk-go -- **Final URL:** https://github.com/localstack-samples/sqs-fargate-ddb-cdk-go -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/mq/ -- **Expected:** /aws/services/mq -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/mq/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/localstack-enterprise/kubernetes-executor/ -- **Expected:** /aws/enterprise/kubernetes-executor -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/kubernetes-executor/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/iot/ -- **Expected:** /aws/services/iot -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iot/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/backup/ -- **Expected:** /aws/services/backup -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/backup/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_organizations/ -- **Expected:** /aws/services/organizations -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/organizations/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/kinesisanalytics/ -- **Expected:** /aws/services/kinesisanalytics -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/kinesisanalytics/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/localstack-enterprise/single-sign-on/ -- **Expected:** /aws/enterprise/sso -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/enterprise/sso/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/redshift/ -- **Expected:** /aws/services/redshift -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/redshift/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_verifiedpermissions/ -- **Expected:** /aws/services/verifiedpermissions -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/verifiedpermissions/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-101/full-project-demo/ -- **Expected:** https://youtu.be/cQxg3Dnteyc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=cQxg3Dnteyc&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/cQxg3Dnteyc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=cQxg3Dnteyc&feature=youtu.be - -### โœ… AWS: /applications/full-stack-application-with-aws-lambda-dynamodb-s3-for-shipment-validation/ -- **Expected:** https://github.com/localstack-samples/shipment-list-demo -- **Final URL:** https://github.com/localstack-samples/shipment-list-demo -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_iotanalytics/ -- **Expected:** /aws/services/iotanalytics -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/iotanalytics/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/chalice/ -- **Expected:** /aws/integrations/aws-native-tools/aws-chalice/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-native-tools/aws-chalice/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/security-testing/iam-policy-stream/ -- **Expected:** /aws/capabilities/security-testing/iam-policy-stream -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/security-testing/iam-policy-stream/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/security-testing/iam-enforcement/ -- **Expected:** /aws/capabilities/security-testing/iam-enforcement -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/security-testing/iam-enforcement -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_route53resolver/ -- **Expected:** /aws/services/route53resolver -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/route53resolver/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_config/ -- **Expected:** /aws/services/config -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/config/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_account/ -- **Expected:** /aws/services/account -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/account/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/web-application/stack-overview/ -- **Expected:** /aws/capabilities/web-app/stack-overview -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/stack-overview/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โŒ AWS: /academy/localstack-deployment/cloud-pods/ -- **Expected:** https://youtu.be/ZJP2xfvwR_g?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF -- **Final URL:** https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=ZJP2xfvwR_g&feature=youtu.be -- **Status Code:** 200 -- **Message:** โŒ Expected: https://youtu.be/ZJP2xfvwR_g?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF, Got: https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=ZJP2xfvwR_g&feature=youtu.be - -### โœ… AWS: /user-guide/aws/appconfig/ -- **Expected:** /aws/services/appconfig -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/appconfig/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/cognito/ -- **Expected:** /aws/services/cognito -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cognito/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_bedrock/ -- **Expected:** /aws/services/bedrock -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/bedrock/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/efs/ -- **Expected:** /aws/services/efs -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/efs/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_rds/ -- **Expected:** /aws/services/rds -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/rds/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_backup/ -- **Expected:** /aws/services/backup -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/backup/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/rds/ -- **Expected:** /aws/services/rds -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/rds/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/identitystore/ -- **Expected:** /aws/services/identitystore -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/identitystore/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_redshift-data/ -- **Expected:** /aws/services/redshift -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/redshift/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/elasticache/ -- **Expected:** /aws/services/elasticache -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elasticache/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/using-terraform-with-testcontainers-and-localstack/ -- **Expected:** /aws/tutorials/using-terraform-with-testcontainers-and-localstack -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/using-terraform-with-testcontainers-and-localstack/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_cloudfront/ -- **Expected:** /aws/services/cloudfront -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudfront/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/tools/localstack-sdk/java/ -- **Expected:** /aws/user-guide/tools/localstack-sdk/java -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/user-guide/tools/localstack-sdk/java -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/network-troubleshooting/readme/ -- **Expected:** /aws/capabilities/networking/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/networking/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/codecommit/ -- **Expected:** /aws/services/codecommit -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/codecommit/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_swf/ -- **Expected:** /aws/services/swf -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/swf/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/sdks/go/ -- **Expected:** /aws/integrations/aws-sdks/net/go -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/go -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /persistence/ -- **Expected:** /aws/capabilities/state-management/persistence/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/persistence/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/init-hooks/ -- **Expected:** /aws/capabilities/config/initialization-hooks/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/initialization-hooks/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_support/ -- **Expected:** /aws/services/support -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/support/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/ -- **Expected:** /aws/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/qldb/ -- **Expected:** /aws/services/qldb -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/qldb/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/simulating-outages/ -- **Expected:** /aws/tutorials/simulating-outages -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/simulating-outages/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/acm/ -- **Expected:** /aws/services/acm -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/acm/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/sdks/php/ -- **Expected:** /aws/integrations/aws-sdks/net/php -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/php -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_sns/ -- **Expected:** /aws/services/sns -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/sns/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /getting-started/help-and-support/ -- **Expected:** /aws/getting-started/help-support -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/help-support/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/amplify/ -- **Expected:** /aws/services/amplify -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/amplify/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_lakeformation/ -- **Expected:** /aws/services/lakeformation -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/lakeformation/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/integrations/sdks/dotnet/ -- **Expected:** /aws/integrations/aws-sdks/net/dotnet -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/integrations/aws-sdks/net/dotnet -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /academy/ -- **Expected:** https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Final URL:** https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0 -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_cloudwatch/ -- **Expected:** /aws/services/cloudwatch -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudwatch/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/ecr/ -- **Expected:** /aws/services/ecr -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/ecr/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/stepfunctions/ -- **Expected:** /aws/services/stepfunctions -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/stepfunctions/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_elasticache/ -- **Expected:** /aws/services/elasticache -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/elasticache/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /applications/mnist-handwritten-digit-recognition-model-running-on-a-local-sagemaker-endpoint/ -- **Expected:** https://github.com/localstack-samples-samples/sample-mnist-digit-recognition-sagemaker -- **Final URL:** https://github.com/localstack-samples-samples/sample-mnist-digit-recognition-sagemaker -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/state-management/pods-cli/ -- **Expected:** /aws/capabilities/state-management/cli-commands -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/state-management/cli-commands/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/dynamodbstreams/ -- **Expected:** /aws/services/dynamodbstreams -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/dynamodbstreams/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/ci/ -- **Expected:** /aws/user-guide/ci -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/user-guide/ci -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_eks/ -- **Expected:** /aws/services/eks -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/eks/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_cognito-idp/ -- **Expected:** /aws/services/cognito -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cognito/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/web-application/workspace/ -- **Expected:** /aws/capabilities/web-app/workspace -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/web-app/workspace -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/coverage/coverage_cloudcontrol/ -- **Expected:** /aws/services/cloudcontrol -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/cloudcontrol -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /tutorials/replicate-aws-resources-localstack-extension/ -- **Expected:** /aws/tutorials/replicate-aws-resources-localstack-extension -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tutorials/replicate-aws-resources-localstack-extension/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/tools/localstack-sdk/python/ -- **Expected:** /aws/tooling/localstack-sdks/python -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/localstack-sdks/python -- **Status Code:** 404 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/lambda-tools/hot-reloading/ -- **Expected:** /aws/tooling/lambda-tools/hot-reloading -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/lambda-tools/hot-reloading/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /getting-started/quickstart/ -- **Expected:** /aws/getting-started/quickstart -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/quickstart/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /overview/ -- **Expected:** /aws/getting-started -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/aws/glue/ -- **Expected:** /aws/services/glue -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/services/glue/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /getting-started/ -- **Expected:** /aws/getting-started -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/getting-started/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /user-guide/extensions/managing-extensions/ -- **Expected:** /aws/tooling/extensions/managing-extensions -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/tooling/extensions/managing-extensions/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful - -### โœ… AWS: /references/filesystem/ -- **Expected:** /aws/capabilities/config/filesystem/ -- **Final URL:** https://redirects.localstack-docs.pages.dev/aws/capabilities/config/filesystem/ -- **Status Code:** 200 -- **Message:** โœ… Redirect successful diff --git a/scripts/redirects/redirects_config.json b/scripts/redirects/redirects_config.json index e1da7977..0350852a 100644 --- a/scripts/redirects/redirects_config.json +++ b/scripts/redirects/redirects_config.json @@ -88,7 +88,7 @@ }, { "old_link": "/academy/localstack-101/what-is-localstack/", - "new_link": "https://youtu.be/B2EML5L3-tw?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0", + "new_link": "https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=B2EML5L3-tw&feature=youtu.be", "status_code": 301 }, { @@ -158,7 +158,7 @@ }, { "old_link": "/applications/note-taking-application-using-aws-sdk-for-javascript/", - "new_link": "https://github.com/localstack-samples/aws-sdk-js-notes-app", + "new_link": "https://github.com/localstack-samples/sample-notes-app-dynamodb-lambda-apigateway", "status_code": 301 }, { @@ -223,7 +223,7 @@ }, { "old_link": "/academy/localstack-101/course-overview/", - "new_link": "https://youtu.be/VLL-BI1AWcc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0", + "new_link": "https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=VLL-BI1AWcc&feature=youtu.be", "status_code": 301 }, { @@ -273,7 +273,7 @@ }, { "old_link": "/applications/serverless-microservices-with-amazon-api-gateway-dynamodb-sqs-and-lambda/", - "new_link": "https://github.com/localstack-samples/microservices-apigateway-lambda-dynamodb-sqs-sample", + "new_link": "https://github.com/localstack-samples/sample-microservices-apigateway-lambda-dynamodb-sqs", "status_code": 301 }, { @@ -403,7 +403,7 @@ }, { "old_link": "/academy/localstack-deployment/infra-cloudformation/", - "new_link": "https://youtu.be/K0OgQ5eq588?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "new_link": "https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=K0OgQ5eq588&feature=youtu.be", "status_code": 301 }, { @@ -443,7 +443,7 @@ }, { "old_link": "/academy/localstack-deployment/iam-policy-stream/", - "new_link": "https://youtu.be/TOBLG2Z6xAM?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "new_link": "https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=TOBLG2Z6xAM&feature=youtu.be", "status_code": 301 }, { @@ -488,7 +488,7 @@ }, { "old_link": "/academy/localstack-deployment/ls-integrations/", - "new_link": "https://youtu.be/YV0Zs6UNI9I", + "new_link": "https://www.youtube.com/watch?v=YV0Zs6UNI9I&feature=youtu.be", "status_code": 301 }, { @@ -858,7 +858,7 @@ }, { "old_link": "/academy/localstack-101/", - "new_link": "https://youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk", + "new_link": "https://www.youtube.com/playlist?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&si=rKhzdxOJsfO_pgyk", "status_code": 301 }, { @@ -878,7 +878,7 @@ }, { "old_link": "/applications/event-driven-architecture-with-amazon-sns-fifo-dynamodb-lambda-and-s3/", - "new_link": "https://github.com/localstack-samples/event-driven-architecture-with-amazon-sns-fifo", + "new_link": "https://github.com/localstack-samples/sample-sam-sns-fifo-dynamodb-lambda", "status_code": 301 }, { @@ -998,7 +998,7 @@ }, { "old_link": "/applications/loan-broker-application-with-aws-step-functions-dynamodb-lambda-sqs-and-sns/", - "new_link": "https://github.com/localstack-samples/loan-broker-stepfunctions-lambda-app", + "new_link": "https://github.com/localstack-samples/sample-loan-broker-stepfunctions-lambda", "status_code": 301 }, { @@ -1199,7 +1199,7 @@ }, { "old_link": "/academy/localstack-101/cloud-pods/", - "new_link": "https://youtu.be/InqTdSvxuag?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0", + "new_link": "https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=InqTdSvxuag&feature=youtu.be", "status_code": 301 }, { @@ -1278,7 +1278,7 @@ }, { "old_link": "/academy/localstack-101/why-localstack/", - "new_link": "https://youtu.be/EDGIBpUpYWU?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0", + "new_link": "https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=EDGIBpUpYWU&feature=youtu.be", "status_code": 301 }, { @@ -1343,7 +1343,7 @@ }, { "old_link": "/academy/localstack-deployment/course-overview/", - "new_link": "https://youtu.be/XDIat6laW28?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "new_link": "https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XDIat6laW28&feature=youtu.be", "status_code": 301 }, { @@ -1353,7 +1353,7 @@ }, { "old_link": "/academy/localstack-deployment/infra-terraform/", - "new_link": "https://youtu.be/lsF3kewOeBU?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "new_link": "https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=lsF3kewOeBU&feature=youtu.be", "status_code": 301 }, { @@ -1418,7 +1418,7 @@ }, { "old_link": "/academy/localstack-deployment/", - "new_link": "https://youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O", + "new_link": "https://www.youtube.com/playlist?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&si=R-Ed-JQKOxXP473O", "status_code": 301 }, { @@ -1454,7 +1454,7 @@ }, { "old_link": "/academy/localstack-deployment/deploy-app-ls/", - "new_link": "https://youtu.be/qIB79b-iw2U?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "new_link": "https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=qIB79b-iw2U&feature=youtu.be", "status_code": 301 }, { @@ -1464,7 +1464,7 @@ }, { "old_link": "/academy/localstack-deployment/github-action-ls/", - "new_link": "https://youtu.be/XNh8aSaT9v0?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "new_link": "https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=XNh8aSaT9v0&feature=youtu.be", "status_code": 301 }, { @@ -1644,7 +1644,7 @@ }, { "old_link": "/academy/localstack-101/web-app-resource-browser/", - "new_link": "https://youtu.be/SoXtngYp-8k?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0", + "new_link": "https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=SoXtngYp-8k&feature=youtu.be", "status_code": 301 }, { @@ -1719,7 +1719,7 @@ }, { "old_link": "/academy/localstack-101/full-project-demo/", - "new_link": "https://youtu.be/cQxg3Dnteyc?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0", + "new_link": "https://www.youtube.com/watch?list=PLTew28KOwGxPqbkFiW518eeIfiV495bm0&v=cQxg3Dnteyc&feature=youtu.be", "status_code": 301 }, { @@ -1769,7 +1769,7 @@ }, { "old_link": "/academy/localstack-deployment/cloud-pods/", - "new_link": "https://youtu.be/ZJP2xfvwR_g?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF", + "new_link": "https://www.youtube.com/watch?list=PLTew28KOwGxPdtdW00WNXZLZnstvRQyTF&v=ZJP2xfvwR_g&feature=youtu.be", "status_code": 301 }, {