# AWS SDK for Ruby - Version 1 [](https://travis-ci.org/aws/aws-sdk-ruby) This is version 1 of the AWS SDK for Ruby. **Version 2 can be found in the [master branch](https://github.com/aws/aws-sdk-ruby).** ## Installation Version 1 of the AWS SDK for Ruby is available on rubygems.org as two gems: * `aws-sdk-v1` * `aws-sdk` This project uses [semantic versioning](http://semver.org/). If you are using the `aws-sdk` gem, we strongly recommend you specify a version constraint in your Gemfile. Version 2 of the Ruby SDK will not be backwards compatible with version 1. # version constraint gem 'aws-sdk', '< 2' # or use the v1 gem gem 'aws-sdk-v1' If you use the `aws-sdk-v1` gem, you may also load the v2 Ruby SDK in the same process; The v2 Ruby SDK uses a different namespace, making this possible. # when the v2 SDK ships, you will be able to do the following gem 'aws-sdk', '~> 2.0' gem 'aws-sdk-v1' If you are currently using v1 of `aws-sdk` and you update to `aws-sdk-v1`, you may need to change how you require the Ruby SDK: require 'aws-sdk-v1' # not 'aws-sdk' If you are using a version of Ruby older than 1.9, you may encounter problems with Nokogiri. The authors dropped support for Ruby 1.8.x in Nokogiri 1.6. To use aws-sdk, you'll also have to install or specify a version of Nokogiri prior to 1.6, like this: gem 'nokogiri', '~> 1.5.0' ## Basic Configuration You need to provide your AWS security credentials and choose a default region. ``` AWS.config(access_key_id: '...', secret_access_key: '...', region: 'us-west-2') ``` You can also specify these values via `ENV`: export AWS_ACCESS_KEY_ID='...' export AWS_SECRET_ACCESS_KEY='...' export AWS_REGION='us-west-2' ## Basic Usage Each service provides a service interface and a client. ``` ec2 = AWS.ec2 #=> AWS::EC2 ec2.client #=> AWS::EC2::Client ``` The client provides one method for each API operation. The client methods accept a hash of request params and return a response with a hash of response data. The service interfaces provide a higher level abstration built using the client. **Example: list instance tags using a client** ``` resp = ec2.client.describe_tags(filters: [{ name: "resource-id", values: ["i-12345678"] }]) resp[:tag_set].first #=> {:resource_id=>"i-12345678", :resource_type=>"instance", :key=>"role", :value=>"web"} ``` **Example: list instance tags using the AWS::EC2 higher level interface** ``` ec2.instances['i-12345678'].tags.to_h #=> {"role"=>"web"} ``` See the [API Documentation](http://docs.aws.amazon.com/AWSRubySDK/latest/frames.html) for more examples. ## Testing All HTTP requests to live services can be globally mocked (e.g. from within the `spec_helper.rb` file): ``` AWS.stub! ``` ## Links of Interest * [API Documentation](http://docs.aws.amazon.com/AWSRubySDK/latest/frames.html) * [Release Notes](http://aws.amazon.com/releasenotes/Ruby) * [Issues](http://github.com/aws/aws-sdk-ruby/issues) * [Forums](https://forums.aws.amazon.com/forum.jspa?forumID=125) * [License](http://aws.amazon.com/apache2.0/) ## Supported Services The SDK currently supports the following services:
Class | API Version | AWS Service Name |
---|---|---|
AWS::AutoScaling | 2011-01-01 | Auto Scaling |
AWS::CloudFormation | 2010-05-15 | AWS CloudFormation |
AWS::CloudFront | 2013-05-12 | Amazon CloudFront |
2013-08-26 | ||
2013-09-27 | ||
2013-11-11 | ||
2013-11-22 | ||
2014-01-31 | ||
2014-05-31 | ||
2014-10-21 | ||
2014-11-06 | ||
AWS::CloudSearch | 2011-02-01 | Amazon CloudSearch |
2013-01-01 | ||
AWS::CloudTrail | 2013-11-01 | AWS CloudTrail |
AWS::CloudWatch | 2010-08-01 | Amazon CloudWatch |
AWS::DataPipeline | 2012-10-29 | AWS Data Pipeline |
AWS::DirectConnect | 2012-10-25 | AWS Direct Connect |
AWS::DynamoDB | 2011-12-05 | Amazon DynamoDB |
2012-08-10 | ||
AWS::EC2 | 2013-08-15 | Amazon Elastic Compute Cloud |
2013-10-01 | ||
2013-10-15 | ||
2014-02-01 | ||
2014-05-01 | ||
2014-09-01 | ||
2014-10-01 | ||
AWS::ElastiCache | 2013-06-15 | Amazon ElastiCache |
2014-03-24 | ||
2014-07-15 | ||
2014-09-30 | ||
AWS::ElasticBeanstalk | 2010-12-01 | AWS Elastic Beanstalk |
AWS::ElasticTranscoder | 2012-09-25 | Amazon Elastic Transcoder |
AWS::ELB | 2012-06-01 | Elastic Load Balancing |
AWS::EMR | 2009-03-31 | Amazon Elastic MapReduce |
AWS::Glacier | 2012-06-01 | Amazon Glacier |
AWS::IAM | 2010-05-08 | AWS Identity and Access Management |
AWS::ImportExport | 2010-06-01 | AWS Import/Export |
AWS::Kinesis | 2013-12-02 | Amazon Kinesis |
AWS::OpsWorks | 2013-02-18 | AWS OpsWorks |
AWS::RDS | 2013-05-15 | Amazon Relational Database Service (Beta) |
2013-09-09 | ||
2014-09-01 | ||
AWS::Redshift | 2012-12-01 | Amazon Redshift |
AWS::Route53 | 2012-12-12 | Amazon Route 53 |
2013-04-01 | ||
AWS::S3 | 2006-03-01 | Amazon Simple Storage Service |
AWS::SimpleDB | 2009-04-15 | Amazon SimpleDB |
AWS::SimpleEmailService | 2010-12-01 | Amazon Simple E-mail Service |
AWS::SimpleWorkflow | 2012-01-25 | Amazon Simple Workflow Service |
AWS::SNS | 2010-03-31 | Amazon Simple Notifications Service |
AWS::SQS | 2012-11-05 | Amazon Simple Queue Service |
AWS::StorageGateway | 2012-06-30 | AWS Storage Gateway |
2013-06-30 | ||
AWS::STS | 2011-06-15 | AWS Security Token Service |
AWS::Support | 2013-04-15 | AWS Support |