# Copyright (c) 2010 by David Golden. All rights reserved.
# Licensed under Apache License, Version 2.0 (the "License").
# You may not use this file except in compliance with the License.
# A copy of the License was distributed with this file or you may obtain a
# copy of the License from http://www.apache.org/licenses/LICENSE-2.0
package Net::Amazon::Config::Profile;
use strict;
use warnings;
use Params::Validate ();
our $VERSION = '0.001';
$VERSION = eval $VERSION; ## no critic
my @attributes;
BEGIN {
@attributes = qw(
profile_name
access_key_id
secret_access_key
certificate_file
private_key_file
ec2_keypair_name
ec2_keypair_file
cf_keypair_id
cf_private_key_file
aws_account_id
canonical_user_id
);
}
use Object::Tiny @attributes;
sub new {
my ($class, $first, @rest) = @_;
my @args = ref $first eq 'ARRAY' ? (@$first) : ($first,@rest);
my %args = Params::Validate::validate(@args, { map { $_ => 0 } @attributes });
return bless \%args, $class;
}
1;
__END__
=begin wikidoc
= NAME
Net::Amazon::Config::Profile - Amazon credentials for given profile
= VERSION
This documentation describes version %%VERSION%%.
= DESCRIPTION
This module defines a simple object representing a 'profile' of
Amazon Web Services credentials and associated information.
= USAGE
A profile object is created by [Net::Amazon::Config] based on information
in a configuration file. The object has the following read-only accessors:
* profile_name -- as provided in the configuration file
* access_key_id -- identifier for REST requests
* secret_access_key -- used to sign REST requests
* certificate_file -- path to a file containing identifier for SOAP requests
* private_key_file -- path to a file containing the key used to sign SOAP requests
* ec2_keypair_name -- the name used to identify a keypair when launching an EC2 instance
* ec2_keypair_file -- the private key file used by ssh to connect to an EC2 instance
* cf_keypair_id -- identifier for CloudFront requests
* cf_private_key_file -- path to a file containing the key use to sign CloudFront requests
* aws_account_id -- identifier to share resources (except S3)
* canonical_user_id -- identifier to share resources (S3 only)
If an attribute is not set in the configuration file, the accessor will
return undef.
= BUGS
Please report any bugs or feature requests using the CPAN Request Tracker
web interface at [http://rt.cpan.org/Dist/Display.html?Queue=Net-Amazon-Config]
When submitting a bug or request, please include a test-file or a patch to an
existing test-file that illustrates the bug or desired feature.
= SEE ALSO
* [Net::Amazon::Config]
= AUTHOR
David A. Golden (DAGOLDEN)
= COPYRIGHT AND LICENSE
Copyright (c) 2010 by David A. Golden. All rights reserved.
Licensed under Apache License, Version 2.0 (the "License").
You may not use this file except in compliance with the License.
A copy of the License was distributed with this file or you may obtain a
copy of the License from http://www.apache.org/licenses/LICENSE-2.0
Files produced as output though the use of this software, shall not be
considered Derivative Works, but shall be considered the original work of the
Licensor.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
=end wikidoc
=cut