AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: API to send SMS using SNS

Resources:
  RestApi:
    Type: AWS::Serverless::Api
    Properties:
      StageName: dev
      DefinitionBody: # an OpenApi definition
        'Fn::Transform':
          Name: 'AWS::Include'
          Parameters:
            Location: './api.yaml'
      OpenApiVersion: 3.0.3
      EndpointConfiguration:
          Type: REGIONAL

  RootRole:
    Type: 'AWS::IAM::Role'
    Properties:
      RoleName: API-SNSSMS
      AssumeRolePolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Principal:
              Service:
                - apigateway.amazonaws.com
            Action:
              - 'sts:AssumeRole'
      Path: /
      Policies:
        - PolicyName: SNS_SMS
          PolicyDocument:
            Version: "2012-10-17"
            Statement:
              - Effect: Allow
                Action: [ "sns:Publish"]
                Resource: "*"
              - Effect: Deny
                Action: ["sns:Publish"]
                Resource: "arn:aws:sns:*:*"
              
Outputs:
  API:
    Description: API to send SMS using SNS
    Value: !Sub "https://${RestApi}.execute-api.${AWS::Region}.amazonaws.com/dev"