---
name: "VM::EC2::Instance::State::Reason"
section: "3pm"
platform: "linux"
package: "libvm-ec2-perl"
version: "1.28-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/VM::EC2::Instance::State::Reason"
---

# VM::EC2::Instance::State::Reason(3pm)

Object describing the reason for an EC2 instance state change

## NAME

VM::EC2::State::Reason - Object describing the reason for an EC2 instance state change

## SYNOPSIS

```
  use VM::EC2;
  $ec2      = VM::EC2->new(...);
  $instance = $ec2->describe_instances(-instance_id=>'i-12345');
  $reason   = $instance->reason;
  $code     = $reason->code;
  $message  = $reason->message;
```

## DESCRIPTION

This object represents the reason that an Amazon EC2 instance underwent a state change. It is returned by calling the **reason()** method of VM::EC2::Instance.

## METHODS

These object methods are supported:

```
 code           -- The state change reason code.
 message        -- The state change reason method.
```

The following table lists the codes and messages (source: http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-ItemType-StateReasonType.html):

```
   Code                                         Message
   ----                                         -------
 Server.SpotInstanceTermination       A Spot Instance was terminated due
                                      to an increase in the market price.
 Server.InternalError                 An internal error occurred during
                                      instance launch, resulting in termination.
 Server.InsufficientInstanceCapacity  There was insufficient instance capacity
                                      to satisfy the launch request.
 Client.InternalError                 A client error caused the instance to
                                      terminate on launch.
 Client.InstanceInitiatedShutdown     The instance initiated shutdown by a shutdown -h
                                      command issued from inside the instance.
 Client.UserInitiatedShutdown         The instance was shutdown by a user via an
                                      API call.
 Client.VolumeLimitExceeded           The volume limit was exceeded.
 Client.InvalidSnapshot.NotFound      The specified snapshot was not found.
```

## STRING OVERLOADING

When used in a string context, this object will interpolate the message.

## SEE ALSO

VM::EC2 VM::EC2::Generic VM::EC2::State VM::EC2::Instance

## AUTHOR

Lincoln Stein \<lincoln.stein@gmail.com\>.

Copyright (c) 2011 Ontario Institute for Cancer Research

This package and its accompanying libraries is free software; you can redistribute it and/or modify it under the terms of the GPL (either version 1, or at your option, any later version) or the Artistic License 2.0.  Refer to LICENSE for the full license text. In addition, please see DISCLAIMER.txt for disclaimers of warranty.
