Sha256: 97f09aea8006f26d10d776c536114b290f7145ce2df92655058551e9f8c939bf

Contents?: true

Size: 1020 Bytes

Versions: 7

Compression:

Stored size: 1020 Bytes

Contents

module Codepipe::Dsl::Pipeline
  module Approve
    def approve(props)
      default = {
        name: "approve",
        action_type_id: {
          category: "Approval",
          owner: "AWS",
          provider: "Manual",
          version: "1",
        },
        run_order: @run_order,
        configuration: {  # required: will be set
          notification_arn: {ref: "SnsTopic"}, # defaults to generated SNS topic
        },
      }

      # Normalize special options. Simple approach of setting the default
      case props
      when String, Symbol
        default[:configuration][:custom_data] = props
        props = {}
      when Hash
        default[:configuration][:notification_arn] = props.delete(:notification_arn) if props.key?(:notification_arn)
        default[:configuration][:custom_data] = props.delete(:custom_data) if props.key?(:custom_data)
      else
        raise "Invalid props type: #{props.class}"
      end

      options = default.merge(props)
      action(options)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
codepipeline-0.3.4 lib/codepipe/dsl/pipeline/approve.rb
codepipeline-0.3.3 lib/codepipe/dsl/pipeline/approve.rb
codepipeline-0.3.2 lib/codepipe/dsl/pipeline/approve.rb
codepipeline-0.3.1 lib/codepipe/dsl/pipeline/approve.rb
codepipeline-0.3.0 lib/codepipe/dsl/pipeline/approve.rb
codepipeline-0.2.1 lib/codepipe/dsl/pipeline/approve.rb
codepipeline-0.2.0 lib/codepipe/dsl/pipeline/approve.rb