diff --git a/.gitignore b/.gitignore index f7ca195..6bb73cb 100644 --- a/.gitignore +++ b/.gitignore @@ -165,8 +165,8 @@ cython_debug/ **/.terraform/* # .tfstate files -*.tfstate -*.tfstate.* +#*.tfstate +#*.tfstate.* # Crash log files crash.log diff --git a/.terraform.lock.hcl b/.terraform.lock.hcl index e22665b..7d42850 100644 --- a/.terraform.lock.hcl +++ b/.terraform.lock.hcl @@ -21,24 +21,24 @@ provider "registry.terraform.io/hashicorp/archive" { } provider "registry.terraform.io/hashicorp/aws" { - version = "5.45.0" + version = "5.51.1" constraints = "~> 5.0" hashes = [ - "h1:4Vgk51R7iTY1oczaTQDG+DkA9nE8TmjlUtecqXX6qDU=", - "zh:1379bcf45aef3d486ee18b4f767bfecd40a0056510d26107f388be3d7994c368", - "zh:1615a6f5495acfb3a0cb72324587261dd4d72711a3cc51aff13167b14531501e", - "zh:18b69a0f33f8b1862fbd3f200756b7e83e087b73687085f2cf9c7da4c318e3e6", - "zh:2c5e7aecd197bc3d3b19290bad8cf4c390c2c6a77bb165da4e11f53f2dfe2e54", - "zh:3794da9bef97596e3bc60e12cdd915bda5ec2ed62cd1cd93723d58b4981905fe", - "zh:40a5e45ed91801f83db76dffd467dcf425ea2ca8642327cf01119601cb86021c", - "zh:4abfc3f53d0256a7d5d1fa5e931e4601b02db3d1da28f452341d3823d0518f1a", - "zh:4eb0e98078f79aeb06b5ff6115286dc2135d12a80287885698d04036425494a2", - "zh:75470efbadea4a8d783642497acaeec5077fc4a7f3df3340defeaa1c7de29bf7", - "zh:8861a0b4891d5fa2fa7142f236ae613cea966c45b5472e3915a4ac3abcbaf487", - "zh:8bf6f21cd9390b742ca0b4393fde92616ca9e6553fb75003a0999006ad233d35", + "h1:ESfxP2tCO6IZldSQnepXmIm+x+VtaQt/bKgGjYE+0BY=", + "zh:03d524b70ab300d90dc4dccad0c28b18d797b8986722b7a93e40a41500450eaa", + "zh:04dbcb7ab52181a784877c409f6c882df34bda686d8c884d511ebd4abf493f0c", + "zh:2b068f7838e0f3677829258df05d8b9d73fe6434a1a809f8710956cc1c01ea03", + "zh:41a4b1e4adbf7c90015ebff17a719fc08133b8a2c4dcefd2fa281552126e59a8", + "zh:48b1adf57f695a72c88c598f99912171ef7067638fd63fb0c6ad3fa397b3f7c3", + "zh:5c2fb26ecb83adac90d06dcf5f97edbc944824c2821816b1653e1a2b9d37b3c4", + "zh:93df05f53702df829d9b9335e559ad8b313808dbd2fad8b2ff14f176732e693d", "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:ad73008a044e75d337acda910fb54d8b81a366873c8a413fec1291034899a814", - "zh:bf261713b0b8bebfe8c199291365b87d9043849f28a2dc764bafdde73ae43693", - "zh:da3bafa1fd830be418dfcc730e85085fe67c0d415c066716f2ac350a2306f40a", + "zh:b5da39898602e44551b56e2803a42d92ea7115e35b1792efbf6649da37ef597b", + "zh:b7ab7f743f864ed8d479a7cb04fd3ce00c376f867ee5b53c4c1acaef6e286c54", + "zh:e7e7b2d8ee486415481a25ac7bdded20bd2897d5dd0790741798f31935b9528d", + "zh:e8008e3f5ef560fd9004d1ed1738f0f53e99b0ce961d967e95fc7c02e5954e4e", + "zh:f1296f648b8608ffa930b52519b00ed01eebedde9fdaf94205b365536e6c3916", + "zh:f8539960fd978a54990740ee984c6f7f743c9c32c7734e2601e92abfe54367e9", + "zh:fd182e6e20bb52982752a5d8c4b16887565f413a9d50d9d394d2c06eea8a195e", ] } diff --git a/deploy-dev.sh b/deploy-dev.sh new file mode 100755 index 0000000..7c44ca8 --- /dev/null +++ b/deploy-dev.sh @@ -0,0 +1,8 @@ +# Select Development workspace +terraform workspace select dev + +# Plan the current execution with variables and verify +terraform plan -var-file dev.tfvars -out plans/dev.plan + +# Apply Configuration +terraform apply plans/dev.plan diff --git a/deploy-prod.sh b/deploy-prod.sh new file mode 100755 index 0000000..d8f8e2c --- /dev/null +++ b/deploy-prod.sh @@ -0,0 +1,8 @@ +# Select Development workspace +terraform workspace select prod + +# Plan the current execution with variables and verify +terraform plan -var-file prod.tfvars -out plans/prod.plan + +# Apply Configuration +terraform apply plans/prod.plan diff --git a/master.tf b/master.tf index 365abf1..69093a1 100644 --- a/master.tf +++ b/master.tf @@ -9,24 +9,24 @@ terraform { # Configure the AWS Provider provider "aws" { - region = "eu-west-1" + region = var.region profile = "StandOut_Terraform" } # Create a VPC resource "aws_vpc" "vpc_standout" { - cidr_block = "10.0.0.0/16" + cidr_block = var.env == "dev" ? "10.0.0.0/16" : "10.10.0.0/16" } # create an s3 bucket for config resource "aws_s3_bucket" "s3_standout_config" { - bucket = "standout-config" + bucket = "standout-config-${var.env}" force_destroy = false } # create an s3 bucket for data resource "aws_s3_bucket" "s3_standout" { - bucket = "standout-data" + bucket = "standout-data-${var.env}" force_destroy = true } @@ -135,30 +135,35 @@ data "aws_iam_policy_document" "lambda_role" { } resource "aws_iam_role" "iam_for_lambda" { - name = "iam_for_lambda" + name = "iam_for_lambda-${var.env}" assume_role_policy = data.aws_iam_policy_document.lambda_role.json } +resource "aws_iam_role_policy_attachment" "iam_for_lambda_allow_logs" { + role = aws_iam_role.iam_for_lambda.name + policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" +} + data "archive_file" "lambda_standout_code" { type = "zip" source_dir = "./lambda_redirect" - output_path = "./lambda_zip/standout_lambda_redirect.zip" + output_path = "./lambda_zip/standout_lambda_redirect-${var.env}.zip" } data "archive_file" "lambda_standout_config_code" { type = "zip" source_dir = "./lambda_config" - output_path = "./lambda_zip/standout_lambda_config.zip" + output_path = "./lambda_zip/standout_lambda_config-${var.env}.zip" } data "archive_file" "lambda_layer_deps" { type = "zip" source_dir = "./lambda_layer" - output_path = "./lambda_zip/lambda_layer.zip" + output_path = "./lambda_zip/lambda_layer-${var.env}.zip" } resource "aws_lambda_layer_version" "lambda_layer" { - filename = "./lambda_zip/lambda_layer.zip" + filename = "./lambda_zip/lambda_layer-${var.env}.zip" layer_name = "lambda_deps" compatible_runtimes = ["python3.12"] } @@ -166,8 +171,8 @@ resource "aws_lambda_layer_version" "lambda_layer" { resource "aws_lambda_function" "lambda_standout_redirect" { # If the file is not in the current working directory you will need to include a # path.module in the filename. - filename = "./lambda_zip/standout_lambda_redirect.zip" - function_name = "standout-redirect" + filename = "./lambda_zip/standout_lambda_redirect-${var.env}.zip" + function_name = "standout-redirect-${var.env}" role = aws_iam_role.iam_for_lambda.arn handler = "lambda_redirect.lambda_handler" @@ -190,8 +195,8 @@ resource "aws_lambda_function" "lambda_standout_redirect" { resource "aws_lambda_function" "lambda_standout_config" { # If the file is not in the current working directory you will need to include a # path.module in the filename. - filename = "./lambda_zip/standout_lambda_config.zip" - function_name = "standout-config" + filename = "./lambda_zip/standout_lambda_config-${var.env}.zip" + function_name = "standout-config-${var.env}" role = aws_iam_role.iam_for_lambda.arn handler = "lambda_config.lambda_handler" @@ -233,7 +238,7 @@ resource "aws_s3_bucket_notification" "bucket_notification" { # create API gateway for lambda triger and connect resource "aws_apigatewayv2_api" "api_standout_gateway" { - name = "standout-api" + name = "standout-api-${var.env}" protocol_type = "HTTP" } @@ -251,7 +256,7 @@ resource "aws_apigatewayv2_integration" "api_standout_integration" { resource "aws_apigatewayv2_stage" "api_standout_lambda_stage" { api_id = aws_apigatewayv2_api.api_standout_gateway.id - name = "dev" + name = var.env auto_deploy = true } diff --git a/plans/dev.plan b/plans/dev.plan new file mode 100644 index 0000000..fdc066e Binary files /dev/null and b/plans/dev.plan differ diff --git a/plans/prod.plan b/plans/prod.plan new file mode 100644 index 0000000..000f365 Binary files /dev/null and b/plans/prod.plan differ diff --git a/terraform.tfstate.d/dev/terraform.tfstate b/terraform.tfstate.d/dev/terraform.tfstate new file mode 100644 index 0000000..67a6ba4 --- /dev/null +++ b/terraform.tfstate.d/dev/terraform.tfstate @@ -0,0 +1,1183 @@ +{ + "version": 4, + "terraform_version": "1.8.3", + "serial": 86, + "lineage": "c4760d73-7122-ff64-ba30-f5482ab084b8", + "outputs": {}, + "resources": [ + { + "mode": "data", + "type": "archive_file", + "name": "lambda_layer_deps", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "f2e1b4a2359b092eb66a365d0e17bd4d7ef2c174", + "output_base64sha256": "hQZ4vVgzztN2Bn+hTHGKDTA5kp9HbrZQmunevgsPhAY=", + "output_base64sha512": "PUsXQzofQAKQshK6yW9WuQRbTUbjdNjA+VBVJBTNgHr4lBhe4ZelmAnlisiQVM6uY36RD9CNRLD7aT/V8YVY5Q==", + "output_file_mode": null, + "output_md5": "f4f31334a8bc343ab1b8848f5fb96e9d", + "output_path": "./lambda_zip/lambda_layer-dev.zip", + "output_sha": "f2e1b4a2359b092eb66a365d0e17bd4d7ef2c174", + "output_sha256": "850678bd5833ced376067fa14c718a0d3039929f476eb6509ae9debe0b0f8406", + "output_sha512": "3d4b17433a1f400290b212bac96f56b9045b4d46e374d8c0f950552414cd807af894185ee197a59809e58ac89054ceae637e910fd08d44b0fb693fd5f18558e5", + "output_size": 3470735, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_layer", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "archive_file", + "name": "lambda_standout_code", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "bf96d8f34aad3a86e985be53a3a6682d62164e73", + "output_base64sha256": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "output_base64sha512": "R+OeVTikvIPAsYIjKtRdZdFCZQWLp/PUtIvpTIwc726mIuccBlur53ethzlJezoXubQmtF9CEiUdjzsrfb3/pQ==", + "output_file_mode": null, + "output_md5": "6971a02ee30cd8591ded93920a6b994a", + "output_path": "./lambda_zip/standout_lambda_redirect-dev.zip", + "output_sha": "bf96d8f34aad3a86e985be53a3a6682d62164e73", + "output_sha256": "9a41356c2426097b20764a495f5cac7086c034b626716953c802f37f1d81a9b2", + "output_sha512": "47e39e5538a4bc83c0b182232ad45d65d14265058ba7f3d4b48be94c8c1cef6ea622e71c065babe777ad8739497b3a17b9b426b45f4212251d8f3b2b7dbdffa5", + "output_size": 51368, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_redirect", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "archive_file", + "name": "lambda_standout_config_code", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "a401470a001300338fa7d09cdffe3f16277971d8", + "output_base64sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=", + "output_base64sha512": "oUyZrUKNQPvZt3crReW69Vapq3IGvHD5hk617XXamv8G99f62CoJO1lsd07gaVlf5ln2EyPj+cQleaXg5w3JCg==", + "output_file_mode": null, + "output_md5": "e97ce8be22567986c9fcff5165b4afdb", + "output_path": "./lambda_zip/standout_lambda_config-dev.zip", + "output_sha": "a401470a001300338fa7d09cdffe3f16277971d8", + "output_sha256": "edca42403d4b7fa403c123e4fde7426bc5c3651794bbbad186109a827a280227", + "output_sha512": "a14c99ad428d40fbd9b7772b45e5baf556a9ab7206bc70f9864eb5ed75da9aff06f7d7fad82a093b596c774ee069595fe659f61323e3f9c42579a5e0e70dc90a", + "output_size": 4639, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_config", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "aws_iam_policy_document", + "name": "lambda_role", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "2690255455", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"lambda.amazonaws.com\"\n }\n }\n ]\n}", + "minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":\"sts:AssumeRole\",\"Principal\":{\"Service\":\"lambda.amazonaws.com\"}}]}", + "override_json": null, + "override_policy_documents": null, + "policy_id": null, + "source_json": null, + "source_policy_documents": null, + "statement": [ + { + "actions": [ + "sts:AssumeRole" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "lambda.amazonaws.com" + ], + "type": "Service" + } + ], + "resources": [], + "sid": "" + } + ], + "version": "2012-10-17" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "aws_iam_policy_document", + "name": "s3_standout_allow_lambda", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "867140593", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:Put*\",\n \"s3:List*\",\n \"s3:Get*\"\n ],\n \"Resource\": \"arn:aws:s3:::standout-data-dev/*\",\n \"Principal\": {\n \"AWS\": \"*\"\n }\n }\n ]\n}", + "minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Resource\":\"arn:aws:s3:::standout-data-dev/*\",\"Principal\":{\"AWS\":\"*\"}}]}", + "override_json": null, + "override_policy_documents": null, + "policy_id": null, + "source_json": null, + "source_policy_documents": null, + "statement": [ + { + "actions": [ + "s3:Get*", + "s3:List*", + "s3:Put*" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "*" + ], + "type": "AWS" + } + ], + "resources": [ + "arn:aws:s3:::standout-data-dev/*" + ], + "sid": "" + } + ], + "version": "2012-10-17" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "aws_iam_policy_document", + "name": "s3_standout_config_allow_lambda", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "134226879", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:Put*\",\n \"s3:List*\",\n \"s3:Get*\"\n ],\n \"Resource\": \"arn:aws:s3:::standout-config-dev/*\",\n \"Principal\": {\n \"AWS\": \"*\"\n }\n }\n ]\n}", + "minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Resource\":\"arn:aws:s3:::standout-config-dev/*\",\"Principal\":{\"AWS\":\"*\"}}]}", + "override_json": null, + "override_policy_documents": null, + "policy_id": null, + "source_json": null, + "source_policy_documents": null, + "statement": [ + { + "actions": [ + "s3:Get*", + "s3:List*", + "s3:Put*" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "*" + ], + "type": "AWS" + } + ], + "resources": [ + "arn:aws:s3:::standout-config-dev/*" + ], + "sid": "" + } + ], + "version": "2012-10-17" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_api", + "name": "api_standout_gateway", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_endpoint": "https://sel2p8wy6c.execute-api.eu-west-1.amazonaws.com", + "api_key_selection_expression": "$request.header.x-api-key", + "arn": "arn:aws:apigateway:eu-west-1::/apis/sel2p8wy6c", + "body": null, + "cors_configuration": [], + "credentials_arn": null, + "description": "", + "disable_execute_api_endpoint": false, + "execution_arn": "arn:aws:execute-api:eu-west-1:654654203111:sel2p8wy6c", + "fail_on_warnings": null, + "id": "sel2p8wy6c", + "name": "standout-api-dev", + "protocol_type": "HTTP", + "route_key": null, + "route_selection_expression": "$request.method $request.path", + "tags": {}, + "tags_all": {}, + "target": null, + "version": "" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_integration", + "name": "api_standout_integration", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_id": "sel2p8wy6c", + "connection_id": "", + "connection_type": "INTERNET", + "content_handling_strategy": "", + "credentials_arn": "", + "description": "Lambda example", + "id": "82x2elk", + "integration_method": "POST", + "integration_response_selection_expression": "", + "integration_subtype": "", + "integration_type": "AWS_PROXY", + "integration_uri": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:654654203111:function:standout-redirect-dev/invocations", + "passthrough_behavior": "", + "payload_format_version": "1.0", + "request_parameters": {}, + "request_templates": {}, + "response_parameters": [], + "template_selection_expression": "", + "timeout_milliseconds": 30000, + "tls_config": [] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_redirect", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_route", + "name": "api_standout_route", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_id": "sel2p8wy6c", + "api_key_required": false, + "authorization_scopes": [], + "authorization_type": "NONE", + "authorizer_id": "", + "id": "q0f3982", + "model_selection_expression": "", + "operation_name": "", + "request_models": {}, + "request_parameter": [], + "route_key": "GET /api", + "route_response_selection_expression": "", + "target": "integrations/82x2elk" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_integration.api_standout_integration", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_redirect", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_stage", + "name": "api_standout_lambda_stage", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "access_log_settings": [], + "api_id": "sel2p8wy6c", + "arn": "arn:aws:apigateway:eu-west-1::/apis/sel2p8wy6c/stages/dev", + "auto_deploy": true, + "client_certificate_id": "", + "default_route_settings": [ + { + "data_trace_enabled": false, + "detailed_metrics_enabled": false, + "logging_level": "", + "throttling_burst_limit": 0, + "throttling_rate_limit": 0 + } + ], + "deployment_id": "5hzo6h", + "description": "", + "execution_arn": "arn:aws:execute-api:eu-west-1:654654203111:sel2p8wy6c/dev", + "id": "dev", + "invoke_url": "https://sel2p8wy6c.execute-api.eu-west-1.amazonaws.com/dev", + "name": "dev", + "route_settings": [], + "stage_variables": {}, + "tags": {}, + "tags_all": {} + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_iam_role", + "name": "iam_for_lambda", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:iam::654654203111:role/iam_for_lambda-dev", + "assume_role_policy": "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"lambda.amazonaws.com\"}}],\"Version\":\"2012-10-17\"}", + "create_date": "2024-05-25T12:28:31Z", + "description": "", + "force_detach_policies": false, + "id": "iam_for_lambda-dev", + "inline_policy": [], + "managed_policy_arns": [], + "max_session_duration": 3600, + "name": "iam_for_lambda-dev", + "name_prefix": "", + "path": "/", + "permissions_boundary": "", + "tags": {}, + "tags_all": {}, + "unique_id": "AROAZQ3DOMTTRQMSNNGQF" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_iam_role_policy_attachment", + "name": "iam_for_lambda_allow_logs", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "iam_for_lambda-dev-20240525125938547100000001", + "policy_arn": "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", + "role": "iam_for_lambda-dev" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_iam_role.iam_for_lambda", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_function", + "name": "lambda_standout_config", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "architectures": [ + "x86_64" + ], + "arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev", + "code_sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=", + "code_signing_config_arn": "", + "dead_letter_config": [], + "description": "", + "environment": [ + { + "variables": { + "BUCKET_CONFIG": "standout-config-dev", + "BUCKET_DATA": "standout-data-dev", + "FUNCTION_URL": "https://sel2p8wy6c.execute-api.eu-west-1.amazonaws.com/dev" + } + } + ], + "ephemeral_storage": [ + { + "size": 512 + } + ], + "file_system_config": [], + "filename": "./lambda_zip/standout_lambda_config-dev.zip", + "function_name": "standout-config-dev", + "handler": "lambda_config.lambda_handler", + "id": "standout-config-dev", + "image_config": [], + "image_uri": "", + "invoke_arn": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev/invocations", + "kms_key_arn": "", + "last_modified": "2024-05-25T12:28:52.179+0000", + "layers": [ + "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7" + ], + "logging_config": [ + { + "application_log_level": "", + "log_format": "Text", + "log_group": "/aws/lambda/standout-config-dev", + "system_log_level": "" + } + ], + "memory_size": 128, + "package_type": "Zip", + "publish": false, + "qualified_arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev:$LATEST", + "qualified_invoke_arn": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev:$LATEST/invocations", + "replace_security_groups_on_destroy": null, + "replacement_security_group_ids": null, + "reserved_concurrent_executions": -1, + "role": "arn:aws:iam::654654203111:role/iam_for_lambda-dev", + "runtime": "python3.12", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "signing_job_arn": "", + "signing_profile_version_arn": "", + "skip_destroy": false, + "snap_start": [], + "source_code_hash": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "source_code_size": 4639, + "tags": {}, + "tags_all": {}, + "timeout": 10, + "timeouts": null, + "tracing_config": [ + { + "mode": "PassThrough" + } + ], + "version": "$LATEST", + "vpc_config": [] + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_stage.api_standout_lambda_stage", + "aws_iam_role.iam_for_lambda", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_function", + "name": "lambda_standout_redirect", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "architectures": [ + "x86_64" + ], + "arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-redirect-dev", + "code_sha256": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "code_signing_config_arn": "", + "dead_letter_config": [], + "description": "", + "environment": [ + { + "variables": { + "BUCKET_CONFIG": "standout-config-dev", + "BUCKET_DATA": "standout-data-dev" + } + } + ], + "ephemeral_storage": [ + { + "size": 512 + } + ], + "file_system_config": [], + "filename": "./lambda_zip/standout_lambda_redirect-dev.zip", + "function_name": "standout-redirect-dev", + "handler": "lambda_redirect.lambda_handler", + "id": "standout-redirect-dev", + "image_config": [], + "image_uri": "", + "invoke_arn": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:654654203111:function:standout-redirect-dev/invocations", + "kms_key_arn": "", + "last_modified": "2024-05-25T12:28:45.157+0000", + "layers": [ + "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7" + ], + "logging_config": [ + { + "application_log_level": "", + "log_format": "Text", + "log_group": "/aws/lambda/standout-redirect-dev", + "system_log_level": "" + } + ], + "memory_size": 128, + "package_type": "Zip", + "publish": false, + "qualified_arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-redirect-dev:$LATEST", + "qualified_invoke_arn": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:654654203111:function:standout-redirect-dev:$LATEST/invocations", + "replace_security_groups_on_destroy": null, + "replacement_security_group_ids": null, + "reserved_concurrent_executions": -1, + "role": "arn:aws:iam::654654203111:role/iam_for_lambda-dev", + "runtime": "python3.12", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "signing_job_arn": "", + "signing_profile_version_arn": "", + "skip_destroy": false, + "snap_start": [], + "source_code_hash": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "source_code_size": 51368, + "tags": {}, + "tags_all": {}, + "timeout": 10, + "timeouts": null, + "tracing_config": [ + { + "mode": "PassThrough" + } + ], + "version": "$LATEST", + "vpc_config": [] + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "dependencies": [ + "aws_iam_role.iam_for_lambda", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_layer_version", + "name": "lambda_layer", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7", + "code_sha256": "hQZ4vVgzztN2Bn+hTHGKDTA5kp9HbrZQmunevgsPhAY=", + "compatible_architectures": [], + "compatible_runtimes": [ + "python3.12" + ], + "created_date": "2024-05-25T12:28:36.059+0000", + "description": "", + "filename": "./lambda_zip/lambda_layer-dev.zip", + "id": "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7", + "layer_arn": "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps", + "layer_name": "lambda_deps", + "license_info": "", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "signing_job_arn": "", + "signing_profile_version_arn": "", + "skip_destroy": false, + "source_code_hash": "", + "source_code_size": 3470735, + "version": "7" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_permission", + "name": "api_lambda_permission", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "action": "lambda:InvokeFunction", + "event_source_token": null, + "function_name": "standout-redirect-dev", + "function_url_auth_type": null, + "id": "AllowExecutionFromAPIGateway", + "principal": "apigateway.amazonaws.com", + "principal_org_id": null, + "qualifier": "", + "source_account": null, + "source_arn": "arn:aws:execute-api:eu-west-1:654654203111:sel2p8wy6c/*/*", + "statement_id": "AllowExecutionFromAPIGateway", + "statement_id_prefix": "" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_redirect", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_permission", + "name": "lambda_config_s3_trigger_allow", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "action": "lambda:InvokeFunction", + "event_source_token": null, + "function_name": "arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev", + "function_url_auth_type": null, + "id": "AllowExecutionFromS3Bucket", + "principal": "s3.amazonaws.com", + "principal_org_id": null, + "qualifier": "", + "source_account": null, + "source_arn": "arn:aws:s3:::standout-data-dev", + "statement_id": "AllowExecutionFromS3Bucket", + "statement_id_prefix": "" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_stage.api_standout_lambda_stage", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_config", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket", + "name": "s3_standout", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "acceleration_status": "", + "acl": null, + "arn": "arn:aws:s3:::standout-data-dev", + "bucket": "standout-data-dev", + "bucket_domain_name": "standout-data-dev.s3.amazonaws.com", + "bucket_prefix": "", + "bucket_regional_domain_name": "standout-data-dev.s3.eu-west-1.amazonaws.com", + "cors_rule": [], + "force_destroy": true, + "grant": [ + { + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802", + "permissions": [ + "FULL_CONTROL" + ], + "type": "CanonicalUser", + "uri": "" + } + ], + "hosted_zone_id": "Z1BKCTXD74EZPE", + "id": "standout-data-dev", + "lifecycle_rule": [], + "logging": [], + "object_lock_configuration": [], + "object_lock_enabled": false, + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-data-dev/*\"}],\"Version\":\"2012-10-17\"}", + "region": "eu-west-1", + "replication_configuration": [], + "request_payer": "BucketOwner", + "server_side_encryption_configuration": [ + { + "rule": [ + { + "apply_server_side_encryption_by_default": [ + { + "kms_master_key_id": "", + "sse_algorithm": "AES256" + } + ], + "bucket_key_enabled": false + } + ] + } + ], + "tags": {}, + "tags_all": {}, + "timeouts": null, + "versioning": [ + { + "enabled": false, + "mfa_delete": false + } + ], + "website": [], + "website_domain": null, + "website_endpoint": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInJlYWQiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket", + "name": "s3_standout_config", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "acceleration_status": "", + "acl": null, + "arn": "arn:aws:s3:::standout-config-dev", + "bucket": "standout-config-dev", + "bucket_domain_name": "standout-config-dev.s3.amazonaws.com", + "bucket_prefix": "", + "bucket_regional_domain_name": "standout-config-dev.s3.eu-west-1.amazonaws.com", + "cors_rule": [], + "force_destroy": false, + "grant": [ + { + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802", + "permissions": [ + "FULL_CONTROL" + ], + "type": "CanonicalUser", + "uri": "" + } + ], + "hosted_zone_id": "Z1BKCTXD74EZPE", + "id": "standout-config-dev", + "lifecycle_rule": [], + "logging": [], + "object_lock_configuration": [], + "object_lock_enabled": false, + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-config-dev/*\"}],\"Version\":\"2012-10-17\"}", + "region": "eu-west-1", + "replication_configuration": [], + "request_payer": "BucketOwner", + "server_side_encryption_configuration": [ + { + "rule": [ + { + "apply_server_side_encryption_by_default": [ + { + "kms_master_key_id": "", + "sse_algorithm": "AES256" + } + ], + "bucket_key_enabled": false + } + ] + } + ], + "tags": {}, + "tags_all": {}, + "timeouts": null, + "versioning": [ + { + "enabled": false, + "mfa_delete": false + } + ], + "website": [], + "website_domain": null, + "website_endpoint": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInJlYWQiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_acl", + "name": "s3_standout_public_acl", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "access_control_policy": [ + { + "grant": [ + { + "grantee": [ + { + "display_name": "lisa", + "email_address": "", + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802", + "type": "CanonicalUser", + "uri": "" + } + ], + "permission": "FULL_CONTROL" + } + ], + "owner": [ + { + "display_name": "lisa", + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802" + } + ] + } + ], + "acl": "public-read", + "bucket": "standout-data-dev", + "expected_bucket_owner": "", + "id": "standout-data-dev,public-read" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout", + "aws_s3_bucket_ownership_controls.s3_standout_ownership", + "aws_s3_bucket_public_access_block.s3_standout_public_access" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_notification", + "name": "bucket_notification", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-data-dev", + "eventbridge": false, + "id": "standout-data-dev", + "lambda_function": [ + { + "events": [ + "s3:ObjectCreated:*", + "s3:ObjectRemoved:*" + ], + "filter_prefix": "", + "filter_suffix": "", + "id": "tf-s3-lambda-20240525122853270300000001", + "lambda_function_arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev" + } + ], + "queue": [], + "topic": [] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_stage.api_standout_lambda_stage", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_config", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_ownership_controls", + "name": "s3_standout_config_ownership", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-config-dev", + "id": "standout-config-dev", + "rule": [ + { + "object_ownership": "BucketOwnerPreferred" + } + ] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout_config" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_ownership_controls", + "name": "s3_standout_ownership", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-data-dev", + "id": "standout-data-dev", + "rule": [ + { + "object_ownership": "BucketOwnerPreferred" + } + ] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_policy", + "name": "s3_standout_config_policy", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-config-dev", + "id": "standout-config-dev", + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-config-dev/*\"}],\"Version\":\"2012-10-17\"}" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout_config", + "data.aws_iam_policy_document.s3_standout_config_allow_lambda" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_policy", + "name": "s3_standout_policy", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-data-dev", + "id": "standout-data-dev", + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-data-dev/*\"}],\"Version\":\"2012-10-17\"}" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout", + "data.aws_iam_policy_document.s3_standout_allow_lambda" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_public_access_block", + "name": "s3_standout_config_public_access", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "block_public_acls": false, + "block_public_policy": false, + "bucket": "standout-config-dev", + "id": "standout-config-dev", + "ignore_public_acls": true, + "restrict_public_buckets": true + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout_config" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_public_access_block", + "name": "s3_standout_public_access", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "block_public_acls": false, + "block_public_policy": false, + "bucket": "standout-data-dev", + "id": "standout-data-dev", + "ignore_public_acls": true, + "restrict_public_buckets": true + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_vpc", + "name": "vpc_standout", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "arn": "arn:aws:ec2:eu-west-1:654654203111:vpc/vpc-099af40f390d1e802", + "assign_generated_ipv6_cidr_block": false, + "cidr_block": "10.0.0.0/16", + "default_network_acl_id": "acl-041cbb8ac4bd93b39", + "default_route_table_id": "rtb-074010f113e505814", + "default_security_group_id": "sg-0759ed695320a6250", + "dhcp_options_id": "dopt-0408012a40d65503d", + "enable_dns_hostnames": false, + "enable_dns_support": true, + "enable_network_address_usage_metrics": false, + "id": "vpc-099af40f390d1e802", + "instance_tenancy": "default", + "ipv4_ipam_pool_id": null, + "ipv4_netmask_length": null, + "ipv6_association_id": "", + "ipv6_cidr_block": "", + "ipv6_cidr_block_network_border_group": "", + "ipv6_ipam_pool_id": "", + "ipv6_netmask_length": 0, + "main_route_table_id": "rtb-074010f113e505814", + "owner_id": "654654203111", + "tags": {}, + "tags_all": {} + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + } + ], + "check_results": null +} diff --git a/terraform.tfstate.d/dev/terraform.tfstate.backup b/terraform.tfstate.d/dev/terraform.tfstate.backup new file mode 100644 index 0000000..5591189 --- /dev/null +++ b/terraform.tfstate.d/dev/terraform.tfstate.backup @@ -0,0 +1,1161 @@ +{ + "version": 4, + "terraform_version": "1.8.3", + "serial": 84, + "lineage": "c4760d73-7122-ff64-ba30-f5482ab084b8", + "outputs": {}, + "resources": [ + { + "mode": "data", + "type": "archive_file", + "name": "lambda_layer_deps", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "f2e1b4a2359b092eb66a365d0e17bd4d7ef2c174", + "output_base64sha256": "hQZ4vVgzztN2Bn+hTHGKDTA5kp9HbrZQmunevgsPhAY=", + "output_base64sha512": "PUsXQzofQAKQshK6yW9WuQRbTUbjdNjA+VBVJBTNgHr4lBhe4ZelmAnlisiQVM6uY36RD9CNRLD7aT/V8YVY5Q==", + "output_file_mode": null, + "output_md5": "f4f31334a8bc343ab1b8848f5fb96e9d", + "output_path": "./lambda_zip/lambda_layer-dev.zip", + "output_sha": "f2e1b4a2359b092eb66a365d0e17bd4d7ef2c174", + "output_sha256": "850678bd5833ced376067fa14c718a0d3039929f476eb6509ae9debe0b0f8406", + "output_sha512": "3d4b17433a1f400290b212bac96f56b9045b4d46e374d8c0f950552414cd807af894185ee197a59809e58ac89054ceae637e910fd08d44b0fb693fd5f18558e5", + "output_size": 3470735, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_layer", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "archive_file", + "name": "lambda_standout_code", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "bf96d8f34aad3a86e985be53a3a6682d62164e73", + "output_base64sha256": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "output_base64sha512": "R+OeVTikvIPAsYIjKtRdZdFCZQWLp/PUtIvpTIwc726mIuccBlur53ethzlJezoXubQmtF9CEiUdjzsrfb3/pQ==", + "output_file_mode": null, + "output_md5": "6971a02ee30cd8591ded93920a6b994a", + "output_path": "./lambda_zip/standout_lambda_redirect-dev.zip", + "output_sha": "bf96d8f34aad3a86e985be53a3a6682d62164e73", + "output_sha256": "9a41356c2426097b20764a495f5cac7086c034b626716953c802f37f1d81a9b2", + "output_sha512": "47e39e5538a4bc83c0b182232ad45d65d14265058ba7f3d4b48be94c8c1cef6ea622e71c065babe777ad8739497b3a17b9b426b45f4212251d8f3b2b7dbdffa5", + "output_size": 51368, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_redirect", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "archive_file", + "name": "lambda_standout_config_code", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "a401470a001300338fa7d09cdffe3f16277971d8", + "output_base64sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=", + "output_base64sha512": "oUyZrUKNQPvZt3crReW69Vapq3IGvHD5hk617XXamv8G99f62CoJO1lsd07gaVlf5ln2EyPj+cQleaXg5w3JCg==", + "output_file_mode": null, + "output_md5": "e97ce8be22567986c9fcff5165b4afdb", + "output_path": "./lambda_zip/standout_lambda_config-dev.zip", + "output_sha": "a401470a001300338fa7d09cdffe3f16277971d8", + "output_sha256": "edca42403d4b7fa403c123e4fde7426bc5c3651794bbbad186109a827a280227", + "output_sha512": "a14c99ad428d40fbd9b7772b45e5baf556a9ab7206bc70f9864eb5ed75da9aff06f7d7fad82a093b596c774ee069595fe659f61323e3f9c42579a5e0e70dc90a", + "output_size": 4639, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_config", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "aws_iam_policy_document", + "name": "lambda_role", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "2690255455", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"lambda.amazonaws.com\"\n }\n }\n ]\n}", + "minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":\"sts:AssumeRole\",\"Principal\":{\"Service\":\"lambda.amazonaws.com\"}}]}", + "override_json": null, + "override_policy_documents": null, + "policy_id": null, + "source_json": null, + "source_policy_documents": null, + "statement": [ + { + "actions": [ + "sts:AssumeRole" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "lambda.amazonaws.com" + ], + "type": "Service" + } + ], + "resources": [], + "sid": "" + } + ], + "version": "2012-10-17" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "aws_iam_policy_document", + "name": "s3_standout_allow_lambda", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "867140593", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:Put*\",\n \"s3:List*\",\n \"s3:Get*\"\n ],\n \"Resource\": \"arn:aws:s3:::standout-data-dev/*\",\n \"Principal\": {\n \"AWS\": \"*\"\n }\n }\n ]\n}", + "minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Resource\":\"arn:aws:s3:::standout-data-dev/*\",\"Principal\":{\"AWS\":\"*\"}}]}", + "override_json": null, + "override_policy_documents": null, + "policy_id": null, + "source_json": null, + "source_policy_documents": null, + "statement": [ + { + "actions": [ + "s3:Get*", + "s3:List*", + "s3:Put*" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "*" + ], + "type": "AWS" + } + ], + "resources": [ + "arn:aws:s3:::standout-data-dev/*" + ], + "sid": "" + } + ], + "version": "2012-10-17" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "aws_iam_policy_document", + "name": "s3_standout_config_allow_lambda", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "134226879", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:Put*\",\n \"s3:List*\",\n \"s3:Get*\"\n ],\n \"Resource\": \"arn:aws:s3:::standout-config-dev/*\",\n \"Principal\": {\n \"AWS\": \"*\"\n }\n }\n ]\n}", + "minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Resource\":\"arn:aws:s3:::standout-config-dev/*\",\"Principal\":{\"AWS\":\"*\"}}]}", + "override_json": null, + "override_policy_documents": null, + "policy_id": null, + "source_json": null, + "source_policy_documents": null, + "statement": [ + { + "actions": [ + "s3:Get*", + "s3:List*", + "s3:Put*" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "*" + ], + "type": "AWS" + } + ], + "resources": [ + "arn:aws:s3:::standout-config-dev/*" + ], + "sid": "" + } + ], + "version": "2012-10-17" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_api", + "name": "api_standout_gateway", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_endpoint": "https://sel2p8wy6c.execute-api.eu-west-1.amazonaws.com", + "api_key_selection_expression": "$request.header.x-api-key", + "arn": "arn:aws:apigateway:eu-west-1::/apis/sel2p8wy6c", + "body": null, + "cors_configuration": [], + "credentials_arn": null, + "description": "", + "disable_execute_api_endpoint": false, + "execution_arn": "arn:aws:execute-api:eu-west-1:654654203111:sel2p8wy6c", + "fail_on_warnings": null, + "id": "sel2p8wy6c", + "name": "standout-api-dev", + "protocol_type": "HTTP", + "route_key": null, + "route_selection_expression": "$request.method $request.path", + "tags": {}, + "tags_all": {}, + "target": null, + "version": "" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_integration", + "name": "api_standout_integration", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_id": "sel2p8wy6c", + "connection_id": "", + "connection_type": "INTERNET", + "content_handling_strategy": "", + "credentials_arn": "", + "description": "Lambda example", + "id": "82x2elk", + "integration_method": "POST", + "integration_response_selection_expression": "", + "integration_subtype": "", + "integration_type": "AWS_PROXY", + "integration_uri": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:654654203111:function:standout-redirect-dev/invocations", + "passthrough_behavior": "", + "payload_format_version": "1.0", + "request_parameters": {}, + "request_templates": {}, + "response_parameters": [], + "template_selection_expression": "", + "timeout_milliseconds": 30000, + "tls_config": [] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_redirect", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_route", + "name": "api_standout_route", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_id": "sel2p8wy6c", + "api_key_required": false, + "authorization_scopes": [], + "authorization_type": "NONE", + "authorizer_id": "", + "id": "q0f3982", + "model_selection_expression": "", + "operation_name": "", + "request_models": {}, + "request_parameter": [], + "route_key": "GET /api", + "route_response_selection_expression": "", + "target": "integrations/82x2elk" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_integration.api_standout_integration", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_redirect", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_stage", + "name": "api_standout_lambda_stage", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "access_log_settings": [], + "api_id": "sel2p8wy6c", + "arn": "arn:aws:apigateway:eu-west-1::/apis/sel2p8wy6c/stages/dev", + "auto_deploy": true, + "client_certificate_id": "", + "default_route_settings": [ + { + "data_trace_enabled": false, + "detailed_metrics_enabled": false, + "logging_level": "", + "throttling_burst_limit": 0, + "throttling_rate_limit": 0 + } + ], + "deployment_id": "5hzo6h", + "description": "", + "execution_arn": "arn:aws:execute-api:eu-west-1:654654203111:sel2p8wy6c/dev", + "id": "dev", + "invoke_url": "https://sel2p8wy6c.execute-api.eu-west-1.amazonaws.com/dev", + "name": "dev", + "route_settings": [], + "stage_variables": {}, + "tags": {}, + "tags_all": {} + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_iam_role", + "name": "iam_for_lambda", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:iam::654654203111:role/iam_for_lambda-dev", + "assume_role_policy": "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"lambda.amazonaws.com\"}}],\"Version\":\"2012-10-17\"}", + "create_date": "2024-05-25T12:28:31Z", + "description": "", + "force_detach_policies": false, + "id": "iam_for_lambda-dev", + "inline_policy": [], + "managed_policy_arns": [], + "max_session_duration": 3600, + "name": "iam_for_lambda-dev", + "name_prefix": "", + "path": "/", + "permissions_boundary": "", + "tags": {}, + "tags_all": {}, + "unique_id": "AROAZQ3DOMTTRQMSNNGQF" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_function", + "name": "lambda_standout_config", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "architectures": [ + "x86_64" + ], + "arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev", + "code_sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=", + "code_signing_config_arn": "", + "dead_letter_config": [], + "description": "", + "environment": [ + { + "variables": { + "BUCKET_CONFIG": "standout-config-dev", + "BUCKET_DATA": "standout-data-dev", + "FUNCTION_URL": "https://sel2p8wy6c.execute-api.eu-west-1.amazonaws.com/dev" + } + } + ], + "ephemeral_storage": [ + { + "size": 512 + } + ], + "file_system_config": [], + "filename": "./lambda_zip/standout_lambda_config-dev.zip", + "function_name": "standout-config-dev", + "handler": "lambda_config.lambda_handler", + "id": "standout-config-dev", + "image_config": [], + "image_uri": "", + "invoke_arn": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev/invocations", + "kms_key_arn": "", + "last_modified": "2024-05-25T12:28:52.179+0000", + "layers": [ + "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7" + ], + "logging_config": [ + { + "application_log_level": "", + "log_format": "Text", + "log_group": "/aws/lambda/standout-config-dev", + "system_log_level": "" + } + ], + "memory_size": 128, + "package_type": "Zip", + "publish": false, + "qualified_arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev:$LATEST", + "qualified_invoke_arn": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev:$LATEST/invocations", + "replace_security_groups_on_destroy": null, + "replacement_security_group_ids": null, + "reserved_concurrent_executions": -1, + "role": "arn:aws:iam::654654203111:role/iam_for_lambda-dev", + "runtime": "python3.12", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "signing_job_arn": "", + "signing_profile_version_arn": "", + "skip_destroy": false, + "snap_start": [], + "source_code_hash": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "source_code_size": 4639, + "tags": {}, + "tags_all": {}, + "timeout": 10, + "timeouts": null, + "tracing_config": [ + { + "mode": "PassThrough" + } + ], + "version": "$LATEST", + "vpc_config": [] + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_stage.api_standout_lambda_stage", + "aws_iam_role.iam_for_lambda", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_function", + "name": "lambda_standout_redirect", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "architectures": [ + "x86_64" + ], + "arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-redirect-dev", + "code_sha256": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "code_signing_config_arn": "", + "dead_letter_config": [], + "description": "", + "environment": [ + { + "variables": { + "BUCKET_CONFIG": "standout-config-dev", + "BUCKET_DATA": "standout-data-dev" + } + } + ], + "ephemeral_storage": [ + { + "size": 512 + } + ], + "file_system_config": [], + "filename": "./lambda_zip/standout_lambda_redirect-dev.zip", + "function_name": "standout-redirect-dev", + "handler": "lambda_redirect.lambda_handler", + "id": "standout-redirect-dev", + "image_config": [], + "image_uri": "", + "invoke_arn": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:654654203111:function:standout-redirect-dev/invocations", + "kms_key_arn": "", + "last_modified": "2024-05-25T12:28:45.157+0000", + "layers": [ + "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7" + ], + "logging_config": [ + { + "application_log_level": "", + "log_format": "Text", + "log_group": "/aws/lambda/standout-redirect-dev", + "system_log_level": "" + } + ], + "memory_size": 128, + "package_type": "Zip", + "publish": false, + "qualified_arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-redirect-dev:$LATEST", + "qualified_invoke_arn": "arn:aws:apigateway:eu-west-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-west-1:654654203111:function:standout-redirect-dev:$LATEST/invocations", + "replace_security_groups_on_destroy": null, + "replacement_security_group_ids": null, + "reserved_concurrent_executions": -1, + "role": "arn:aws:iam::654654203111:role/iam_for_lambda-dev", + "runtime": "python3.12", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "signing_job_arn": "", + "signing_profile_version_arn": "", + "skip_destroy": false, + "snap_start": [], + "source_code_hash": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "source_code_size": 51368, + "tags": {}, + "tags_all": {}, + "timeout": 10, + "timeouts": null, + "tracing_config": [ + { + "mode": "PassThrough" + } + ], + "version": "$LATEST", + "vpc_config": [] + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "dependencies": [ + "aws_iam_role.iam_for_lambda", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_layer_version", + "name": "lambda_layer", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7", + "code_sha256": "hQZ4vVgzztN2Bn+hTHGKDTA5kp9HbrZQmunevgsPhAY=", + "compatible_architectures": [], + "compatible_runtimes": [ + "python3.12" + ], + "created_date": "2024-05-25T12:28:36.059+0000", + "description": "", + "filename": "./lambda_zip/lambda_layer-dev.zip", + "id": "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps:7", + "layer_arn": "arn:aws:lambda:eu-west-1:654654203111:layer:lambda_deps", + "layer_name": "lambda_deps", + "license_info": "", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "signing_job_arn": "", + "signing_profile_version_arn": "", + "skip_destroy": false, + "source_code_hash": "", + "source_code_size": 3470735, + "version": "7" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_permission", + "name": "api_lambda_permission", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "action": "lambda:InvokeFunction", + "event_source_token": null, + "function_name": "standout-redirect-dev", + "function_url_auth_type": null, + "id": "AllowExecutionFromAPIGateway", + "principal": "apigateway.amazonaws.com", + "principal_org_id": null, + "qualifier": "", + "source_account": null, + "source_arn": "arn:aws:execute-api:eu-west-1:654654203111:sel2p8wy6c/*/*", + "statement_id": "AllowExecutionFromAPIGateway", + "statement_id_prefix": "" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_redirect", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_permission", + "name": "lambda_config_s3_trigger_allow", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "action": "lambda:InvokeFunction", + "event_source_token": null, + "function_name": "arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev", + "function_url_auth_type": null, + "id": "AllowExecutionFromS3Bucket", + "principal": "s3.amazonaws.com", + "principal_org_id": null, + "qualifier": "", + "source_account": null, + "source_arn": "arn:aws:s3:::standout-data-dev", + "statement_id": "AllowExecutionFromS3Bucket", + "statement_id_prefix": "" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_stage.api_standout_lambda_stage", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_config", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket", + "name": "s3_standout", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "acceleration_status": "", + "acl": null, + "arn": "arn:aws:s3:::standout-data-dev", + "bucket": "standout-data-dev", + "bucket_domain_name": "standout-data-dev.s3.amazonaws.com", + "bucket_prefix": "", + "bucket_regional_domain_name": "standout-data-dev.s3.eu-west-1.amazonaws.com", + "cors_rule": [], + "force_destroy": true, + "grant": [ + { + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802", + "permissions": [ + "FULL_CONTROL" + ], + "type": "CanonicalUser", + "uri": "" + } + ], + "hosted_zone_id": "Z1BKCTXD74EZPE", + "id": "standout-data-dev", + "lifecycle_rule": [], + "logging": [], + "object_lock_configuration": [], + "object_lock_enabled": false, + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-data-dev/*\"}],\"Version\":\"2012-10-17\"}", + "region": "eu-west-1", + "replication_configuration": [], + "request_payer": "BucketOwner", + "server_side_encryption_configuration": [ + { + "rule": [ + { + "apply_server_side_encryption_by_default": [ + { + "kms_master_key_id": "", + "sse_algorithm": "AES256" + } + ], + "bucket_key_enabled": false + } + ] + } + ], + "tags": {}, + "tags_all": {}, + "timeouts": null, + "versioning": [ + { + "enabled": false, + "mfa_delete": false + } + ], + "website": [], + "website_domain": null, + "website_endpoint": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInJlYWQiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket", + "name": "s3_standout_config", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "acceleration_status": "", + "acl": null, + "arn": "arn:aws:s3:::standout-config-dev", + "bucket": "standout-config-dev", + "bucket_domain_name": "standout-config-dev.s3.amazonaws.com", + "bucket_prefix": "", + "bucket_regional_domain_name": "standout-config-dev.s3.eu-west-1.amazonaws.com", + "cors_rule": [], + "force_destroy": false, + "grant": [ + { + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802", + "permissions": [ + "FULL_CONTROL" + ], + "type": "CanonicalUser", + "uri": "" + } + ], + "hosted_zone_id": "Z1BKCTXD74EZPE", + "id": "standout-config-dev", + "lifecycle_rule": [], + "logging": [], + "object_lock_configuration": [], + "object_lock_enabled": false, + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-config-dev/*\"}],\"Version\":\"2012-10-17\"}", + "region": "eu-west-1", + "replication_configuration": [], + "request_payer": "BucketOwner", + "server_side_encryption_configuration": [ + { + "rule": [ + { + "apply_server_side_encryption_by_default": [ + { + "kms_master_key_id": "", + "sse_algorithm": "AES256" + } + ], + "bucket_key_enabled": false + } + ] + } + ], + "tags": {}, + "tags_all": {}, + "timeouts": null, + "versioning": [ + { + "enabled": false, + "mfa_delete": false + } + ], + "website": [], + "website_domain": null, + "website_endpoint": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInJlYWQiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_acl", + "name": "s3_standout_public_acl", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "access_control_policy": [ + { + "grant": [ + { + "grantee": [ + { + "display_name": "lisa", + "email_address": "", + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802", + "type": "CanonicalUser", + "uri": "" + } + ], + "permission": "FULL_CONTROL" + } + ], + "owner": [ + { + "display_name": "lisa", + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802" + } + ] + } + ], + "acl": "public-read", + "bucket": "standout-data-dev", + "expected_bucket_owner": "", + "id": "standout-data-dev,public-read" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout", + "aws_s3_bucket_ownership_controls.s3_standout_ownership", + "aws_s3_bucket_public_access_block.s3_standout_public_access" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_notification", + "name": "bucket_notification", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-data-dev", + "eventbridge": false, + "id": "standout-data-dev", + "lambda_function": [ + { + "events": [ + "s3:ObjectCreated:*", + "s3:ObjectRemoved:*" + ], + "filter_prefix": "", + "filter_suffix": "", + "id": "tf-s3-lambda-20240525122853270300000001", + "lambda_function_arn": "arn:aws:lambda:eu-west-1:654654203111:function:standout-config-dev" + } + ], + "queue": [], + "topic": [] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_stage.api_standout_lambda_stage", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_config", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_ownership_controls", + "name": "s3_standout_config_ownership", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-config-dev", + "id": "standout-config-dev", + "rule": [ + { + "object_ownership": "BucketOwnerPreferred" + } + ] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout_config" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_ownership_controls", + "name": "s3_standout_ownership", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-data-dev", + "id": "standout-data-dev", + "rule": [ + { + "object_ownership": "BucketOwnerPreferred" + } + ] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_policy", + "name": "s3_standout_config_policy", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-config-dev", + "id": "standout-config-dev", + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-config-dev/*\"}],\"Version\":\"2012-10-17\"}" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout_config", + "data.aws_iam_policy_document.s3_standout_config_allow_lambda" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_policy", + "name": "s3_standout_policy", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-data-dev", + "id": "standout-data-dev", + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-data-dev/*\"}],\"Version\":\"2012-10-17\"}" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout", + "data.aws_iam_policy_document.s3_standout_allow_lambda" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_public_access_block", + "name": "s3_standout_config_public_access", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "block_public_acls": false, + "block_public_policy": false, + "bucket": "standout-config-dev", + "id": "standout-config-dev", + "ignore_public_acls": true, + "restrict_public_buckets": true + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout_config" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_public_access_block", + "name": "s3_standout_public_access", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "block_public_acls": false, + "block_public_policy": false, + "bucket": "standout-data-dev", + "id": "standout-data-dev", + "ignore_public_acls": true, + "restrict_public_buckets": true + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_vpc", + "name": "vpc_standout", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "arn": "arn:aws:ec2:eu-west-1:654654203111:vpc/vpc-099af40f390d1e802", + "assign_generated_ipv6_cidr_block": false, + "cidr_block": "10.0.0.0/16", + "default_network_acl_id": "acl-041cbb8ac4bd93b39", + "default_route_table_id": "rtb-074010f113e505814", + "default_security_group_id": "sg-0759ed695320a6250", + "dhcp_options_id": "dopt-0408012a40d65503d", + "enable_dns_hostnames": false, + "enable_dns_support": true, + "enable_network_address_usage_metrics": false, + "id": "vpc-099af40f390d1e802", + "instance_tenancy": "default", + "ipv4_ipam_pool_id": null, + "ipv4_netmask_length": null, + "ipv6_association_id": "", + "ipv6_cidr_block": "", + "ipv6_cidr_block_network_border_group": "", + "ipv6_ipam_pool_id": "", + "ipv6_netmask_length": 0, + "main_route_table_id": "rtb-074010f113e505814", + "owner_id": "654654203111", + "tags": {}, + "tags_all": {} + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + } + ], + "check_results": null +} diff --git a/terraform.tfstate.d/prod/terraform.tfstate b/terraform.tfstate.d/prod/terraform.tfstate new file mode 100644 index 0000000..af3d85d --- /dev/null +++ b/terraform.tfstate.d/prod/terraform.tfstate @@ -0,0 +1,1161 @@ +{ + "version": 4, + "terraform_version": "1.8.3", + "serial": 34, + "lineage": "bfb14822-28e1-8bec-1200-85cd7662a2f9", + "outputs": {}, + "resources": [ + { + "mode": "data", + "type": "archive_file", + "name": "lambda_layer_deps", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "f2e1b4a2359b092eb66a365d0e17bd4d7ef2c174", + "output_base64sha256": "hQZ4vVgzztN2Bn+hTHGKDTA5kp9HbrZQmunevgsPhAY=", + "output_base64sha512": "PUsXQzofQAKQshK6yW9WuQRbTUbjdNjA+VBVJBTNgHr4lBhe4ZelmAnlisiQVM6uY36RD9CNRLD7aT/V8YVY5Q==", + "output_file_mode": null, + "output_md5": "f4f31334a8bc343ab1b8848f5fb96e9d", + "output_path": "./lambda_zip/lambda_layer-prod.zip", + "output_sha": "f2e1b4a2359b092eb66a365d0e17bd4d7ef2c174", + "output_sha256": "850678bd5833ced376067fa14c718a0d3039929f476eb6509ae9debe0b0f8406", + "output_sha512": "3d4b17433a1f400290b212bac96f56b9045b4d46e374d8c0f950552414cd807af894185ee197a59809e58ac89054ceae637e910fd08d44b0fb693fd5f18558e5", + "output_size": 3470735, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_layer", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "archive_file", + "name": "lambda_standout_code", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "bf96d8f34aad3a86e985be53a3a6682d62164e73", + "output_base64sha256": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "output_base64sha512": "R+OeVTikvIPAsYIjKtRdZdFCZQWLp/PUtIvpTIwc726mIuccBlur53ethzlJezoXubQmtF9CEiUdjzsrfb3/pQ==", + "output_file_mode": null, + "output_md5": "6971a02ee30cd8591ded93920a6b994a", + "output_path": "./lambda_zip/standout_lambda_redirect-prod.zip", + "output_sha": "bf96d8f34aad3a86e985be53a3a6682d62164e73", + "output_sha256": "9a41356c2426097b20764a495f5cac7086c034b626716953c802f37f1d81a9b2", + "output_sha512": "47e39e5538a4bc83c0b182232ad45d65d14265058ba7f3d4b48be94c8c1cef6ea622e71c065babe777ad8739497b3a17b9b426b45f4212251d8f3b2b7dbdffa5", + "output_size": 51368, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_redirect", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "archive_file", + "name": "lambda_standout_config_code", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "a401470a001300338fa7d09cdffe3f16277971d8", + "output_base64sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=", + "output_base64sha512": "oUyZrUKNQPvZt3crReW69Vapq3IGvHD5hk617XXamv8G99f62CoJO1lsd07gaVlf5ln2EyPj+cQleaXg5w3JCg==", + "output_file_mode": null, + "output_md5": "e97ce8be22567986c9fcff5165b4afdb", + "output_path": "./lambda_zip/standout_lambda_config-prod.zip", + "output_sha": "a401470a001300338fa7d09cdffe3f16277971d8", + "output_sha256": "edca42403d4b7fa403c123e4fde7426bc5c3651794bbbad186109a827a280227", + "output_sha512": "a14c99ad428d40fbd9b7772b45e5baf556a9ab7206bc70f9864eb5ed75da9aff06f7d7fad82a093b596c774ee069595fe659f61323e3f9c42579a5e0e70dc90a", + "output_size": 4639, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_config", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "aws_iam_policy_document", + "name": "lambda_role", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "2690255455", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"lambda.amazonaws.com\"\n }\n }\n ]\n}", + "minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":\"sts:AssumeRole\",\"Principal\":{\"Service\":\"lambda.amazonaws.com\"}}]}", + "override_json": null, + "override_policy_documents": null, + "policy_id": null, + "source_json": null, + "source_policy_documents": null, + "statement": [ + { + "actions": [ + "sts:AssumeRole" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "lambda.amazonaws.com" + ], + "type": "Service" + } + ], + "resources": [], + "sid": "" + } + ], + "version": "2012-10-17" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "aws_iam_policy_document", + "name": "s3_standout_allow_lambda", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "3177051619", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:Put*\",\n \"s3:List*\",\n \"s3:Get*\"\n ],\n \"Resource\": \"arn:aws:s3:::standout-data-prod/*\",\n \"Principal\": {\n \"AWS\": \"*\"\n }\n }\n ]\n}", + "minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Resource\":\"arn:aws:s3:::standout-data-prod/*\",\"Principal\":{\"AWS\":\"*\"}}]}", + "override_json": null, + "override_policy_documents": null, + "policy_id": null, + "source_json": null, + "source_policy_documents": null, + "statement": [ + { + "actions": [ + "s3:Get*", + "s3:List*", + "s3:Put*" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "*" + ], + "type": "AWS" + } + ], + "resources": [ + "arn:aws:s3:::standout-data-prod/*" + ], + "sid": "" + } + ], + "version": "2012-10-17" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "aws_iam_policy_document", + "name": "s3_standout_config_allow_lambda", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "738342612", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:Put*\",\n \"s3:List*\",\n \"s3:Get*\"\n ],\n \"Resource\": \"arn:aws:s3:::standout-config-prod/*\",\n \"Principal\": {\n \"AWS\": \"*\"\n }\n }\n ]\n}", + "minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Resource\":\"arn:aws:s3:::standout-config-prod/*\",\"Principal\":{\"AWS\":\"*\"}}]}", + "override_json": null, + "override_policy_documents": null, + "policy_id": null, + "source_json": null, + "source_policy_documents": null, + "statement": [ + { + "actions": [ + "s3:Get*", + "s3:List*", + "s3:Put*" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "*" + ], + "type": "AWS" + } + ], + "resources": [ + "arn:aws:s3:::standout-config-prod/*" + ], + "sid": "" + } + ], + "version": "2012-10-17" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_api", + "name": "api_standout_gateway", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_endpoint": "https://2kvqe64ca1.execute-api.eu-central-1.amazonaws.com", + "api_key_selection_expression": "$request.header.x-api-key", + "arn": "arn:aws:apigateway:eu-central-1::/apis/2kvqe64ca1", + "body": null, + "cors_configuration": [], + "credentials_arn": null, + "description": "", + "disable_execute_api_endpoint": false, + "execution_arn": "arn:aws:execute-api:eu-central-1:654654203111:2kvqe64ca1", + "fail_on_warnings": null, + "id": "2kvqe64ca1", + "name": "standout-api-prod", + "protocol_type": "HTTP", + "route_key": null, + "route_selection_expression": "$request.method $request.path", + "tags": {}, + "tags_all": {}, + "target": null, + "version": "" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_integration", + "name": "api_standout_integration", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_id": "2kvqe64ca1", + "connection_id": "", + "connection_type": "INTERNET", + "content_handling_strategy": "", + "credentials_arn": "", + "description": "Lambda example", + "id": "shduzq4", + "integration_method": "POST", + "integration_response_selection_expression": "", + "integration_subtype": "", + "integration_type": "AWS_PROXY", + "integration_uri": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod/invocations", + "passthrough_behavior": "", + "payload_format_version": "1.0", + "request_parameters": {}, + "request_templates": {}, + "response_parameters": [], + "template_selection_expression": "", + "timeout_milliseconds": 30000, + "tls_config": [] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_redirect", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_route", + "name": "api_standout_route", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_id": "2kvqe64ca1", + "api_key_required": false, + "authorization_scopes": [], + "authorization_type": "NONE", + "authorizer_id": "", + "id": "xsd9e7k", + "model_selection_expression": "", + "operation_name": "", + "request_models": {}, + "request_parameter": [], + "route_key": "GET /api", + "route_response_selection_expression": "", + "target": "integrations/shduzq4" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_integration.api_standout_integration", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_redirect", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_stage", + "name": "api_standout_lambda_stage", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "access_log_settings": [], + "api_id": "2kvqe64ca1", + "arn": "arn:aws:apigateway:eu-central-1::/apis/2kvqe64ca1/stages/prod", + "auto_deploy": true, + "client_certificate_id": "", + "default_route_settings": [ + { + "data_trace_enabled": false, + "detailed_metrics_enabled": false, + "logging_level": "", + "throttling_burst_limit": 0, + "throttling_rate_limit": 0 + } + ], + "deployment_id": "7vgrat", + "description": "", + "execution_arn": "arn:aws:execute-api:eu-central-1:654654203111:2kvqe64ca1/prod", + "id": "prod", + "invoke_url": "https://2kvqe64ca1.execute-api.eu-central-1.amazonaws.com/prod", + "name": "prod", + "route_settings": [], + "stage_variables": {}, + "tags": {}, + "tags_all": {} + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_iam_role", + "name": "iam_for_lambda", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:iam::654654203111:role/iam_for_lambda-prod", + "assume_role_policy": "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"lambda.amazonaws.com\"}}],\"Version\":\"2012-10-17\"}", + "create_date": "2024-05-25T12:33:48Z", + "description": "", + "force_detach_policies": false, + "id": "iam_for_lambda-prod", + "inline_policy": [], + "managed_policy_arns": [], + "max_session_duration": 3600, + "name": "iam_for_lambda-prod", + "name_prefix": "", + "path": "/", + "permissions_boundary": "", + "tags": {}, + "tags_all": {}, + "unique_id": "AROAZQ3DOMTTRSXZ5VXRN" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_function", + "name": "lambda_standout_config", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "architectures": [ + "x86_64" + ], + "arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod", + "code_sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=", + "code_signing_config_arn": "", + "dead_letter_config": [], + "description": "", + "environment": [ + { + "variables": { + "BUCKET_CONFIG": "standout-config-prod", + "BUCKET_DATA": "standout-data-prod", + "FUNCTION_URL": "https://2kvqe64ca1.execute-api.eu-central-1.amazonaws.com/prod" + } + } + ], + "ephemeral_storage": [ + { + "size": 512 + } + ], + "file_system_config": [], + "filename": "./lambda_zip/standout_lambda_config-prod.zip", + "function_name": "standout-config-prod", + "handler": "lambda_config.lambda_handler", + "id": "standout-config-prod", + "image_config": [], + "image_uri": "", + "invoke_arn": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod/invocations", + "kms_key_arn": "", + "last_modified": "2024-05-25T12:34:13.337+0000", + "layers": [ + "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2" + ], + "logging_config": [ + { + "application_log_level": "", + "log_format": "Text", + "log_group": "/aws/lambda/standout-config-prod", + "system_log_level": "" + } + ], + "memory_size": 128, + "package_type": "Zip", + "publish": false, + "qualified_arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod:$LATEST", + "qualified_invoke_arn": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod:$LATEST/invocations", + "replace_security_groups_on_destroy": null, + "replacement_security_group_ids": null, + "reserved_concurrent_executions": -1, + "role": "arn:aws:iam::654654203111:role/iam_for_lambda-prod", + "runtime": "python3.12", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "signing_job_arn": "", + "signing_profile_version_arn": "", + "skip_destroy": false, + "snap_start": [], + "source_code_hash": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "source_code_size": 4639, + "tags": {}, + "tags_all": {}, + "timeout": 10, + "timeouts": null, + "tracing_config": [ + { + "mode": "PassThrough" + } + ], + "version": "$LATEST", + "vpc_config": [] + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_stage.api_standout_lambda_stage", + "aws_iam_role.iam_for_lambda", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_function", + "name": "lambda_standout_redirect", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "architectures": [ + "x86_64" + ], + "arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod", + "code_sha256": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "code_signing_config_arn": "", + "dead_letter_config": [], + "description": "", + "environment": [ + { + "variables": { + "BUCKET_CONFIG": "standout-config-prod", + "BUCKET_DATA": "standout-data-prod" + } + } + ], + "ephemeral_storage": [ + { + "size": 512 + } + ], + "file_system_config": [], + "filename": "./lambda_zip/standout_lambda_redirect-prod.zip", + "function_name": "standout-redirect-prod", + "handler": "lambda_redirect.lambda_handler", + "id": "standout-redirect-prod", + "image_config": [], + "image_uri": "", + "invoke_arn": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod/invocations", + "kms_key_arn": "", + "last_modified": "2024-05-25T12:34:06.514+0000", + "layers": [ + "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2" + ], + "logging_config": [ + { + "application_log_level": "", + "log_format": "Text", + "log_group": "/aws/lambda/standout-redirect-prod", + "system_log_level": "" + } + ], + "memory_size": 128, + "package_type": "Zip", + "publish": false, + "qualified_arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod:$LATEST", + "qualified_invoke_arn": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod:$LATEST/invocations", + "replace_security_groups_on_destroy": null, + "replacement_security_group_ids": null, + "reserved_concurrent_executions": -1, + "role": "arn:aws:iam::654654203111:role/iam_for_lambda-prod", + "runtime": "python3.12", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "signing_job_arn": "", + "signing_profile_version_arn": "", + "skip_destroy": false, + "snap_start": [], + "source_code_hash": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "source_code_size": 51368, + "tags": {}, + "tags_all": {}, + "timeout": 10, + "timeouts": null, + "tracing_config": [ + { + "mode": "PassThrough" + } + ], + "version": "$LATEST", + "vpc_config": [] + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "dependencies": [ + "aws_iam_role.iam_for_lambda", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_layer_version", + "name": "lambda_layer", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2", + "code_sha256": "hQZ4vVgzztN2Bn+hTHGKDTA5kp9HbrZQmunevgsPhAY=", + "compatible_architectures": [], + "compatible_runtimes": [ + "python3.12" + ], + "created_date": "2024-05-25T12:33:52.492+0000", + "description": "", + "filename": "./lambda_zip/lambda_layer-prod.zip", + "id": "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2", + "layer_arn": "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps", + "layer_name": "lambda_deps", + "license_info": "", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "signing_job_arn": "", + "signing_profile_version_arn": "", + "skip_destroy": false, + "source_code_hash": "", + "source_code_size": 3470735, + "version": "2" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_permission", + "name": "api_lambda_permission", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "action": "lambda:InvokeFunction", + "event_source_token": null, + "function_name": "standout-redirect-prod", + "function_url_auth_type": null, + "id": "AllowExecutionFromAPIGateway", + "principal": "apigateway.amazonaws.com", + "principal_org_id": null, + "qualifier": "", + "source_account": null, + "source_arn": "arn:aws:execute-api:eu-central-1:654654203111:2kvqe64ca1/*/*", + "statement_id": "AllowExecutionFromAPIGateway", + "statement_id_prefix": "" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_redirect", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_permission", + "name": "lambda_config_s3_trigger_allow", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "action": "lambda:InvokeFunction", + "event_source_token": null, + "function_name": "arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod", + "function_url_auth_type": null, + "id": "AllowExecutionFromS3Bucket", + "principal": "s3.amazonaws.com", + "principal_org_id": null, + "qualifier": "", + "source_account": null, + "source_arn": "arn:aws:s3:::standout-data-prod", + "statement_id": "AllowExecutionFromS3Bucket", + "statement_id_prefix": "" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_stage.api_standout_lambda_stage", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_config", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket", + "name": "s3_standout", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "acceleration_status": "", + "acl": null, + "arn": "arn:aws:s3:::standout-data-prod", + "bucket": "standout-data-prod", + "bucket_domain_name": "standout-data-prod.s3.amazonaws.com", + "bucket_prefix": "", + "bucket_regional_domain_name": "standout-data-prod.s3.eu-central-1.amazonaws.com", + "cors_rule": [], + "force_destroy": true, + "grant": [ + { + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802", + "permissions": [ + "FULL_CONTROL" + ], + "type": "CanonicalUser", + "uri": "" + } + ], + "hosted_zone_id": "Z21DNDUVLTQW6Q", + "id": "standout-data-prod", + "lifecycle_rule": [], + "logging": [], + "object_lock_configuration": [], + "object_lock_enabled": false, + "policy": "", + "region": "eu-central-1", + "replication_configuration": [], + "request_payer": "BucketOwner", + "server_side_encryption_configuration": [ + { + "rule": [ + { + "apply_server_side_encryption_by_default": [ + { + "kms_master_key_id": "", + "sse_algorithm": "AES256" + } + ], + "bucket_key_enabled": false + } + ] + } + ], + "tags": {}, + "tags_all": {}, + "timeouts": null, + "versioning": [ + { + "enabled": false, + "mfa_delete": false + } + ], + "website": [], + "website_domain": null, + "website_endpoint": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInJlYWQiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket", + "name": "s3_standout_config", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "acceleration_status": "", + "acl": null, + "arn": "arn:aws:s3:::standout-config-prod", + "bucket": "standout-config-prod", + "bucket_domain_name": "standout-config-prod.s3.amazonaws.com", + "bucket_prefix": "", + "bucket_regional_domain_name": "standout-config-prod.s3.eu-central-1.amazonaws.com", + "cors_rule": [], + "force_destroy": false, + "grant": [ + { + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802", + "permissions": [ + "FULL_CONTROL" + ], + "type": "CanonicalUser", + "uri": "" + } + ], + "hosted_zone_id": "Z21DNDUVLTQW6Q", + "id": "standout-config-prod", + "lifecycle_rule": [], + "logging": [], + "object_lock_configuration": [], + "object_lock_enabled": false, + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-config-prod/*\"}],\"Version\":\"2012-10-17\"}", + "region": "eu-central-1", + "replication_configuration": [], + "request_payer": "BucketOwner", + "server_side_encryption_configuration": [ + { + "rule": [ + { + "apply_server_side_encryption_by_default": [ + { + "kms_master_key_id": "", + "sse_algorithm": "AES256" + } + ], + "bucket_key_enabled": false + } + ] + } + ], + "tags": {}, + "tags_all": {}, + "timeouts": null, + "versioning": [ + { + "enabled": false, + "mfa_delete": false + } + ], + "website": [], + "website_domain": null, + "website_endpoint": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInJlYWQiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_acl", + "name": "s3_standout_public_acl", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "access_control_policy": [ + { + "grant": [ + { + "grantee": [ + { + "display_name": "", + "email_address": "", + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802", + "type": "CanonicalUser", + "uri": "" + } + ], + "permission": "FULL_CONTROL" + } + ], + "owner": [ + { + "display_name": "", + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802" + } + ] + } + ], + "acl": "public-read", + "bucket": "standout-data-prod", + "expected_bucket_owner": "", + "id": "standout-data-prod,public-read" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout", + "aws_s3_bucket_ownership_controls.s3_standout_ownership", + "aws_s3_bucket_public_access_block.s3_standout_public_access" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_notification", + "name": "bucket_notification", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-data-prod", + "eventbridge": false, + "id": "standout-data-prod", + "lambda_function": [ + { + "events": [ + "s3:ObjectCreated:*", + "s3:ObjectRemoved:*" + ], + "filter_prefix": "", + "filter_suffix": "", + "id": "tf-s3-lambda-20240525123414441100000001", + "lambda_function_arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod" + } + ], + "queue": [], + "topic": [] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_stage.api_standout_lambda_stage", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_config", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_ownership_controls", + "name": "s3_standout_config_ownership", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-config-prod", + "id": "standout-config-prod", + "rule": [ + { + "object_ownership": "BucketOwnerPreferred" + } + ] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout_config" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_ownership_controls", + "name": "s3_standout_ownership", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-data-prod", + "id": "standout-data-prod", + "rule": [ + { + "object_ownership": "BucketOwnerPreferred" + } + ] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_policy", + "name": "s3_standout_config_policy", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-config-prod", + "id": "standout-config-prod", + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-config-prod/*\"}],\"Version\":\"2012-10-17\"}" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout_config", + "data.aws_iam_policy_document.s3_standout_config_allow_lambda" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_policy", + "name": "s3_standout_policy", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-data-prod", + "id": "standout-data-prod", + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-data-prod/*\"}],\"Version\":\"2012-10-17\"}" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout", + "data.aws_iam_policy_document.s3_standout_allow_lambda" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_public_access_block", + "name": "s3_standout_config_public_access", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "block_public_acls": false, + "block_public_policy": false, + "bucket": "standout-config-prod", + "id": "standout-config-prod", + "ignore_public_acls": true, + "restrict_public_buckets": true + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout_config" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_public_access_block", + "name": "s3_standout_public_access", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "block_public_acls": false, + "block_public_policy": false, + "bucket": "standout-data-prod", + "id": "standout-data-prod", + "ignore_public_acls": true, + "restrict_public_buckets": true + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_vpc", + "name": "vpc_standout", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "arn": "arn:aws:ec2:eu-central-1:654654203111:vpc/vpc-0c76f662122e14900", + "assign_generated_ipv6_cidr_block": false, + "cidr_block": "10.10.0.0/16", + "default_network_acl_id": "acl-006d8ca334439dfb4", + "default_route_table_id": "rtb-0af448a1cbae5f0bc", + "default_security_group_id": "sg-00435589d7f47e516", + "dhcp_options_id": "dopt-04a6953777f159bfd", + "enable_dns_hostnames": false, + "enable_dns_support": true, + "enable_network_address_usage_metrics": false, + "id": "vpc-0c76f662122e14900", + "instance_tenancy": "default", + "ipv4_ipam_pool_id": null, + "ipv4_netmask_length": null, + "ipv6_association_id": "", + "ipv6_cidr_block": "", + "ipv6_cidr_block_network_border_group": "", + "ipv6_ipam_pool_id": "", + "ipv6_netmask_length": 0, + "main_route_table_id": "rtb-0af448a1cbae5f0bc", + "owner_id": "654654203111", + "tags": {}, + "tags_all": {} + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + } + ], + "check_results": null +} diff --git a/terraform.tfstate.d/prod/terraform.tfstate.backup b/terraform.tfstate.d/prod/terraform.tfstate.backup new file mode 100644 index 0000000..49bc6e1 --- /dev/null +++ b/terraform.tfstate.d/prod/terraform.tfstate.backup @@ -0,0 +1,1139 @@ +{ + "version": 4, + "terraform_version": "1.8.3", + "serial": 32, + "lineage": "bfb14822-28e1-8bec-1200-85cd7662a2f9", + "outputs": {}, + "resources": [ + { + "mode": "data", + "type": "archive_file", + "name": "lambda_layer_deps", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "f2e1b4a2359b092eb66a365d0e17bd4d7ef2c174", + "output_base64sha256": "hQZ4vVgzztN2Bn+hTHGKDTA5kp9HbrZQmunevgsPhAY=", + "output_base64sha512": "PUsXQzofQAKQshK6yW9WuQRbTUbjdNjA+VBVJBTNgHr4lBhe4ZelmAnlisiQVM6uY36RD9CNRLD7aT/V8YVY5Q==", + "output_file_mode": null, + "output_md5": "f4f31334a8bc343ab1b8848f5fb96e9d", + "output_path": "./lambda_zip/lambda_layer-prod.zip", + "output_sha": "f2e1b4a2359b092eb66a365d0e17bd4d7ef2c174", + "output_sha256": "850678bd5833ced376067fa14c718a0d3039929f476eb6509ae9debe0b0f8406", + "output_sha512": "3d4b17433a1f400290b212bac96f56b9045b4d46e374d8c0f950552414cd807af894185ee197a59809e58ac89054ceae637e910fd08d44b0fb693fd5f18558e5", + "output_size": 3470735, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_layer", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "archive_file", + "name": "lambda_standout_code", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "bf96d8f34aad3a86e985be53a3a6682d62164e73", + "output_base64sha256": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "output_base64sha512": "R+OeVTikvIPAsYIjKtRdZdFCZQWLp/PUtIvpTIwc726mIuccBlur53ethzlJezoXubQmtF9CEiUdjzsrfb3/pQ==", + "output_file_mode": null, + "output_md5": "6971a02ee30cd8591ded93920a6b994a", + "output_path": "./lambda_zip/standout_lambda_redirect-prod.zip", + "output_sha": "bf96d8f34aad3a86e985be53a3a6682d62164e73", + "output_sha256": "9a41356c2426097b20764a495f5cac7086c034b626716953c802f37f1d81a9b2", + "output_sha512": "47e39e5538a4bc83c0b182232ad45d65d14265058ba7f3d4b48be94c8c1cef6ea622e71c065babe777ad8739497b3a17b9b426b45f4212251d8f3b2b7dbdffa5", + "output_size": 51368, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_redirect", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "archive_file", + "name": "lambda_standout_config_code", + "provider": "provider[\"registry.terraform.io/hashicorp/archive\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "exclude_symlink_directories": null, + "excludes": null, + "id": "a401470a001300338fa7d09cdffe3f16277971d8", + "output_base64sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=", + "output_base64sha512": "oUyZrUKNQPvZt3crReW69Vapq3IGvHD5hk617XXamv8G99f62CoJO1lsd07gaVlf5ln2EyPj+cQleaXg5w3JCg==", + "output_file_mode": null, + "output_md5": "e97ce8be22567986c9fcff5165b4afdb", + "output_path": "./lambda_zip/standout_lambda_config-prod.zip", + "output_sha": "a401470a001300338fa7d09cdffe3f16277971d8", + "output_sha256": "edca42403d4b7fa403c123e4fde7426bc5c3651794bbbad186109a827a280227", + "output_sha512": "a14c99ad428d40fbd9b7772b45e5baf556a9ab7206bc70f9864eb5ed75da9aff06f7d7fad82a093b596c774ee069595fe659f61323e3f9c42579a5e0e70dc90a", + "output_size": 4639, + "source": [], + "source_content": null, + "source_content_filename": null, + "source_dir": "./lambda_config", + "source_file": null, + "type": "zip" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "aws_iam_policy_document", + "name": "lambda_role", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "2690255455", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": \"sts:AssumeRole\",\n \"Principal\": {\n \"Service\": \"lambda.amazonaws.com\"\n }\n }\n ]\n}", + "minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":\"sts:AssumeRole\",\"Principal\":{\"Service\":\"lambda.amazonaws.com\"}}]}", + "override_json": null, + "override_policy_documents": null, + "policy_id": null, + "source_json": null, + "source_policy_documents": null, + "statement": [ + { + "actions": [ + "sts:AssumeRole" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "lambda.amazonaws.com" + ], + "type": "Service" + } + ], + "resources": [], + "sid": "" + } + ], + "version": "2012-10-17" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "aws_iam_policy_document", + "name": "s3_standout_allow_lambda", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "3177051619", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:Put*\",\n \"s3:List*\",\n \"s3:Get*\"\n ],\n \"Resource\": \"arn:aws:s3:::standout-data-prod/*\",\n \"Principal\": {\n \"AWS\": \"*\"\n }\n }\n ]\n}", + "minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Resource\":\"arn:aws:s3:::standout-data-prod/*\",\"Principal\":{\"AWS\":\"*\"}}]}", + "override_json": null, + "override_policy_documents": null, + "policy_id": null, + "source_json": null, + "source_policy_documents": null, + "statement": [ + { + "actions": [ + "s3:Get*", + "s3:List*", + "s3:Put*" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "*" + ], + "type": "AWS" + } + ], + "resources": [ + "arn:aws:s3:::standout-data-prod/*" + ], + "sid": "" + } + ], + "version": "2012-10-17" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "data", + "type": "aws_iam_policy_document", + "name": "s3_standout_config_allow_lambda", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "id": "738342612", + "json": "{\n \"Version\": \"2012-10-17\",\n \"Statement\": [\n {\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:Put*\",\n \"s3:List*\",\n \"s3:Get*\"\n ],\n \"Resource\": \"arn:aws:s3:::standout-config-prod/*\",\n \"Principal\": {\n \"AWS\": \"*\"\n }\n }\n ]\n}", + "minified_json": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Resource\":\"arn:aws:s3:::standout-config-prod/*\",\"Principal\":{\"AWS\":\"*\"}}]}", + "override_json": null, + "override_policy_documents": null, + "policy_id": null, + "source_json": null, + "source_policy_documents": null, + "statement": [ + { + "actions": [ + "s3:Get*", + "s3:List*", + "s3:Put*" + ], + "condition": [], + "effect": "Allow", + "not_actions": [], + "not_principals": [], + "not_resources": [], + "principals": [ + { + "identifiers": [ + "*" + ], + "type": "AWS" + } + ], + "resources": [ + "arn:aws:s3:::standout-config-prod/*" + ], + "sid": "" + } + ], + "version": "2012-10-17" + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_api", + "name": "api_standout_gateway", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_endpoint": "https://2kvqe64ca1.execute-api.eu-central-1.amazonaws.com", + "api_key_selection_expression": "$request.header.x-api-key", + "arn": "arn:aws:apigateway:eu-central-1::/apis/2kvqe64ca1", + "body": null, + "cors_configuration": [], + "credentials_arn": null, + "description": "", + "disable_execute_api_endpoint": false, + "execution_arn": "arn:aws:execute-api:eu-central-1:654654203111:2kvqe64ca1", + "fail_on_warnings": null, + "id": "2kvqe64ca1", + "name": "standout-api-prod", + "protocol_type": "HTTP", + "route_key": null, + "route_selection_expression": "$request.method $request.path", + "tags": null, + "tags_all": {}, + "target": null, + "version": "" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_integration", + "name": "api_standout_integration", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_id": "2kvqe64ca1", + "connection_id": "", + "connection_type": "INTERNET", + "content_handling_strategy": "", + "credentials_arn": "", + "description": "Lambda example", + "id": "shduzq4", + "integration_method": "POST", + "integration_response_selection_expression": "", + "integration_subtype": "", + "integration_type": "AWS_PROXY", + "integration_uri": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod/invocations", + "passthrough_behavior": "", + "payload_format_version": "1.0", + "request_parameters": null, + "request_templates": null, + "response_parameters": [], + "template_selection_expression": "", + "timeout_milliseconds": 30000, + "tls_config": [] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_redirect", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_route", + "name": "api_standout_route", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "api_id": "2kvqe64ca1", + "api_key_required": false, + "authorization_scopes": null, + "authorization_type": "NONE", + "authorizer_id": "", + "id": "xsd9e7k", + "model_selection_expression": "", + "operation_name": "", + "request_models": null, + "request_parameter": [], + "route_key": "GET /api", + "route_response_selection_expression": "", + "target": "integrations/shduzq4" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_integration.api_standout_integration", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_redirect", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_apigatewayv2_stage", + "name": "api_standout_lambda_stage", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "access_log_settings": [], + "api_id": "2kvqe64ca1", + "arn": "arn:aws:apigateway:eu-central-1::/apis/2kvqe64ca1/stages/prod", + "auto_deploy": true, + "client_certificate_id": "", + "default_route_settings": [ + { + "data_trace_enabled": false, + "detailed_metrics_enabled": false, + "logging_level": "", + "throttling_burst_limit": 0, + "throttling_rate_limit": 0 + } + ], + "deployment_id": "", + "description": "", + "execution_arn": "arn:aws:execute-api:eu-central-1:654654203111:2kvqe64ca1/prod", + "id": "prod", + "invoke_url": "https://2kvqe64ca1.execute-api.eu-central-1.amazonaws.com/prod", + "name": "prod", + "route_settings": [], + "stage_variables": null, + "tags": null, + "tags_all": {} + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_iam_role", + "name": "iam_for_lambda", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:iam::654654203111:role/iam_for_lambda-prod", + "assume_role_policy": "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"lambda.amazonaws.com\"}}],\"Version\":\"2012-10-17\"}", + "create_date": "2024-05-25T12:33:48Z", + "description": "", + "force_detach_policies": false, + "id": "iam_for_lambda-prod", + "inline_policy": [], + "managed_policy_arns": [], + "max_session_duration": 3600, + "name": "iam_for_lambda-prod", + "name_prefix": "", + "path": "/", + "permissions_boundary": "", + "tags": null, + "tags_all": {}, + "unique_id": "AROAZQ3DOMTTRSXZ5VXRN" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_function", + "name": "lambda_standout_config", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "architectures": [ + "x86_64" + ], + "arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod", + "code_sha256": "7cpCQD1Lf6QDwSPk/edCa8XDZReUu7rRhhCagnooAic=", + "code_signing_config_arn": "", + "dead_letter_config": [], + "description": "", + "environment": [ + { + "variables": { + "BUCKET_CONFIG": "standout-config-prod", + "BUCKET_DATA": "standout-data-prod", + "FUNCTION_URL": "https://2kvqe64ca1.execute-api.eu-central-1.amazonaws.com/prod" + } + } + ], + "ephemeral_storage": [ + { + "size": 512 + } + ], + "file_system_config": [], + "filename": "./lambda_zip/standout_lambda_config-prod.zip", + "function_name": "standout-config-prod", + "handler": "lambda_config.lambda_handler", + "id": "standout-config-prod", + "image_config": [], + "image_uri": "", + "invoke_arn": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod/invocations", + "kms_key_arn": "", + "last_modified": "2024-05-25T12:34:06.568+0000", + "layers": [ + "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2" + ], + "logging_config": [ + { + "application_log_level": "", + "log_format": "Text", + "log_group": "/aws/lambda/standout-config-prod", + "system_log_level": "" + } + ], + "memory_size": 128, + "package_type": "Zip", + "publish": false, + "qualified_arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod:$LATEST", + "qualified_invoke_arn": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod:$LATEST/invocations", + "replace_security_groups_on_destroy": null, + "replacement_security_group_ids": null, + "reserved_concurrent_executions": -1, + "role": "arn:aws:iam::654654203111:role/iam_for_lambda-prod", + "runtime": "python3.12", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "signing_job_arn": "", + "signing_profile_version_arn": "", + "skip_destroy": false, + "snap_start": [], + "source_code_hash": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "source_code_size": 4639, + "tags": null, + "tags_all": {}, + "timeout": 10, + "timeouts": null, + "tracing_config": [ + { + "mode": "PassThrough" + } + ], + "version": "$LATEST", + "vpc_config": [] + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_stage.api_standout_lambda_stage", + "aws_iam_role.iam_for_lambda", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_function", + "name": "lambda_standout_redirect", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "architectures": [ + "x86_64" + ], + "arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod", + "code_sha256": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "code_signing_config_arn": "", + "dead_letter_config": [], + "description": "", + "environment": [ + { + "variables": { + "BUCKET_CONFIG": "standout-config-prod", + "BUCKET_DATA": "standout-data-prod" + } + } + ], + "ephemeral_storage": [ + { + "size": 512 + } + ], + "file_system_config": [], + "filename": "./lambda_zip/standout_lambda_redirect-prod.zip", + "function_name": "standout-redirect-prod", + "handler": "lambda_redirect.lambda_handler", + "id": "standout-redirect-prod", + "image_config": [], + "image_uri": "", + "invoke_arn": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod/invocations", + "kms_key_arn": "", + "last_modified": "2024-05-25T12:33:56.589+0000", + "layers": [ + "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2" + ], + "logging_config": [ + { + "application_log_level": "", + "log_format": "Text", + "log_group": "/aws/lambda/standout-redirect-prod", + "system_log_level": "" + } + ], + "memory_size": 128, + "package_type": "Zip", + "publish": false, + "qualified_arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod:$LATEST", + "qualified_invoke_arn": "arn:aws:apigateway:eu-central-1:lambda:path/2015-03-31/functions/arn:aws:lambda:eu-central-1:654654203111:function:standout-redirect-prod:$LATEST/invocations", + "replace_security_groups_on_destroy": null, + "replacement_security_group_ids": null, + "reserved_concurrent_executions": -1, + "role": "arn:aws:iam::654654203111:role/iam_for_lambda-prod", + "runtime": "python3.12", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "signing_job_arn": "", + "signing_profile_version_arn": "", + "skip_destroy": false, + "snap_start": [], + "source_code_hash": "mkE1bCQmCXsgdkpJX1yscIbANLYmcWlTyALzfx2BqbI=", + "source_code_size": 51368, + "tags": null, + "tags_all": {}, + "timeout": 10, + "timeouts": null, + "tracing_config": [ + { + "mode": "PassThrough" + } + ], + "version": "$LATEST", + "vpc_config": [] + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsImRlbGV0ZSI6NjAwMDAwMDAwMDAwLCJ1cGRhdGUiOjYwMDAwMDAwMDAwMH19", + "dependencies": [ + "aws_iam_role.iam_for_lambda", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_layer_version", + "name": "lambda_layer", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "arn": "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2", + "code_sha256": "hQZ4vVgzztN2Bn+hTHGKDTA5kp9HbrZQmunevgsPhAY=", + "compatible_architectures": null, + "compatible_runtimes": [ + "python3.12" + ], + "created_date": "2024-05-25T12:33:52.492+0000", + "description": "", + "filename": "./lambda_zip/lambda_layer-prod.zip", + "id": "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps:2", + "layer_arn": "arn:aws:lambda:eu-central-1:654654203111:layer:lambda_deps", + "layer_name": "lambda_deps", + "license_info": "", + "s3_bucket": null, + "s3_key": null, + "s3_object_version": null, + "signing_job_arn": "", + "signing_profile_version_arn": "", + "skip_destroy": false, + "source_code_hash": "", + "source_code_size": 3470735, + "version": "2" + }, + "sensitive_attributes": [], + "private": "bnVsbA==" + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_permission", + "name": "api_lambda_permission", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "action": "lambda:InvokeFunction", + "event_source_token": null, + "function_name": "standout-redirect-prod", + "function_url_auth_type": null, + "id": "AllowExecutionFromAPIGateway", + "principal": "apigateway.amazonaws.com", + "principal_org_id": null, + "qualifier": "", + "source_account": null, + "source_arn": "arn:aws:execute-api:eu-central-1:654654203111:2kvqe64ca1/*/*", + "statement_id": "AllowExecutionFromAPIGateway", + "statement_id_prefix": "" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_redirect", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_lambda_permission", + "name": "lambda_config_s3_trigger_allow", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "action": "lambda:InvokeFunction", + "event_source_token": null, + "function_name": "arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod", + "function_url_auth_type": null, + "id": "AllowExecutionFromS3Bucket", + "principal": "s3.amazonaws.com", + "principal_org_id": null, + "qualifier": "", + "source_account": null, + "source_arn": "arn:aws:s3:::standout-data-prod", + "statement_id": "AllowExecutionFromS3Bucket", + "statement_id_prefix": "" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_stage.api_standout_lambda_stage", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_config", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket", + "name": "s3_standout", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "acceleration_status": "", + "acl": null, + "arn": "arn:aws:s3:::standout-data-prod", + "bucket": "standout-data-prod", + "bucket_domain_name": "standout-data-prod.s3.amazonaws.com", + "bucket_prefix": "", + "bucket_regional_domain_name": "standout-data-prod.s3.eu-central-1.amazonaws.com", + "cors_rule": [], + "force_destroy": true, + "grant": [ + { + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802", + "permissions": [ + "FULL_CONTROL" + ], + "type": "CanonicalUser", + "uri": "" + } + ], + "hosted_zone_id": "Z21DNDUVLTQW6Q", + "id": "standout-data-prod", + "lifecycle_rule": [], + "logging": [], + "object_lock_configuration": [], + "object_lock_enabled": false, + "policy": "", + "region": "eu-central-1", + "replication_configuration": [], + "request_payer": "BucketOwner", + "server_side_encryption_configuration": [ + { + "rule": [ + { + "apply_server_side_encryption_by_default": [ + { + "kms_master_key_id": "", + "sse_algorithm": "AES256" + } + ], + "bucket_key_enabled": false + } + ] + } + ], + "tags": null, + "tags_all": {}, + "timeouts": null, + "versioning": [ + { + "enabled": false, + "mfa_delete": false + } + ], + "website": [], + "website_domain": null, + "website_endpoint": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInJlYWQiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket", + "name": "s3_standout_config", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "acceleration_status": "", + "acl": null, + "arn": "arn:aws:s3:::standout-config-prod", + "bucket": "standout-config-prod", + "bucket_domain_name": "standout-config-prod.s3.amazonaws.com", + "bucket_prefix": "", + "bucket_regional_domain_name": "standout-config-prod.s3.eu-central-1.amazonaws.com", + "cors_rule": [], + "force_destroy": false, + "grant": [ + { + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802", + "permissions": [ + "FULL_CONTROL" + ], + "type": "CanonicalUser", + "uri": "" + } + ], + "hosted_zone_id": "Z21DNDUVLTQW6Q", + "id": "standout-config-prod", + "lifecycle_rule": [], + "logging": [], + "object_lock_configuration": [], + "object_lock_enabled": false, + "policy": "", + "region": "eu-central-1", + "replication_configuration": [], + "request_payer": "BucketOwner", + "server_side_encryption_configuration": [ + { + "rule": [ + { + "apply_server_side_encryption_by_default": [ + { + "kms_master_key_id": "", + "sse_algorithm": "AES256" + } + ], + "bucket_key_enabled": false + } + ] + } + ], + "tags": null, + "tags_all": {}, + "timeouts": null, + "versioning": [ + { + "enabled": false, + "mfa_delete": false + } + ], + "website": [], + "website_domain": null, + "website_endpoint": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjM2MDAwMDAwMDAwMDAsInJlYWQiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_acl", + "name": "s3_standout_public_acl", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "access_control_policy": [ + { + "grant": [ + { + "grantee": [ + { + "display_name": "", + "email_address": "", + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802", + "type": "CanonicalUser", + "uri": "" + } + ], + "permission": "FULL_CONTROL" + } + ], + "owner": [ + { + "display_name": "", + "id": "e390796e7f2278ad899eab76ebe355965ffe543f3a8f2f6b08179216bbedf802" + } + ] + } + ], + "acl": "public-read", + "bucket": "standout-data-prod", + "expected_bucket_owner": "", + "id": "standout-data-prod,public-read" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout", + "aws_s3_bucket_ownership_controls.s3_standout_ownership", + "aws_s3_bucket_public_access_block.s3_standout_public_access" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_notification", + "name": "bucket_notification", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-data-prod", + "eventbridge": false, + "id": "standout-data-prod", + "lambda_function": [ + { + "events": [ + "s3:ObjectCreated:*", + "s3:ObjectRemoved:*" + ], + "filter_prefix": "", + "filter_suffix": "", + "id": "tf-s3-lambda-20240525123414441100000001", + "lambda_function_arn": "arn:aws:lambda:eu-central-1:654654203111:function:standout-config-prod" + } + ], + "queue": [], + "topic": [] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_apigatewayv2_api.api_standout_gateway", + "aws_apigatewayv2_stage.api_standout_lambda_stage", + "aws_iam_role.iam_for_lambda", + "aws_lambda_function.lambda_standout_config", + "aws_lambda_layer_version.lambda_layer", + "aws_s3_bucket.s3_standout", + "aws_s3_bucket.s3_standout_config", + "data.archive_file.lambda_standout_code", + "data.aws_iam_policy_document.lambda_role" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_ownership_controls", + "name": "s3_standout_config_ownership", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-config-prod", + "id": "standout-config-prod", + "rule": [ + { + "object_ownership": "BucketOwnerPreferred" + } + ] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout_config" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_ownership_controls", + "name": "s3_standout_ownership", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-data-prod", + "id": "standout-data-prod", + "rule": [ + { + "object_ownership": "BucketOwnerPreferred" + } + ] + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_policy", + "name": "s3_standout_config_policy", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "bucket": "standout-config-prod", + "id": "standout-config-prod", + "policy": "{\"Statement\":[{\"Action\":[\"s3:Put*\",\"s3:List*\",\"s3:Get*\"],\"Effect\":\"Allow\",\"Principal\":{\"AWS\":\"*\"},\"Resource\":\"arn:aws:s3:::standout-config-prod/*\"}],\"Version\":\"2012-10-17\"}" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout_config", + "data.aws_iam_policy_document.s3_standout_config_allow_lambda" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_public_access_block", + "name": "s3_standout_config_public_access", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "block_public_acls": false, + "block_public_policy": false, + "bucket": "standout-config-prod", + "id": "standout-config-prod", + "ignore_public_acls": true, + "restrict_public_buckets": true + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout_config" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_s3_bucket_public_access_block", + "name": "s3_standout_public_access", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "block_public_acls": false, + "block_public_policy": false, + "bucket": "standout-data-prod", + "id": "standout-data-prod", + "ignore_public_acls": true, + "restrict_public_buckets": true + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "aws_s3_bucket.s3_standout" + ] + } + ] + }, + { + "mode": "managed", + "type": "aws_vpc", + "name": "vpc_standout", + "provider": "provider[\"registry.terraform.io/hashicorp/aws\"]", + "instances": [ + { + "schema_version": 1, + "attributes": { + "arn": "arn:aws:ec2:eu-central-1:654654203111:vpc/vpc-0c76f662122e14900", + "assign_generated_ipv6_cidr_block": false, + "cidr_block": "10.10.0.0/16", + "default_network_acl_id": "acl-006d8ca334439dfb4", + "default_route_table_id": "rtb-0af448a1cbae5f0bc", + "default_security_group_id": "sg-00435589d7f47e516", + "dhcp_options_id": "dopt-04a6953777f159bfd", + "enable_dns_hostnames": false, + "enable_dns_support": true, + "enable_network_address_usage_metrics": false, + "id": "vpc-0c76f662122e14900", + "instance_tenancy": "default", + "ipv4_ipam_pool_id": null, + "ipv4_netmask_length": null, + "ipv6_association_id": "", + "ipv6_cidr_block": "", + "ipv6_cidr_block_network_border_group": "", + "ipv6_ipam_pool_id": "", + "ipv6_netmask_length": 0, + "main_route_table_id": "rtb-0af448a1cbae5f0bc", + "owner_id": "654654203111", + "tags": null, + "tags_all": {} + }, + "sensitive_attributes": [], + "private": "eyJzY2hlbWFfdmVyc2lvbiI6IjEifQ==" + } + ] + } + ], + "check_results": null +} diff --git a/variable.tf b/variable.tf new file mode 100644 index 0000000..748b013 --- /dev/null +++ b/variable.tf @@ -0,0 +1,9 @@ +variable "region" { + type = string + default = "eu-west-1" +} + +variable "env" { + type = string + default = "dev" +}