Skip to content

Commit 907ca70

Browse files
committed
feat(terraform-templates): implementing aws-sqs route
1 parent 98e107c commit 907ca70

File tree

4 files changed

+42
-5
lines changed

4 files changed

+42
-5
lines changed

app/media/terraform.tfvars

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
create = true
2-
create_launch_template = true
3-
create_schedule = true
4-
create_scaling_policy = true
5-
create_iam_instance_profile = true
2+
create_queue_policy = false
3+
create_dlq = false
4+
create_dlq_redrive_allow_policy = true
5+
create_dlq_queue_policy = false

app/models/terraform_models.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,3 +126,11 @@ class IaCTemplateGenerationAutoScaling(BaseModel):
126126
schedule:bool = True
127127
scaling_policy:bool = True
128128
iam_instance_profile:bool = True
129+
130+
class IaCTemplateGenerationSQS(BaseModel):
131+
132+
sqs_queue:bool = True
133+
queue_policy:bool = False
134+
dlq:bool = False
135+
dlq_redrive_allow_policy:bool = True
136+
dlq_queue_policy:bool = False

app/routes/terraform.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
IaCTemplateGenerationALB,
1919
IaCTemplateGenerationCloudFront,
2020
IaCTemplateGenerationSNS,
21-
IaCTemplateGenerationAutoScaling
21+
IaCTemplateGenerationAutoScaling,
22+
IaCTemplateGenerationSQS
2223
)
2324

2425
from fastapi import Response
@@ -38,6 +39,7 @@
3839
from app.template_generators.terraform.aws.CloudFront import (IaC_template_generator_cloudfront)
3940
from app.template_generators.terraform.aws.SNS import (IaC_template_generator_sns)
4041
from app.template_generators.terraform.aws.AutoScaling import (IaC_template_generator_autoscaling)
42+
from app.template_generators.terraform.aws.SQS import (IaC_template_generator_sqs)
4143
from app.template_generators.terraform.Installation.main import (select_install)
4244
import os
4345

@@ -197,3 +199,15 @@ async def IaC_template_generation_aws_autoscaling(request:IaCTemplateGenerationA
197199

198200
return FileResponse(dir, media_type='application/zip', filename=f"terraform.tfvars")
199201

202+
203+
@app.post("/api/IaC-template/aws/sqs")
204+
async def IaC_template_generation_aws_sqs(request:IaCTemplateGenerationSQS) -> Output:
205+
206+
dir = 'app/media/terraform.tfvars'
207+
208+
file_response = IaC_template_generator_sqs(request)
209+
with open(dir,'w')as f:
210+
f.write(file_response)
211+
212+
return FileResponse(dir, media_type='application/zip', filename=f"terraform.tfvars")
213+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
def IaC_template_generator_sqs(input) -> str:
2+
3+
aws_sqs_create_queue = 'true' if input.sqs_queue else 'false'
4+
aws_sqs_create_queue_policy = 'true' if input.queue_policy else 'false'
5+
aws_sqs_create_dlq = 'true' if input.dlq else 'false'
6+
aws_sqs_create_dlq_redrive_allow_policy = 'true' if input.dlq_redrive_allow_policy else 'false'
7+
aws_sqs_create_dlq_queue_policy = 'true' if input.dlq_queue_policy else 'false'
8+
9+
tfvars_file = f"""create = {aws_sqs_create_queue}
10+
create_queue_policy = {aws_sqs_create_queue_policy}
11+
create_dlq = {aws_sqs_create_dlq}
12+
create_dlq_redrive_allow_policy = {aws_sqs_create_dlq_redrive_allow_policy}
13+
create_dlq_queue_policy = {aws_sqs_create_dlq_queue_policy}
14+
"""
15+
return tfvars_file

0 commit comments

Comments
 (0)