Net-Amazon-EC2

 view release on metacpan or  search on metacpan

lib/Net/Amazon/EC2/RunningInstances.pm  view on Meta::CPAN


=item architecture (optional)

The architecture of the image.

=item root_device_name (optional)

The root device name (e.g., /dev/sda1).

=item root_device_type (optional)

The root device type used by the AMI. The AMI can use an Amazon EBS or instance store root device.

=item block_device_mapping (optional)

An array ref of Net::Amazon::EC2::BlockDeviceMapping objects.

=item tag_set (optional)

An array ref of Net::Amazon::EC2::TagSet objects.

=item name (optional)

The instance name from tags.

=cut

has 'ami_launch_index'  	=> ( is => 'ro', isa => 'Str', required => 0 );
has 'dns_name'          	=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
has 'image_id'          	=> ( is => 'ro', isa => 'Str', required => 1 );
has 'kernel_id'         	=> ( is => 'ro', isa => 'Maybe[Str]', required => 1 );
has 'ramdisk_id'        	=> ( is => 'ro', isa => 'Maybe[Str]', required => 1 );
has 'instance_id'       	=> ( is => 'ro', isa => 'Str', required => 1 );
has 'instance_state'    	=> ( 
    is => 'ro', 
    isa => 'Net::Amazon::EC2::InstanceState', 
    required => 1
);
has 'instance_type'     	=> ( is => 'ro', isa => 'Str', required => 1 );
has 'key_name'          	=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
has 'launch_time'       	=> ( is => 'ro', isa => 'Str', required => 1 );
has 'placement'				=> ( is => 'ro', isa => 'Net::Amazon::EC2::PlacementResponse', required => 1 );
has 'private_dns_name'  	=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
has 'product_codes'     	=> ( 
    is          => 'rw', 
    isa         => 'ArrayRef[Net::Amazon::EC2::ProductCode]',
    auto_deref  => 1,
    required	=> 0,
);
has 'reason'            	=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
has 'platform'				=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
has 'monitoring'			=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
has 'subnet_id'				=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
has 'vpc_id'				=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
has 'private_ip_address'	=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
has 'ip_address'			=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
has 'state_reason'			=> ( is => 'ro', isa => 'Maybe[Net::Amazon::EC2::StateReason]', required => 0 );
has 'architecture'			=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
has 'root_device_name'		=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
has 'root_device_type'		=> ( is => 'ro', isa => 'Maybe[Str]', required => 0 );
has 'block_device_mapping'	=> ( is => 'ro', isa => 'Maybe[ArrayRef[Net::Amazon::EC2::BlockDeviceMapping]]', required => 0 );
has 'network_interface_set' => ( is => 'ro', isa => 'Maybe[ArrayRef[Net::Amazon::EC2::NetworkInterfaceSet]]', required => 0 );
has 'tag_set'				=> ( is => 'ro', isa => 'Maybe[ArrayRef[Net::Amazon::EC2::TagSet]]', required => 0 );
has 'name' => (
	is => 'ro',
	lazy    => 1,
	default => sub {
		my $self = shift;
		return '' if !$self->tag_set || scalar @{$self->tag_set} == 0;
		my $name = (grep {$_->{key} eq 'Name'} @{$self->tag_set})[0];
		return $name->{value} || '';
	},
);


__PACKAGE__->meta->make_immutable();

=back

=head1 AUTHOR

Jeff Kim <cpan@chosec.com>

=head1 COPYRIGHT

Copyright (c) 2006-2010 Jeff Kim. This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.

=cut

no Moose;
1;



( run in 0.871 second using v1.01-cache-2.11-cpan-39bf76dae61 )