diff --git a/app/media/MyTerraform/modules/s3/main.tf b/app/media/MyTerraform/modules/s3/main.tf deleted file mode 100644 index b306982d..00000000 --- a/app/media/MyTerraform/modules/s3/main.tf +++ /dev/null @@ -1,16 +0,0 @@ - -resource "aws_s3_bucket" "s3_bucket" { - count = var.s3_create_bucket ? 1 : 0 - bucket = var.s3_bucket_name - force_destroy = var.s3_bucket_force_destroy - tags = var.s3_bucket_tags -} - -resource "aws_s3_bucket_versioning" "s3_bucket_versioning" { - count = var.s3_create_bucket && var.s3_create_bucket_versioning ? 1 : 0 - bucket = aws_s3_bucket.s3_bucket[0].id - - versioning_configuration { - status = var.s3_bucket_versioning_status - } -} diff --git a/app/media/MyTerraform/modules/s3/terraform.tfvars b/app/media/MyTerraform/modules/s3/terraform.tfvars deleted file mode 100644 index d44bcd9b..00000000 --- a/app/media/MyTerraform/modules/s3/terraform.tfvars +++ /dev/null @@ -1,10 +0,0 @@ - -s3_create_bucket = true -s3_bucket_name = "UniqueName" -s3_bucket_force_destroy = false -s3_bucket_tags = { - Name = "My bucket" - Environment = "Dev" -} -s3_create_bucket_versioning = false -s3_bucket_versioning_status = "Enabled" diff --git a/app/media/MyTerraform/modules/s3/variables.tf b/app/media/MyTerraform/modules/s3/variables.tf deleted file mode 100644 index 42231977..00000000 --- a/app/media/MyTerraform/modules/s3/variables.tf +++ /dev/null @@ -1,24 +0,0 @@ - -variable "s3_create_bucket" { - type = bool -} - -variable "s3_bucket_name" { - type = string -} - -variable "s3_bucket_force_destroy" { - type = bool -} - -variable "s3_bucket_tags" { - type = map(string) -} - -variable "s3_create_bucket_versioning" { - type = bool -} - -variable "s3_bucket_versioning_status" { - type = string -} diff --git a/app/media/MyTerraform/modules/s3/versions.tf b/app/media/MyTerraform/modules/s3/versions.tf deleted file mode 100644 index b19ec086..00000000 --- a/app/media/MyTerraform/modules/s3/versions.tf +++ /dev/null @@ -1,11 +0,0 @@ - -terraform { - required_version = ">= 1.0" - - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.20" - } - } -} diff --git a/app/models/terraform_models.py b/app/models/terraform_models.py index 2a4d896f..40094911 100644 --- a/app/models/terraform_models.py +++ b/app/models/terraform_models.py @@ -93,4 +93,25 @@ class ArgoApplication(BaseModel): class IaCTemplateGenerationArgoCD(BaseModel): argocd_application:ArgoApplication | None = None argocd_repository:bool = True - \ No newline at end of file + + +class IaCTemplateGenerationELB(BaseModel): + security_group:bool = True + lb_target_group:bool = True + lb:bool = True + lb_listener:bool = True + lb_listener_rule:bool = True + key_pair:bool = True + launch_configuration:bool = True + autoscaling_group:bool = True + autoscaling_attachment:bool = True + autoscaling_policy:bool = True + + + +class IaCTemplateGenerationEFS(BaseModel): + security_group:bool = True + efs_file_system:bool = True + efs_mount_target:bool = True + efs_backup_policy:bool = True + \ No newline at end of file diff --git a/app/routes/terraform.py b/app/routes/terraform.py index a71ee5e3..800e1da4 100644 --- a/app/routes/terraform.py +++ b/app/routes/terraform.py @@ -11,7 +11,9 @@ IaCTemplateGenerationEC2, IaCTemplateGenerationS3, IaCTemplateGenerationIAM, - IaCTemplateGenerationArgoCD + IaCTemplateGenerationArgoCD, + IaCTemplateGenerationELB, + IaCTemplateGenerationEFS ) from fastapi import Response @@ -25,6 +27,8 @@ from app.template_generators.terraform.aws.IAM import (IaC_template_generator_iam) from app.template_generators.terraform.aws.s3 import (IaC_template_generator_s3) from app.template_generators.terraform.argocd import (IaC_template_generator_argocd) +from app.template_generators.terraform.aws.ELB import (IaC_template_generator_elb) +from app.template_generators.terraform.aws.EFS import (IaC_template_generator_efs) import os @app.post("/IaC-basic/") @@ -102,4 +106,26 @@ async def IaC_template_generation_argocd(request:IaCTemplateGenerationArgoCD) -> output = gpt_service(generated_prompt) edit_directory_generator("terraform_generator",output) execute_pythonfile("MyTerraform","terraform_generator") - return Output(output='output') \ No newline at end of file + return Output(output='output') + + + +@app.post("/IaC-template/aws/elb") +async def IaC_template_generation_aws_elb(request:IaCTemplateGenerationELB) -> Output: + if os.environ.get("TEST"): + return Output(output='output (nothing special)') + generated_prompt = IaC_template_generator_elb(request) + output = gpt_service(generated_prompt) + edit_directory_generator("terraform_generator",output) + execute_pythonfile("MyTerraform","terraform_generator") + return Output(output='output') + +@app.post("/IaC-template/aws/efs") +async def IaC_template_generation_aws_efs(request:IaCTemplateGenerationEFS) -> Output: + if os.environ.get("TEST"): + return Output(output='output (nothing special)') + generated_prompt = IaC_template_generator_efs(request) + output = gpt_service(generated_prompt) + edit_directory_generator("terraform_generator",output) + execute_pythonfile("MyTerraform","terraform_generator") + return Output(output='output') diff --git a/app/template_generators/terraform/aws/EFS.py b/app/template_generators/terraform/aws/EFS.py new file mode 100644 index 00000000..26604aa9 --- /dev/null +++ b/app/template_generators/terraform/aws/EFS.py @@ -0,0 +1,2 @@ +def IaC_template_generator_efs(input) -> str: + pass \ No newline at end of file diff --git a/app/template_generators/terraform/aws/ELB.py b/app/template_generators/terraform/aws/ELB.py new file mode 100644 index 00000000..350c5a9f --- /dev/null +++ b/app/template_generators/terraform/aws/ELB.py @@ -0,0 +1,2 @@ +def IaC_template_generator_elb(input) -> str: + pass \ No newline at end of file