@@ -72,7 +72,7 @@ function sqsQueueUrlToArn(serverless, queueUrl) {
7272
7373function getSqsPermissions ( serverless , state ) {
7474 if ( _ . has ( state , 'Parameters.QueueUrl' )
75- || _ . has ( state , [ 'Parameters' , 'QueueUrl.$' ] ) ) {
75+ || _ . has ( state , [ 'Parameters' , 'QueueUrl.$' ] ) ) {
7676 // if queue URL is provided by input, then need pervasive permissions (i.e. '*')
7777 const queueArn = state . Parameters [ 'QueueUrl.$' ]
7878 ? '*'
@@ -85,7 +85,7 @@ function getSqsPermissions(serverless, state) {
8585
8686function getSnsPermissions ( serverless , state ) {
8787 if ( _ . has ( state , 'Parameters.TopicArn' )
88- || _ . has ( state , [ 'Parameters' , 'TopicArn.$' ] ) ) {
88+ || _ . has ( state , [ 'Parameters' , 'TopicArn.$' ] ) ) {
8989 // if topic ARN is provided by input, then need pervasive permissions
9090 const topicArn = state . Parameters [ 'TopicArn.$' ] ? '*' : state . Parameters . TopicArn ;
9191 return [ { action : 'sns:Publish' , resource : topicArn } ] ;
@@ -561,13 +561,13 @@ function getEventBridgePermissions(state) {
561561 ] ;
562562}
563563
564- function getEventBridgeSchedulerPermissions ( state ) {
564+ function getEventBridgeSchedulerPermissions ( action , state ) {
565565 const scheduleGroupName = state . Parameters . GroupName ;
566566 const scheduleTargetRoleArn = state . Parameters . Target . RoleArn ;
567567
568568 return [
569569 {
570- action : 'scheduler:CreateSchedule' ,
570+ action,
571571 resource : {
572572 'Fn::Sub' : [
573573 'arn:${AWS::Partition}:scheduler:${AWS::Region}:${AWS::AccountId}:schedule/${scheduleGroupName}/*' ,
@@ -748,7 +748,9 @@ function getIamPermissions(taskStates) {
748748 return getEventBridgePermissions ( state ) ;
749749
750750 case 'arn:aws:states:::aws-sdk:scheduler:createSchedule' :
751- return getEventBridgeSchedulerPermissions ( state ) ;
751+ return getEventBridgeSchedulerPermissions ( "scheduler:CreateSchedule" , state ) ;
752+ case 'arn:aws:states:::aws-sdk:scheduler:deleteSchedule' :
753+ return getEventBridgeSchedulerPermissions ( "scheduler:DeleteSchedule" , state ) ;
752754
753755 case 'arn:aws:states:::s3:getObject' :
754756 case 'arn:aws:states:::aws-sdk:s3:getObject' :
0 commit comments