From 6257362ac21c63411f03d282d6d76fa88ee3cdf8 Mon Sep 17 00:00:00 2001 From: johnpccd Date: Sat, 24 May 2025 17:36:59 +0200 Subject: [PATCH] cp --- deployment/deploy.sh | 37 +- .../terraform/scripts/install_qdrant.sh | 2 +- deployment/terraform/terraform.tfstate | 368 +----------------- deployment/terraform/terraform.tfstate.backup | 368 +++++++++++++++++- 4 files changed, 405 insertions(+), 370 deletions(-) diff --git a/deployment/deploy.sh b/deployment/deploy.sh index 51b3a49..324700d 100644 --- a/deployment/deploy.sh +++ b/deployment/deploy.sh @@ -14,7 +14,8 @@ function show_help { echo " --provision Run Terraform to provision cloud resources" echo " --build Build and push Docker image" echo " --deploy Deploy to Cloud Run" - echo " --all Do all of the above" + echo " --destroy Destroy cloud resources with Terraform" + echo " --all Do all of the above (except destroy)" echo " --help Show this help message" exit 0 } @@ -28,6 +29,7 @@ fi PROVISION=false BUILD=false DEPLOY=false +DESTROY=false while [[ $# -gt 0 ]]; do case "$1" in @@ -43,6 +45,10 @@ while [[ $# -gt 0 ]]; do DEPLOY=true shift ;; + --destroy) + DESTROY=true + shift + ;; --all) PROVISION=true BUILD=true @@ -68,6 +74,35 @@ fi echo "Using Google Cloud project: $PROJECT_ID" echo "===================================" +# Destroy resources with Terraform +if [ "$DESTROY" = true ]; then + echo "WARNING: This will destroy all cloud resources managed by Terraform!" + echo "This action cannot be undone." + read -p "Are you sure you want to continue? (yes/no): " confirm + + if [ "$confirm" != "yes" ]; then + echo "Destroy operation cancelled." + exit 0 + fi + + echo "Destroying cloud resources with Terraform..." + cd "$(dirname "$0")/terraform" + + # Check if terraform.tfvars exists + if [ ! -f terraform.tfvars ]; then + echo "ERROR: terraform.tfvars not found. Cannot proceed with destroy." + echo "Make sure you have provisioned resources first." + exit 1 + fi + + terraform init + terraform destroy -auto-approve + + cd - > /dev/null + echo "Resources destroyed successfully." + exit 0 +fi + # Provision resources with Terraform if [ "$PROVISION" = true ]; then echo "Provisioning cloud resources with Terraform..." diff --git a/deployment/terraform/scripts/install_qdrant.sh b/deployment/terraform/scripts/install_qdrant.sh index 9fa132c..dc94a02 100644 --- a/deployment/terraform/scripts/install_qdrant.sh +++ b/deployment/terraform/scripts/install_qdrant.sh @@ -99,7 +99,7 @@ apt-get install -y htop iotop nethogs # Create a simple health check script cat > /opt/qdrant/health_check.sh << 'EOF' #!/bin/bash -response=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:6333/health) +response=$(curl -s -o /dev/null -w "%%{http_code}" http://localhost:6333/health) if [ "$response" = "200" ]; then echo "Qdrant is healthy" exit 0 diff --git a/deployment/terraform/terraform.tfstate b/deployment/terraform/terraform.tfstate index 1349896..0919816 100644 --- a/deployment/terraform/terraform.tfstate +++ b/deployment/terraform/terraform.tfstate @@ -1,371 +1,9 @@ { "version": 4, "terraform_version": "1.10.1", - "serial": 41, + "serial": 53, "lineage": "a183cd95-f987-8698-c6dd-84e933c394a5", - "outputs": { - "container_registry_url": { - "value": "gcr.io/gen-lang-client-0424120530/sereact", - "type": "string" - }, - "pubsub_dlq_topic_name": { - "value": "image-processing-topic-dlq", - "type": "string" - }, - "pubsub_subscription_name": { - "value": "image-processing-topic-subscription", - "type": "string" - }, - "pubsub_topic_name": { - "value": "image-processing-topic", - "type": "string" - }, - "storage_bucket_name": { - "value": "sereact-storage-bucket", - "type": "string" - } - }, - "resources": [ - { - "mode": "data", - "type": "google_project", - "name": "current", - "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "auto_create_network": null, - "billing_account": "00CA97-62E5BD-4A62B5", - "deletion_policy": "PREVENT", - "effective_labels": { - "generative-language": "enabled" - }, - "folder_id": null, - "id": "projects/gen-lang-client-0424120530", - "labels": { - "generative-language": "enabled" - }, - "name": "Gemini API", - "number": "761163285547", - "org_id": null, - "project_id": "gen-lang-client-0424120530", - "tags": null, - "terraform_labels": { - "generative-language": "enabled" - } - }, - "sensitive_attributes": [] - } - ] - }, - { - "mode": "managed", - "type": "google_project_service", - "name": "services", - "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", - "instances": [ - { - "index_key": "cloudresourcemanager.googleapis.com", - "schema_version": 0, - "attributes": { - "disable_dependent_services": null, - "disable_on_destroy": false, - "id": "gen-lang-client-0424120530/cloudresourcemanager.googleapis.com", - "project": "gen-lang-client-0424120530", - "service": "cloudresourcemanager.googleapis.com", - "timeouts": null - }, - "sensitive_attributes": [], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" - }, - { - "index_key": "containerregistry.googleapis.com", - "schema_version": 0, - "attributes": { - "disable_dependent_services": null, - "disable_on_destroy": false, - "id": "gen-lang-client-0424120530/containerregistry.googleapis.com", - "project": "gen-lang-client-0424120530", - "service": "containerregistry.googleapis.com", - "timeouts": null - }, - "sensitive_attributes": [], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" - }, - { - "index_key": "firestore.googleapis.com", - "schema_version": 0, - "attributes": { - "disable_dependent_services": null, - "disable_on_destroy": false, - "id": "gen-lang-client-0424120530/firestore.googleapis.com", - "project": "gen-lang-client-0424120530", - "service": "firestore.googleapis.com", - "timeouts": null - }, - "sensitive_attributes": [], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" - }, - { - "index_key": "run.googleapis.com", - "schema_version": 0, - "attributes": { - "disable_dependent_services": null, - "disable_on_destroy": false, - "id": "gen-lang-client-0424120530/run.googleapis.com", - "project": "gen-lang-client-0424120530", - "service": "run.googleapis.com", - "timeouts": null - }, - "sensitive_attributes": [], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" - }, - { - "index_key": "storage.googleapis.com", - "schema_version": 0, - "attributes": { - "disable_dependent_services": null, - "disable_on_destroy": false, - "id": "gen-lang-client-0424120530/storage.googleapis.com", - "project": "gen-lang-client-0424120530", - "service": "storage.googleapis.com", - "timeouts": null - }, - "sensitive_attributes": [], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" - } - ] - }, - { - "mode": "managed", - "type": "google_pubsub_subscription", - "name": "image_processing_dlq", - "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "ack_deadline_seconds": 10, - "bigquery_config": [], - "cloud_storage_config": [], - "dead_letter_policy": [], - "effective_labels": { - "component": "image-processing-dlq", - "environment": "dev", - "goog-terraform-provisioned": "true", - "service": "sereact" - }, - "enable_exactly_once_delivery": false, - "enable_message_ordering": false, - "expiration_policy": [ - { - "ttl": "2678400s" - } - ], - "filter": "", - "id": "projects/gen-lang-client-0424120530/subscriptions/image-processing-topic-dlq-subscription", - "labels": { - "component": "image-processing-dlq", - "environment": "dev", - "service": "sereact" - }, - "message_retention_duration": "2592000s", - "name": "image-processing-topic-dlq-subscription", - "project": "gen-lang-client-0424120530", - "push_config": [], - "retain_acked_messages": true, - "retry_policy": [], - "terraform_labels": { - "component": "image-processing-dlq", - "environment": "dev", - "goog-terraform-provisioned": "true", - "service": "sereact" - }, - "timeouts": null, - "topic": "projects/gen-lang-client-0424120530/topics/image-processing-topic-dlq" - }, - "sensitive_attributes": [], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19", - "dependencies": [ - "google_pubsub_topic.image_processing_dlq" - ] - } - ] - }, - { - "mode": "managed", - "type": "google_pubsub_topic", - "name": "image_processing", - "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "effective_labels": { - "component": "image-processing", - "environment": "dev", - "goog-terraform-provisioned": "true", - "service": "sereact" - }, - "id": "projects/gen-lang-client-0424120530/topics/image-processing-topic", - "ingestion_data_source_settings": [], - "kms_key_name": "", - "labels": { - "component": "image-processing", - "environment": "dev", - "service": "sereact" - }, - "message_retention_duration": "", - "message_storage_policy": [], - "name": "image-processing-topic", - "project": "gen-lang-client-0424120530", - "schema_settings": [], - "terraform_labels": { - "component": "image-processing", - "environment": "dev", - "goog-terraform-provisioned": "true", - "service": "sereact" - }, - "timeouts": null - }, - "sensitive_attributes": [], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" - } - ] - }, - { - "mode": "managed", - "type": "google_pubsub_topic", - "name": "image_processing_dlq", - "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "effective_labels": { - "component": "image-processing-dlq", - "environment": "dev", - "goog-terraform-provisioned": "true", - "service": "sereact" - }, - "id": "projects/gen-lang-client-0424120530/topics/image-processing-topic-dlq", - "ingestion_data_source_settings": [], - "kms_key_name": "", - "labels": { - "component": "image-processing-dlq", - "environment": "dev", - "service": "sereact" - }, - "message_retention_duration": "", - "message_storage_policy": [], - "name": "image-processing-topic-dlq", - "project": "gen-lang-client-0424120530", - "schema_settings": [], - "terraform_labels": { - "component": "image-processing-dlq", - "environment": "dev", - "goog-terraform-provisioned": "true", - "service": "sereact" - }, - "timeouts": null - }, - "sensitive_attributes": [], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" - } - ] - }, - { - "mode": "managed", - "type": "google_pubsub_topic_iam_binding", - "name": "image_processing_publisher", - "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", - "instances": [ - { - "schema_version": 0, - "attributes": { - "condition": [], - "etag": "BwY14zaElfE=", - "id": "projects/gen-lang-client-0424120530/topics/image-processing-topic/roles/pubsub.publisher", - "members": [ - "serviceAccount:761163285547-compute@developer.gserviceaccount.com" - ], - "project": "gen-lang-client-0424120530", - "role": "roles/pubsub.publisher", - "topic": "projects/gen-lang-client-0424120530/topics/image-processing-topic" - }, - "sensitive_attributes": [], - "private": "bnVsbA==", - "dependencies": [ - "data.google_project.current", - "google_pubsub_topic.image_processing" - ] - } - ] - }, - { - "mode": "managed", - "type": "google_storage_bucket", - "name": "app_bucket", - "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", - "instances": [ - { - "schema_version": 3, - "attributes": { - "autoclass": [], - "cors": [], - "custom_placement_config": [], - "default_event_based_hold": false, - "effective_labels": { - "goog-terraform-provisioned": "true" - }, - "enable_object_retention": false, - "encryption": [], - "force_destroy": false, - "hierarchical_namespace": [ - { - "enabled": false - } - ], - "id": "sereact-storage-bucket", - "labels": null, - "lifecycle_rule": [], - "location": "US-CENTRAL1", - "logging": [], - "name": "sereact-storage-bucket", - "project": "gen-lang-client-0424120530", - "project_number": 761163285547, - "public_access_prevention": "inherited", - "requester_pays": false, - "retention_policy": [], - "rpo": null, - "self_link": "https://www.googleapis.com/storage/v1/b/sereact-storage-bucket", - "soft_delete_policy": [ - { - "effective_time": "2025-05-24T15:17:40.181Z", - "retention_duration_seconds": 604800 - } - ], - "storage_class": "STANDARD", - "terraform_labels": { - "goog-terraform-provisioned": "true" - }, - "time_created": "2025-05-24T15:17:40.181Z", - "timeouts": null, - "uniform_bucket_level_access": true, - "updated": "2025-05-24T15:17:40.181Z", - "url": "gs://sereact-storage-bucket", - "versioning": [], - "website": [] - }, - "sensitive_attributes": [], - "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsInJlYWQiOjI0MDAwMDAwMDAwMCwidXBkYXRlIjoyNDAwMDAwMDAwMDB9LCJzY2hlbWFfdmVyc2lvbiI6IjMifQ==", - "dependencies": [ - "google_project_service.services" - ] - } - ] - } - ], + "outputs": {}, + "resources": [], "check_results": null } diff --git a/deployment/terraform/terraform.tfstate.backup b/deployment/terraform/terraform.tfstate.backup index 84b0c9e..1349896 100644 --- a/deployment/terraform/terraform.tfstate.backup +++ b/deployment/terraform/terraform.tfstate.backup @@ -1,9 +1,371 @@ { "version": 4, "terraform_version": "1.10.1", - "serial": 28, + "serial": 41, "lineage": "a183cd95-f987-8698-c6dd-84e933c394a5", - "outputs": {}, - "resources": [], + "outputs": { + "container_registry_url": { + "value": "gcr.io/gen-lang-client-0424120530/sereact", + "type": "string" + }, + "pubsub_dlq_topic_name": { + "value": "image-processing-topic-dlq", + "type": "string" + }, + "pubsub_subscription_name": { + "value": "image-processing-topic-subscription", + "type": "string" + }, + "pubsub_topic_name": { + "value": "image-processing-topic", + "type": "string" + }, + "storage_bucket_name": { + "value": "sereact-storage-bucket", + "type": "string" + } + }, + "resources": [ + { + "mode": "data", + "type": "google_project", + "name": "current", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "auto_create_network": null, + "billing_account": "00CA97-62E5BD-4A62B5", + "deletion_policy": "PREVENT", + "effective_labels": { + "generative-language": "enabled" + }, + "folder_id": null, + "id": "projects/gen-lang-client-0424120530", + "labels": { + "generative-language": "enabled" + }, + "name": "Gemini API", + "number": "761163285547", + "org_id": null, + "project_id": "gen-lang-client-0424120530", + "tags": null, + "terraform_labels": { + "generative-language": "enabled" + } + }, + "sensitive_attributes": [] + } + ] + }, + { + "mode": "managed", + "type": "google_project_service", + "name": "services", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "index_key": "cloudresourcemanager.googleapis.com", + "schema_version": 0, + "attributes": { + "disable_dependent_services": null, + "disable_on_destroy": false, + "id": "gen-lang-client-0424120530/cloudresourcemanager.googleapis.com", + "project": "gen-lang-client-0424120530", + "service": "cloudresourcemanager.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "containerregistry.googleapis.com", + "schema_version": 0, + "attributes": { + "disable_dependent_services": null, + "disable_on_destroy": false, + "id": "gen-lang-client-0424120530/containerregistry.googleapis.com", + "project": "gen-lang-client-0424120530", + "service": "containerregistry.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "firestore.googleapis.com", + "schema_version": 0, + "attributes": { + "disable_dependent_services": null, + "disable_on_destroy": false, + "id": "gen-lang-client-0424120530/firestore.googleapis.com", + "project": "gen-lang-client-0424120530", + "service": "firestore.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "run.googleapis.com", + "schema_version": 0, + "attributes": { + "disable_dependent_services": null, + "disable_on_destroy": false, + "id": "gen-lang-client-0424120530/run.googleapis.com", + "project": "gen-lang-client-0424120530", + "service": "run.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + }, + { + "index_key": "storage.googleapis.com", + "schema_version": 0, + "attributes": { + "disable_dependent_services": null, + "disable_on_destroy": false, + "id": "gen-lang-client-0424120530/storage.googleapis.com", + "project": "gen-lang-client-0424120530", + "service": "storage.googleapis.com", + "timeouts": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInJlYWQiOjYwMDAwMDAwMDAwMCwidXBkYXRlIjoxMjAwMDAwMDAwMDAwfX0=" + } + ] + }, + { + "mode": "managed", + "type": "google_pubsub_subscription", + "name": "image_processing_dlq", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "ack_deadline_seconds": 10, + "bigquery_config": [], + "cloud_storage_config": [], + "dead_letter_policy": [], + "effective_labels": { + "component": "image-processing-dlq", + "environment": "dev", + "goog-terraform-provisioned": "true", + "service": "sereact" + }, + "enable_exactly_once_delivery": false, + "enable_message_ordering": false, + "expiration_policy": [ + { + "ttl": "2678400s" + } + ], + "filter": "", + "id": "projects/gen-lang-client-0424120530/subscriptions/image-processing-topic-dlq-subscription", + "labels": { + "component": "image-processing-dlq", + "environment": "dev", + "service": "sereact" + }, + "message_retention_duration": "2592000s", + "name": "image-processing-topic-dlq-subscription", + "project": "gen-lang-client-0424120530", + "push_config": [], + "retain_acked_messages": true, + "retry_policy": [], + "terraform_labels": { + "component": "image-processing-dlq", + "environment": "dev", + "goog-terraform-provisioned": "true", + "service": "sereact" + }, + "timeouts": null, + "topic": "projects/gen-lang-client-0424120530/topics/image-processing-topic-dlq" + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19", + "dependencies": [ + "google_pubsub_topic.image_processing_dlq" + ] + } + ] + }, + { + "mode": "managed", + "type": "google_pubsub_topic", + "name": "image_processing", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "effective_labels": { + "component": "image-processing", + "environment": "dev", + "goog-terraform-provisioned": "true", + "service": "sereact" + }, + "id": "projects/gen-lang-client-0424120530/topics/image-processing-topic", + "ingestion_data_source_settings": [], + "kms_key_name": "", + "labels": { + "component": "image-processing", + "environment": "dev", + "service": "sereact" + }, + "message_retention_duration": "", + "message_storage_policy": [], + "name": "image-processing-topic", + "project": "gen-lang-client-0424120530", + "schema_settings": [], + "terraform_labels": { + "component": "image-processing", + "environment": "dev", + "goog-terraform-provisioned": "true", + "service": "sereact" + }, + "timeouts": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "google_pubsub_topic", + "name": "image_processing_dlq", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "effective_labels": { + "component": "image-processing-dlq", + "environment": "dev", + "goog-terraform-provisioned": "true", + "service": "sereact" + }, + "id": "projects/gen-lang-client-0424120530/topics/image-processing-topic-dlq", + "ingestion_data_source_settings": [], + "kms_key_name": "", + "labels": { + "component": "image-processing-dlq", + "environment": "dev", + "service": "sereact" + }, + "message_retention_duration": "", + "message_storage_policy": [], + "name": "image-processing-topic-dlq", + "project": "gen-lang-client-0424120530", + "schema_settings": [], + "terraform_labels": { + "component": "image-processing-dlq", + "environment": "dev", + "goog-terraform-provisioned": "true", + "service": "sereact" + }, + "timeouts": null + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjoxMjAwMDAwMDAwMDAwLCJkZWxldGUiOjEyMDAwMDAwMDAwMDAsInVwZGF0ZSI6MTIwMDAwMDAwMDAwMH19" + } + ] + }, + { + "mode": "managed", + "type": "google_pubsub_topic_iam_binding", + "name": "image_processing_publisher", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 0, + "attributes": { + "condition": [], + "etag": "BwY14zaElfE=", + "id": "projects/gen-lang-client-0424120530/topics/image-processing-topic/roles/pubsub.publisher", + "members": [ + "serviceAccount:761163285547-compute@developer.gserviceaccount.com" + ], + "project": "gen-lang-client-0424120530", + "role": "roles/pubsub.publisher", + "topic": "projects/gen-lang-client-0424120530/topics/image-processing-topic" + }, + "sensitive_attributes": [], + "private": "bnVsbA==", + "dependencies": [ + "data.google_project.current", + "google_pubsub_topic.image_processing" + ] + } + ] + }, + { + "mode": "managed", + "type": "google_storage_bucket", + "name": "app_bucket", + "provider": "provider[\"registry.terraform.io/hashicorp/google\"]", + "instances": [ + { + "schema_version": 3, + "attributes": { + "autoclass": [], + "cors": [], + "custom_placement_config": [], + "default_event_based_hold": false, + "effective_labels": { + "goog-terraform-provisioned": "true" + }, + "enable_object_retention": false, + "encryption": [], + "force_destroy": false, + "hierarchical_namespace": [ + { + "enabled": false + } + ], + "id": "sereact-storage-bucket", + "labels": null, + "lifecycle_rule": [], + "location": "US-CENTRAL1", + "logging": [], + "name": "sereact-storage-bucket", + "project": "gen-lang-client-0424120530", + "project_number": 761163285547, + "public_access_prevention": "inherited", + "requester_pays": false, + "retention_policy": [], + "rpo": null, + "self_link": "https://www.googleapis.com/storage/v1/b/sereact-storage-bucket", + "soft_delete_policy": [ + { + "effective_time": "2025-05-24T15:17:40.181Z", + "retention_duration_seconds": 604800 + } + ], + "storage_class": "STANDARD", + "terraform_labels": { + "goog-terraform-provisioned": "true" + }, + "time_created": "2025-05-24T15:17:40.181Z", + "timeouts": null, + "uniform_bucket_level_access": true, + "updated": "2025-05-24T15:17:40.181Z", + "url": "gs://sereact-storage-bucket", + "versioning": [], + "website": [] + }, + "sensitive_attributes": [], + "private": "eyJlMmJmYjczMC1lY2FhLTExZTYtOGY4OC0zNDM2M2JjN2M0YzAiOnsiY3JlYXRlIjo2MDAwMDAwMDAwMDAsInJlYWQiOjI0MDAwMDAwMDAwMCwidXBkYXRlIjoyNDAwMDAwMDAwMDB9LCJzY2hlbWFfdmVyc2lvbiI6IjMifQ==", + "dependencies": [ + "google_project_service.services" + ] + } + ] + } + ], "check_results": null }