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

  Sample SAM Template for datafy

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

    # You can add LoggingConfig parameters such as the Logformat, Log Group, and SystemLogLevel or ApplicationLogLevel. Learn more here https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-loggingconfig.
    LoggingConfig:
      LogFormat: JSON
Resources:
  ReadFiles:
    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:
      CodeUri: read_files/
      Handler: app.lambda_handler
      Runtime: python3.9
      Architectures:
      - x86_64
      Policies:
        - Version: '2012-10-17'
          Statement:
            - Effect: Allow
              Action:
                - lambda:InvokeFunction  # Allow invoking other Lambda functions
                - ssm:GetParameter
              Resource: 
              - arn:aws:lambda:eu-west-1:587594388832:function:datafyNew-CreateTasks-ccMR48YAjXLP  # Replace with your Lambda ARN 
              - arn:aws:ssm:eu-west-1:587594388832:parameter/supabase/url   
              - arn:aws:ssm:eu-west-1:587594388832:parameter/supabase/anon   
      Events:
        ReadFilesScheduler: # Added scheduler event
          Type: Schedule
          Properties:
            Schedule: rate(1 minute) # Trigger every minute
            Input: '{}' # You can provide input JSON for the event here if needed  

  ReadPromosKaching:
    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:
      CodeUri: read_promo_kaching/
      Handler: app.lambda_handler
      Runtime: python3.9
      Architectures:
      - x86_64    
      Policies:
      - Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Action:
              - ssm:GetParameter
            Resource:             
            - arn:aws:ssm:eu-west-1:587594388832:parameter/supabase/url   
            - arn:aws:ssm:eu-west-1:587594388832:parameter/supabase/anon  
      Events:
        ReadPromoScheduler: # Added scheduler event
          Type: Schedule
          Properties:
            Schedule: rate(1 minute) # Trigger every minute
            Input: '{}' # You can provide input JSON for the event here if needed  
      
  CreateTasks:
    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:
      CodeUri: create_tasks/
      Handler: app.lambda_handler
      Runtime: python3.9
      Architectures:
      - x86_64      
      Policies:
      - Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Action:
              - ssm:GetParameter
            Resource:             
            - arn:aws:ssm:eu-west-1:587594388832:parameter/supabase/url   
            - arn:aws:ssm:eu-west-1:587594388832:parameter/supabase/anon  

  UpdateStoreIssues:
    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:
      CodeUri: update_store_issues/
      Handler: app.lambda_handler
      Runtime: python3.9
      Architectures:
      - x86_64      
      Policies:
      - Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Action:
              - ssm:GetParameter
            Resource:             
            - arn:aws:ssm:eu-west-1:587594388832:parameter/supabase/url   
            - arn:aws:ssm:eu-west-1:587594388832:parameter/supabase/anon 

  ApplicationResourceGroup:
    Type: AWS::ResourceGroups::Group
    Properties:
      Name:
        Fn::Sub: ApplicationInsights-SAM-${AWS::StackName}
      ResourceQuery:
        Type: CLOUDFORMATION_STACK_1_0
  ApplicationInsightsMonitoring:
    Type: AWS::ApplicationInsights::Application
    Properties:
      ResourceGroupName:
        Ref: ApplicationResourceGroup
      AutoConfigurationEnabled: 'true'
# Outputs:
  # ServerlessRestApi is an implicit API created out of Events key under Serverless::Function
  # Find out more about other implicit resources you can reference within SAM
  # https://github.com/awslabs/serverless-application-model/blob/master/docs/internals/generated_resources.rst#api
  # HelloWorldApi:
  #   Description: API Gateway endpoint URL for Prod stage for Hello World function
  #   Value: !Sub "https://${ServerlessRestApi}.execute-api.${AWS::Region}.amazonaws.com/Prod/hello/"
  # HelloWorldFunction:
  #   Description: Hello World Lambda Function ARN
  #   Value: !GetAtt HelloWorldFunction.Arn
  # HelloWorldFunctionIamRole:
  #   Description: Implicit IAM Role created for Hello World function
  #   Value: !GetAtt HelloWorldFunctionRole.Arn
