AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: Serverless patterns - EventBridge to SQS
  
Resources:

  # Define the SQS queue
  MySqsQueue:
    Type: AWS::SQS::Queue

  # Define the event rule to filter for events
  EventRule: 
    Type: AWS::Events::Rule
    Properties: 
      Description: "EventRule"
      EventPattern: 
        account: 
          - !Sub '${AWS::AccountId}'
        source:
          - "demo.sqs"
      Targets: 
        - Arn: !GetAtt MySqsQueue.Arn
          Id: "SQSqueue"

  # Allow EventBridge to invoke SQS
  EventBridgeToToSqsPolicy:
    Type: AWS::SQS::QueuePolicy
    Properties:
      PolicyDocument:
        Statement:
        - Effect: Allow
          Principal:
            Service: events.amazonaws.com
          Action: SQS:SendMessage
          Resource:  !GetAtt MySqsQueue.Arn
      Queues:
        - Ref: MySqsQueue

Outputs:
  SQSqueueName:
    Description: SNS queue name
    Value: !GetAtt MySqsQueue.QueueName

  SQSqueueARN:
    Description: SQS queue ARN
    Value: !GetAtt MySqsQueue.Arn

  SQSqueueURL:
    Description: SQS queue URL
    Value: !Ref MySqsQueue