AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
  comparison-report

Parameters:
  Stage:
    Type: String
    Default: staging
    Description: Parameter for getting the deployment stage

Mappings:
  EnvConfigs:
    staging:
      TaskRole: arn:aws:iam::552185537300:role/ce-task
      SecurityGroupIds:
        - sg-08bb42935021e024b
      SubnetIds:
        - subnet-098de5356152db3c2
        - subnet-0aea29f5add64487c
      RuntimeDestARN: arn:aws:lambda:us-west-2:552185537300:function:ce-framework-runtime
      CELayerPy3: arn:aws:lambda:us-west-2:552185537300:layer:ce-python-layer:5
    prod:
      TaskRole: arn:aws:iam::557537366020:role/ce-task
      SecurityGroupIds:
        - sg-0118e0f1069a02381
      SubnetIds:
        - subnet-0539a75851b24df03
        - subnet-0258434fb4a0d03ef
        - subnet-007f996591222aec2
        - subnet-068050d69d264d42a
      RuntimeDestARN: arn:aws:lambda:us-west-2:557537366020:function:ce-framework-runtime
      CELayerPy3: arn:aws:lambda:us-west-2:557537366020:layer:ce-python-layer:8

# More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
Globals:
  Function:
    Timeout: 900

Resources:
  TaskHandler:
    Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
    Properties:
      FunctionName: JOB_FUNC_NAME_PLACEHOLDER
      CodeUri: .
      Handler: lambda_function.lambda_handler
      Runtime: python3.9
      Architectures:
        - x86_64
      Role: !FindInMap
        - EnvConfigs
        - Ref: Stage
        - TaskRole
      Layers:
        - arn:aws:lambda:us-west-2:336392948345:layer:AWSDataWrangler-Python39:8
        - !FindInMap
          - EnvConfigs
          - Ref: Stage
          - CELayerPy3
      EventInvokeConfig:
        DestinationConfig:
          OnFailure:
            Type: Lambda
            Destination: !FindInMap
              - EnvConfigs
              - Ref: Stage
              - RuntimeDestARN
          OnSuccess:
            Type: Lambda
            Destination: !FindInMap
              - EnvConfigs
              - Ref: Stage
              - RuntimeDestARN
      Environment:
        Variables:
          CE_ENDPOINT: CE_ENDPOINT_PLACEHOLDER
          CONFIGURATION_TASK_NAME: ce-job-configuration
          LOGS_TASK_NAME: ce-job-log-clustering-stats
          METRICS_TASK_NAME: ce-job-metrics-status
          S3_BUCKET: compute-engine-task-resumer
      VpcConfig:
        SecurityGroupIds: !FindInMap
          - EnvConfigs
          - Ref: Stage
          - SecurityGroupIds
        SubnetIds: !FindInMap
          - EnvConfigs
          - Ref: Stage
          - SubnetIds
