App-FargateStack

 view release on metacpan or  search on metacpan

lib/App/Events.pm  view on Meta::CPAN

package App::Events;

use strict;
use warnings;

use App::FargateStack::Constants;
use Carp;
use Data::Dumper;
use English qw(-no_match_vars);
use File::Temp qw(tempfile);
use JSON;
use List::Util qw(none any);
use Scalar::Util qw(reftype);

use Role::Tiny::With;
with 'App::AWS';

use parent qw(App::Command);

__PACKAGE__->follow_best_practice();
__PACKAGE__->mk_accessors(qw(profile region event_bus_name unlink));

use Readonly;

Readonly::Scalar our $DEFAULT_EVENT_BUS_NAME => 'default';

########################################################################
sub new {
########################################################################
  my ( $class, @args ) = @_;

  my $self = $class->SUPER::new(@args);

  if ( !$self->get_event_bus_name ) {
    $self->set_event_bus_name($DEFAULT_EVENT_BUS_NAME);
  }

  return $self;
}

########################################################################
sub describe_rule {
########################################################################
  my ( $self, $rule_name, $query ) = @_;

  return $self->command(
    'describe-rule' => [
      '--name' => $rule_name,
      $query ? ( '--query' => $query ) : ()
    ]
  );
}

########################################################################
sub remove_targets {
########################################################################
  my ( $self, $rule_name, $id ) = @_;

  return $self->command(
    'remove-targets' => [
      '--rule'           => $rule_name,
      '--ids'            => $id,
      '--event-bus-name' => $self->get_event_bus_name,
    ]
  );
  return;
}

########################################################################
sub list_targets_by_rule {
########################################################################
  my ( $self, $rule_name, $query ) = @_;

  return $self->command(
    'list-targets-by-rule' => [
      '--rule'           => $rule_name,
      '--event-bus-name' => $self->get_event_bus_name,
      $query ? ( '--query' => $query ) : (),
    ]
  );

  return;
}

########################################################################
#  0 => does not exist
#  1 => exists and schedule has not changed
# -1 => exists and schedule has changed
########################################################################
sub rule_exists {
########################################################################
  my ( $self, $rule_name, $schedule ) = @_;



( run in 0.712 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )