Skip to content

Commit ab551a1

Browse files
committed
feat(terraform-templates): implementing aws-sns route
1 parent 7b0abf6 commit ab551a1

4 files changed

Lines changed: 39 additions & 6 deletions

File tree

app/media/terraform.tfvars

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
create_distribution = true
2-
create_origin_access_identity = true
3-
create_origin_access_control = false
4-
create_monitoring_subscription = false
5-
create_vpc_origin = false
1+
create = true
2+
fifo_topic = false
3+
create_topic_policy = true
4+
create_subscription = true

app/models/terraform_models.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,3 +111,10 @@ class IaCTemplateGenerationCloudFront(BaseModel):
111111
origin_access_control:bool = False
112112
monitoring_subscription:bool = False
113113
vpc_origin:bool = False
114+
115+
class IaCTemplateGenerationSNS(BaseModel):
116+
117+
sns_topic:bool = True
118+
fifo_topic:bool = False
119+
topic_policy:bool = True
120+
subscription:bool = True

app/routes/terraform.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
IaCTemplateGenerationELB,
1717
IaCTemplateGenerationEFS,
1818
IaCTemplateGenerationALB,
19-
IaCTemplateGenerationCloudFront
19+
IaCTemplateGenerationCloudFront,
20+
IaCTemplateGenerationSNS
2021
)
2122

2223
from fastapi import Response
@@ -34,6 +35,7 @@
3435
from app.template_generators.terraform.aws.EFS import (IaC_template_generator_efs)
3536
from app.template_generators.terraform.aws.ALB import (IaC_template_generator_alb)
3637
from app.template_generators.terraform.aws.CloudFront import (IaC_template_generator_cloudfront)
38+
from app.template_generators.terraform.aws.SNS import (IaC_template_generator_sns)
3739
from app.template_generators.terraform.Installation.main import (select_install)
3840
import os
3941

@@ -169,3 +171,15 @@ async def IaC_template_generation_aws_cloudfront(request:IaCTemplateGenerationCl
169171

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

174+
175+
@app.post("/api/IaC-template/aws/sns")
176+
async def IaC_template_generation_aws_sns(request:IaCTemplateGenerationSNS) -> Output:
177+
178+
dir = 'app/media/terraform.tfvars'
179+
180+
file_response = IaC_template_generator_sns(request)
181+
with open(dir,'w')as f:
182+
f.write(file_response)
183+
184+
return FileResponse(dir, media_type='application/zip', filename=f"terraform.tfvars")
185+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
def IaC_template_generator_sns(input) -> str:
2+
3+
aws_sns_create_topic = 'true' if input.sns_topic else 'false'
4+
aws_sns_create_fifo_topic = 'true' if input.fifo_topic else 'false'
5+
aws_sns_create_topic_policy = 'true' if input.topic_policy else 'false'
6+
aws_sns_create_subscription = 'true' if input.subscription else 'false'
7+
8+
tfvars_file = f"""create = {aws_sns_create_topic}
9+
fifo_topic = {aws_sns_create_fifo_topic}
10+
create_topic_policy = {aws_sns_create_topic_policy}
11+
create_subscription = {aws_sns_create_subscription}
12+
"""
13+
return tfvars_file

0 commit comments

Comments
 (0)