# File lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb, line 60
        def put_metric_alarm(options)
          supported_actions = [ "InsufficientDataActions", "OKActions", "AlarmActions" ]
          found_actions = options.keys.select {|key| supported_actions.include? key }
          if found_actions.empty?
            raise Fog::Compute::AWS::Error.new("The request must contain at least one of #{supported_actions.join(", ")}'")
          end

          requirements = [ "AlarmName", "ComparisonOperator", "EvaluationPeriods", "Namespace", "Period", "Statistic", "Threshold" ]
          requirements.each do |req|
            unless options.has_key?(req)
              raise Fog::Compute::AWS::Error.new("The request must contain a the parameter '%s'" % req)
            end
          end

          data[:metric_alarms][options['AlarmName']] = {
            'AlarmARN' => "arn:aws:cloudwatch:eu-west-1:000000000000:metricAlarm:00000000-0000-0000-0000-000000000000:alarmName/#{options['AlarmName']}",
            'ActionsEnabled' => false,
            'AlarmActions' => [],
            'AlarmConfigurationUpdatedTimestamp' => Time.now.utc.strftime("%Y-%m-%dT%H:%M:%SZ"),
            'Dimensions' => [],
            'OKActions' => [],
          }.merge!(options)

          response = Excon::Response.new
          response.status = 200
          response.body = {
            'requestId' => Fog::AWS::Mock.request_id
          }
          response
        end