aws-sdk-euca 1.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.yardopts +5 -0
- data/LICENSE.txt +12 -0
- data/README.rdoc +189 -0
- data/ca-bundle.crt +3895 -0
- data/lib/aws-sdk-euca.rb +79 -0
- data/lib/aws-sdk.rb +79 -0
- data/lib/aws.rb +14 -0
- data/lib/aws/api_config/AutoScaling-2011-01-01.yml +825 -0
- data/lib/aws/api_config/CloudFormation-2010-05-15.yml +322 -0
- data/lib/aws/api_config/CloudFront-2012-05-05.yml +2102 -0
- data/lib/aws/api_config/CloudSearch-2011-02-01.yml +681 -0
- data/lib/aws/api_config/CloudWatch-2010-08-01.yml +433 -0
- data/lib/aws/api_config/DataPipeline-2012-10-29.yml +422 -0
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +1160 -0
- data/lib/aws/api_config/EC2-2013-02-01.yml +4368 -0
- data/lib/aws/api_config/ELB-2012-06-01.yml +597 -0
- data/lib/aws/api_config/EMR-2009-03-31.yml +370 -0
- data/lib/aws/api_config/ElastiCache-2012-03-09.yml +777 -0
- data/lib/aws/api_config/ElastiCache-2012-11-15.yml +979 -0
- data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +823 -0
- data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +1036 -0
- data/lib/aws/api_config/Glacier-2012-06-01.yml +618 -0
- data/lib/aws/api_config/IAM-2010-05-08.yml +1222 -0
- data/lib/aws/api_config/ImportExport-2010-06-01.yml +109 -0
- data/lib/aws/api_config/OpsWorks-2013-02-18.yml +1463 -0
- data/lib/aws/api_config/RDS-2012-09-17.yml +1861 -0
- data/lib/aws/api_config/RDS-2013-02-12.yml +2377 -0
- data/lib/aws/api_config/Redshift-2012-12-01.yml +1149 -0
- data/lib/aws/api_config/Route53-2012-02-29.yml +380 -0
- data/lib/aws/api_config/Route53-2012-12-12.yml +547 -0
- data/lib/aws/api_config/SNS-2010-03-31.yml +249 -0
- data/lib/aws/api_config/SQS-2012-11-05.yml +317 -0
- data/lib/aws/api_config/STS-2011-06-15.yml +81 -0
- data/lib/aws/api_config/SimpleDB-2009-04-15.yml +306 -0
- data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +346 -0
- data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +2358 -0
- data/lib/aws/api_config/StorageGateway-2012-06-30.yml +748 -0
- data/lib/aws/auto_scaling.rb +164 -0
- data/lib/aws/auto_scaling/activity.rb +102 -0
- data/lib/aws/auto_scaling/activity_collection.rb +82 -0
- data/lib/aws/auto_scaling/client.rb +521 -0
- data/lib/aws/auto_scaling/config.rb +18 -0
- data/lib/aws/auto_scaling/errors.rb +22 -0
- data/lib/aws/auto_scaling/group.rb +420 -0
- data/lib/aws/auto_scaling/group_collection.rb +96 -0
- data/lib/aws/auto_scaling/group_options.rb +146 -0
- data/lib/aws/auto_scaling/instance.rb +192 -0
- data/lib/aws/auto_scaling/instance_collection.rb +63 -0
- data/lib/aws/auto_scaling/launch_configuration.rb +158 -0
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +154 -0
- data/lib/aws/auto_scaling/notification_configuration.rb +89 -0
- data/lib/aws/auto_scaling/notification_configuration_collection.rb +184 -0
- data/lib/aws/auto_scaling/request.rb +29 -0
- data/lib/aws/auto_scaling/scaling_policy.rb +142 -0
- data/lib/aws/auto_scaling/scaling_policy_collection.rb +72 -0
- data/lib/aws/auto_scaling/scaling_policy_options.rb +64 -0
- data/lib/aws/auto_scaling/scheduled_action.rb +145 -0
- data/lib/aws/auto_scaling/scheduled_action_collection.rb +195 -0
- data/lib/aws/auto_scaling/tag.rb +59 -0
- data/lib/aws/auto_scaling/tag_collection.rb +112 -0
- data/lib/aws/cloud_formation.rb +272 -0
- data/lib/aws/cloud_formation/client.rb +369 -0
- data/lib/aws/cloud_formation/config.rb +18 -0
- data/lib/aws/cloud_formation/errors.rb +22 -0
- data/lib/aws/cloud_formation/request.rb +29 -0
- data/lib/aws/cloud_formation/stack.rb +255 -0
- data/lib/aws/cloud_formation/stack_collection.rb +209 -0
- data/lib/aws/cloud_formation/stack_event.rb +75 -0
- data/lib/aws/cloud_formation/stack_event_collection.rb +47 -0
- data/lib/aws/cloud_formation/stack_options.rb +72 -0
- data/lib/aws/cloud_formation/stack_output.rb +53 -0
- data/lib/aws/cloud_formation/stack_resource.rb +117 -0
- data/lib/aws/cloud_formation/stack_resource_collection.rb +84 -0
- data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +64 -0
- data/lib/aws/cloud_formation/stack_summary_collection.rb +123 -0
- data/lib/aws/cloud_front.rb +73 -0
- data/lib/aws/cloud_front/client.rb +1307 -0
- data/lib/aws/cloud_front/config.rb +18 -0
- data/lib/aws/cloud_front/errors.rb +22 -0
- data/lib/aws/cloud_front/request.rb +44 -0
- data/lib/aws/cloud_search.rb +74 -0
- data/lib/aws/cloud_search/client.rb +558 -0
- data/lib/aws/cloud_search/config.rb +18 -0
- data/lib/aws/cloud_search/errors.rb +22 -0
- data/lib/aws/cloud_search/request.rb +23 -0
- data/lib/aws/cloud_watch.rb +119 -0
- data/lib/aws/cloud_watch/alarm.rb +272 -0
- data/lib/aws/cloud_watch/alarm_collection.rb +153 -0
- data/lib/aws/cloud_watch/alarm_history_item.rb +50 -0
- data/lib/aws/cloud_watch/alarm_history_item_collection.rb +84 -0
- data/lib/aws/cloud_watch/client.rb +247 -0
- data/lib/aws/cloud_watch/config.rb +18 -0
- data/lib/aws/cloud_watch/errors.rb +22 -0
- data/lib/aws/cloud_watch/metric.rb +135 -0
- data/lib/aws/cloud_watch/metric_alarm_collection.rb +160 -0
- data/lib/aws/cloud_watch/metric_collection.rb +131 -0
- data/lib/aws/cloud_watch/metric_statistics.rb +69 -0
- data/lib/aws/cloud_watch/request.rb +23 -0
- data/lib/aws/core.rb +587 -0
- data/lib/aws/core/async_handle.rb +90 -0
- data/lib/aws/core/autoloader.rb +64 -0
- data/lib/aws/core/cacheable.rb +78 -0
- data/lib/aws/core/client.rb +691 -0
- data/lib/aws/core/collection.rb +267 -0
- data/lib/aws/core/collection/simple.rb +82 -0
- data/lib/aws/core/collection/with_limit_and_next_token.rb +71 -0
- data/lib/aws/core/collection/with_next_token.rb +97 -0
- data/lib/aws/core/configuration.rb +546 -0
- data/lib/aws/core/credential_providers.rb +461 -0
- data/lib/aws/core/data.rb +247 -0
- data/lib/aws/core/http/curb_handler.rb +155 -0
- data/lib/aws/core/http/handler.rb +89 -0
- data/lib/aws/core/http/net_http_handler.rb +128 -0
- data/lib/aws/core/http/request.rb +263 -0
- data/lib/aws/core/http/response.rb +81 -0
- data/lib/aws/core/indifferent_hash.rb +88 -0
- data/lib/aws/core/inflection.rb +56 -0
- data/lib/aws/core/json_client.rb +47 -0
- data/lib/aws/core/json_parser.rb +76 -0
- data/lib/aws/core/json_request_builder.rb +35 -0
- data/lib/aws/core/json_response_parser.rb +79 -0
- data/lib/aws/core/lazy_error_classes.rb +90 -0
- data/lib/aws/core/log_formatter.rb +462 -0
- data/lib/aws/core/managed_file.rb +32 -0
- data/lib/aws/core/meta_utils.rb +45 -0
- data/lib/aws/core/model.rb +57 -0
- data/lib/aws/core/naming.rb +30 -0
- data/lib/aws/core/option_grammar.rb +735 -0
- data/lib/aws/core/options/json_serializer.rb +82 -0
- data/lib/aws/core/options/validator.rb +155 -0
- data/lib/aws/core/options/xml_serializer.rb +118 -0
- data/lib/aws/core/page_result.rb +75 -0
- data/lib/aws/core/policy.rb +916 -0
- data/lib/aws/core/query_client.rb +41 -0
- data/lib/aws/core/query_error_parser.rb +24 -0
- data/lib/aws/core/query_request_builder.rb +47 -0
- data/lib/aws/core/query_response_parser.rb +35 -0
- data/lib/aws/core/resource.rb +413 -0
- data/lib/aws/core/resource_cache.rb +40 -0
- data/lib/aws/core/response.rb +208 -0
- data/lib/aws/core/response_cache.rb +50 -0
- data/lib/aws/core/rest_error_parser.rb +24 -0
- data/lib/aws/core/rest_json_client.rb +40 -0
- data/lib/aws/core/rest_request_builder.rb +146 -0
- data/lib/aws/core/rest_response_parser.rb +66 -0
- data/lib/aws/core/rest_xml_client.rb +47 -0
- data/lib/aws/core/service_interface.rb +61 -0
- data/lib/aws/core/signature/version_2.rb +56 -0
- data/lib/aws/core/signature/version_3.rb +77 -0
- data/lib/aws/core/signature/version_3_https.rb +54 -0
- data/lib/aws/core/signature/version_4.rb +135 -0
- data/lib/aws/core/signer.rb +46 -0
- data/lib/aws/core/uri_escape.rb +44 -0
- data/lib/aws/core/xml/frame.rb +244 -0
- data/lib/aws/core/xml/frame_stack.rb +85 -0
- data/lib/aws/core/xml/grammar.rb +307 -0
- data/lib/aws/core/xml/parser.rb +70 -0
- data/lib/aws/core/xml/root_frame.rb +65 -0
- data/lib/aws/core/xml/sax_handlers/libxml.rb +47 -0
- data/lib/aws/core/xml/sax_handlers/nokogiri.rb +55 -0
- data/lib/aws/core/xml/sax_handlers/ox.rb +41 -0
- data/lib/aws/core/xml/sax_handlers/rexml.rb +43 -0
- data/lib/aws/core/xml/stub.rb +123 -0
- data/lib/aws/data_pipeline.rb +73 -0
- data/lib/aws/data_pipeline/client.rb +339 -0
- data/lib/aws/data_pipeline/config.rb +18 -0
- data/lib/aws/data_pipeline/errors.rb +20 -0
- data/lib/aws/data_pipeline/request.rb +26 -0
- data/lib/aws/dynamo_db.rb +206 -0
- data/lib/aws/dynamo_db/attribute_collection.rb +461 -0
- data/lib/aws/dynamo_db/batch_get.rb +213 -0
- data/lib/aws/dynamo_db/batch_write.rb +252 -0
- data/lib/aws/dynamo_db/binary.rb +35 -0
- data/lib/aws/dynamo_db/client.rb +904 -0
- data/lib/aws/dynamo_db/config.rb +24 -0
- data/lib/aws/dynamo_db/errors.rb +20 -0
- data/lib/aws/dynamo_db/expectations.rb +40 -0
- data/lib/aws/dynamo_db/item.rb +133 -0
- data/lib/aws/dynamo_db/item_collection.rb +852 -0
- data/lib/aws/dynamo_db/item_data.rb +31 -0
- data/lib/aws/dynamo_db/keys.rb +41 -0
- data/lib/aws/dynamo_db/primary_key_element.rb +48 -0
- data/lib/aws/dynamo_db/request.rb +26 -0
- data/lib/aws/dynamo_db/resource.rb +33 -0
- data/lib/aws/dynamo_db/table.rb +491 -0
- data/lib/aws/dynamo_db/table_collection.rb +165 -0
- data/lib/aws/dynamo_db/types.rb +111 -0
- data/lib/aws/ec2.rb +440 -0
- data/lib/aws/ec2/attachment.rb +140 -0
- data/lib/aws/ec2/attachment_collection.rb +54 -0
- data/lib/aws/ec2/availability_zone.rb +86 -0
- data/lib/aws/ec2/availability_zone_collection.rb +43 -0
- data/lib/aws/ec2/block_device_mappings.rb +53 -0
- data/lib/aws/ec2/client.rb +3621 -0
- data/lib/aws/ec2/collection.rb +36 -0
- data/lib/aws/ec2/config.rb +18 -0
- data/lib/aws/ec2/config_transform.rb +63 -0
- data/lib/aws/ec2/customer_gateway.rb +90 -0
- data/lib/aws/ec2/customer_gateway_collection.rb +73 -0
- data/lib/aws/ec2/dhcp_options.rb +106 -0
- data/lib/aws/ec2/dhcp_options_collection.rb +87 -0
- data/lib/aws/ec2/elastic_ip.rb +208 -0
- data/lib/aws/ec2/elastic_ip_collection.rb +97 -0
- data/lib/aws/ec2/errors.rb +32 -0
- data/lib/aws/ec2/export_task.rb +120 -0
- data/lib/aws/ec2/export_task_collection.rb +67 -0
- data/lib/aws/ec2/filtered_collection.rb +89 -0
- data/lib/aws/ec2/has_permissions.rb +44 -0
- data/lib/aws/ec2/image.rb +264 -0
- data/lib/aws/ec2/image_collection.rb +228 -0
- data/lib/aws/ec2/instance.rb +796 -0
- data/lib/aws/ec2/instance_collection.rb +372 -0
- data/lib/aws/ec2/internet_gateway.rb +122 -0
- data/lib/aws/ec2/internet_gateway/attachment.rb +78 -0
- data/lib/aws/ec2/internet_gateway_collection.rb +54 -0
- data/lib/aws/ec2/key_pair.rb +82 -0
- data/lib/aws/ec2/key_pair_collection.rb +99 -0
- data/lib/aws/ec2/network_acl.rb +256 -0
- data/lib/aws/ec2/network_acl/association.rb +56 -0
- data/lib/aws/ec2/network_acl/entry.rb +147 -0
- data/lib/aws/ec2/network_acl_collection.rb +64 -0
- data/lib/aws/ec2/network_interface.rb +228 -0
- data/lib/aws/ec2/network_interface/attachment.rb +100 -0
- data/lib/aws/ec2/network_interface_collection.rb +103 -0
- data/lib/aws/ec2/permission_collection.rb +174 -0
- data/lib/aws/ec2/region.rb +106 -0
- data/lib/aws/ec2/region_collection.rb +51 -0
- data/lib/aws/ec2/request.rb +21 -0
- data/lib/aws/ec2/reserved_instances.rb +56 -0
- data/lib/aws/ec2/reserved_instances_collection.rb +40 -0
- data/lib/aws/ec2/reserved_instances_offering.rb +60 -0
- data/lib/aws/ec2/reserved_instances_offering_collection.rb +39 -0
- data/lib/aws/ec2/resource.rb +161 -0
- data/lib/aws/ec2/resource_tag_collection.rb +211 -0
- data/lib/aws/ec2/route_table.rb +205 -0
- data/lib/aws/ec2/route_table/association.rb +119 -0
- data/lib/aws/ec2/route_table/route.rb +119 -0
- data/lib/aws/ec2/route_table_collection.rb +72 -0
- data/lib/aws/ec2/security_group.rb +484 -0
- data/lib/aws/ec2/security_group/ip_permission.rb +135 -0
- data/lib/aws/ec2/security_group/ip_permission_collection.rb +82 -0
- data/lib/aws/ec2/security_group_collection.rb +135 -0
- data/lib/aws/ec2/snapshot.rb +143 -0
- data/lib/aws/ec2/snapshot_collection.rb +132 -0
- data/lib/aws/ec2/subnet.rb +161 -0
- data/lib/aws/ec2/subnet_collection.rb +115 -0
- data/lib/aws/ec2/tag.rb +81 -0
- data/lib/aws/ec2/tag_collection.rb +107 -0
- data/lib/aws/ec2/tagged_collection.rb +53 -0
- data/lib/aws/ec2/tagged_item.rb +85 -0
- data/lib/aws/ec2/volume.rb +174 -0
- data/lib/aws/ec2/volume_collection.rb +101 -0
- data/lib/aws/ec2/vpc.rb +166 -0
- data/lib/aws/ec2/vpc_collection.rb +70 -0
- data/lib/aws/ec2/vpn_connection.rb +99 -0
- data/lib/aws/ec2/vpn_connection/telemetry.rb +49 -0
- data/lib/aws/ec2/vpn_connection_collection.rb +96 -0
- data/lib/aws/ec2/vpn_gateway.rb +123 -0
- data/lib/aws/ec2/vpn_gateway/attachment.rb +45 -0
- data/lib/aws/ec2/vpn_gateway_collection.rb +77 -0
- data/lib/aws/elastic_beanstalk.rb +50 -0
- data/lib/aws/elastic_beanstalk/client.rb +867 -0
- data/lib/aws/elastic_beanstalk/config.rb +18 -0
- data/lib/aws/elastic_beanstalk/errors.rb +22 -0
- data/lib/aws/elastic_beanstalk/request.rb +29 -0
- data/lib/aws/elastic_transcoder.rb +30 -0
- data/lib/aws/elastic_transcoder/client.rb +672 -0
- data/lib/aws/elastic_transcoder/config.rb +18 -0
- data/lib/aws/elastic_transcoder/errors.rb +23 -0
- data/lib/aws/elastic_transcoder/request.rb +30 -0
- data/lib/aws/elasticache.rb +50 -0
- data/lib/aws/elasticache/client.rb +920 -0
- data/lib/aws/elasticache/config.rb +18 -0
- data/lib/aws/elasticache/errors.rb +22 -0
- data/lib/aws/elasticache/request.rb +23 -0
- data/lib/aws/elb.rb +67 -0
- data/lib/aws/elb/availability_zone_collection.rb +138 -0
- data/lib/aws/elb/backend_server_policy_collection.rb +139 -0
- data/lib/aws/elb/client.rb +500 -0
- data/lib/aws/elb/config.rb +18 -0
- data/lib/aws/elb/errors.rb +26 -0
- data/lib/aws/elb/instance_collection.rb +173 -0
- data/lib/aws/elb/listener.rb +190 -0
- data/lib/aws/elb/listener_collection.rb +113 -0
- data/lib/aws/elb/listener_opts.rb +45 -0
- data/lib/aws/elb/load_balancer.rb +281 -0
- data/lib/aws/elb/load_balancer_collection.rb +134 -0
- data/lib/aws/elb/load_balancer_policy.rb +93 -0
- data/lib/aws/elb/load_balancer_policy_collection.rb +208 -0
- data/lib/aws/elb/request.rb +29 -0
- data/lib/aws/emr.rb +86 -0
- data/lib/aws/emr/client.rb +330 -0
- data/lib/aws/emr/config.rb +18 -0
- data/lib/aws/emr/errors.rb +22 -0
- data/lib/aws/emr/instance_group.rb +138 -0
- data/lib/aws/emr/instance_group_collection.rb +82 -0
- data/lib/aws/emr/job_flow.rb +306 -0
- data/lib/aws/emr/job_flow_collection.rb +185 -0
- data/lib/aws/emr/request.rb +23 -0
- data/lib/aws/errors.rb +162 -0
- data/lib/aws/glacier.rb +80 -0
- data/lib/aws/glacier/archive.rb +56 -0
- data/lib/aws/glacier/archive_collection.rb +146 -0
- data/lib/aws/glacier/client.rb +286 -0
- data/lib/aws/glacier/config.rb +19 -0
- data/lib/aws/glacier/errors.rb +22 -0
- data/lib/aws/glacier/request.rb +34 -0
- data/lib/aws/glacier/resource.rb +30 -0
- data/lib/aws/glacier/vault.rb +145 -0
- data/lib/aws/glacier/vault_collection.rb +75 -0
- data/lib/aws/glacier/vault_notification_configuration.rb +29 -0
- data/lib/aws/iam.rb +420 -0
- data/lib/aws/iam/access_key.rb +180 -0
- data/lib/aws/iam/access_key_collection.rb +128 -0
- data/lib/aws/iam/account_alias_collection.rb +79 -0
- data/lib/aws/iam/client.rb +1092 -0
- data/lib/aws/iam/collection.rb +83 -0
- data/lib/aws/iam/config.rb +18 -0
- data/lib/aws/iam/errors.rb +22 -0
- data/lib/aws/iam/group.rb +111 -0
- data/lib/aws/iam/group_collection.rb +132 -0
- data/lib/aws/iam/group_policy_collection.rb +47 -0
- data/lib/aws/iam/group_user_collection.rb +84 -0
- data/lib/aws/iam/login_profile.rb +99 -0
- data/lib/aws/iam/mfa_device.rb +52 -0
- data/lib/aws/iam/mfa_device_collection.rb +127 -0
- data/lib/aws/iam/policy.rb +46 -0
- data/lib/aws/iam/policy_collection.rb +188 -0
- data/lib/aws/iam/request.rb +29 -0
- data/lib/aws/iam/resource.rb +62 -0
- data/lib/aws/iam/server_certificate.rb +141 -0
- data/lib/aws/iam/server_certificate_collection.rb +138 -0
- data/lib/aws/iam/signing_certificate.rb +169 -0
- data/lib/aws/iam/signing_certificate_collection.rb +131 -0
- data/lib/aws/iam/user.rb +205 -0
- data/lib/aws/iam/user_collection.rb +133 -0
- data/lib/aws/iam/user_group_collection.rb +98 -0
- data/lib/aws/iam/user_policy.rb +90 -0
- data/lib/aws/iam/user_policy_collection.rb +45 -0
- data/lib/aws/iam/virtual_mfa_device.rb +139 -0
- data/lib/aws/iam/virtual_mfa_device_collection.rb +73 -0
- data/lib/aws/import_export.rb +73 -0
- data/lib/aws/import_export/client.rb +109 -0
- data/lib/aws/import_export/config.rb +19 -0
- data/lib/aws/import_export/errors.rb +22 -0
- data/lib/aws/import_export/request.rb +23 -0
- data/lib/aws/ops_works.rb +30 -0
- data/lib/aws/ops_works/client.rb +713 -0
- data/lib/aws/ops_works/config.rb +18 -0
- data/lib/aws/ops_works/errors.rb +20 -0
- data/lib/aws/ops_works/request.rb +27 -0
- data/lib/aws/rails.rb +195 -0
- data/lib/aws/rds.rb +71 -0
- data/lib/aws/rds/client.rb +2228 -0
- data/lib/aws/rds/config.rb +18 -0
- data/lib/aws/rds/db_instance.rb +205 -0
- data/lib/aws/rds/db_instance_collection.rb +75 -0
- data/lib/aws/rds/db_snapshot.rb +163 -0
- data/lib/aws/rds/db_snapshot_collection.rb +89 -0
- data/lib/aws/rds/errors.rb +22 -0
- data/lib/aws/rds/request.rb +23 -0
- data/lib/aws/record.rb +116 -0
- data/lib/aws/record/abstract_base.rb +701 -0
- data/lib/aws/record/attributes.rb +384 -0
- data/lib/aws/record/conversion.rb +38 -0
- data/lib/aws/record/dirty_tracking.rb +285 -0
- data/lib/aws/record/errors.rb +143 -0
- data/lib/aws/record/exceptions.rb +48 -0
- data/lib/aws/record/hash_model.rb +161 -0
- data/lib/aws/record/hash_model/attributes.rb +197 -0
- data/lib/aws/record/hash_model/finder_methods.rb +172 -0
- data/lib/aws/record/hash_model/scope.rb +108 -0
- data/lib/aws/record/model.rb +427 -0
- data/lib/aws/record/model/attributes.rb +379 -0
- data/lib/aws/record/model/finder_methods.rb +232 -0
- data/lib/aws/record/model/scope.rb +213 -0
- data/lib/aws/record/naming.rb +31 -0
- data/lib/aws/record/scope.rb +199 -0
- data/lib/aws/record/validations.rb +712 -0
- data/lib/aws/record/validator.rb +246 -0
- data/lib/aws/record/validators/acceptance.rb +51 -0
- data/lib/aws/record/validators/block.rb +38 -0
- data/lib/aws/record/validators/confirmation.rb +43 -0
- data/lib/aws/record/validators/count.rb +108 -0
- data/lib/aws/record/validators/exclusion.rb +43 -0
- data/lib/aws/record/validators/format.rb +57 -0
- data/lib/aws/record/validators/inclusion.rb +56 -0
- data/lib/aws/record/validators/length.rb +107 -0
- data/lib/aws/record/validators/method.rb +33 -0
- data/lib/aws/record/validators/numericality.rb +138 -0
- data/lib/aws/record/validators/presence.rb +45 -0
- data/lib/aws/redshift.rb +52 -0
- data/lib/aws/redshift/client.rb +1291 -0
- data/lib/aws/redshift/config.rb +18 -0
- data/lib/aws/redshift/errors.rb +22 -0
- data/lib/aws/redshift/request.rb +29 -0
- data/lib/aws/route_53.rb +87 -0
- data/lib/aws/route_53/change_batch.rb +159 -0
- data/lib/aws/route_53/change_info.rb +72 -0
- data/lib/aws/route_53/client.rb +387 -0
- data/lib/aws/route_53/config.rb +18 -0
- data/lib/aws/route_53/errors.rb +22 -0
- data/lib/aws/route_53/hosted_zone.rb +111 -0
- data/lib/aws/route_53/hosted_zone_collection.rb +100 -0
- data/lib/aws/route_53/request.rb +23 -0
- data/lib/aws/route_53/resource_record_set.rb +237 -0
- data/lib/aws/route_53/resource_record_set_collection.rb +110 -0
- data/lib/aws/s3.rb +155 -0
- data/lib/aws/s3/access_control_list.rb +257 -0
- data/lib/aws/s3/acl_object.rb +264 -0
- data/lib/aws/s3/acl_options.rb +204 -0
- data/lib/aws/s3/bucket.rb +742 -0
- data/lib/aws/s3/bucket_collection.rb +160 -0
- data/lib/aws/s3/bucket_lifecycle_configuration.rb +458 -0
- data/lib/aws/s3/bucket_tag_collection.rb +109 -0
- data/lib/aws/s3/bucket_version_collection.rb +77 -0
- data/lib/aws/s3/cipher_io.rb +119 -0
- data/lib/aws/s3/client.rb +1700 -0
- data/lib/aws/s3/client/xml.rb +231 -0
- data/lib/aws/s3/config.rb +36 -0
- data/lib/aws/s3/cors_rule.rb +106 -0
- data/lib/aws/s3/cors_rule_collection.rb +192 -0
- data/lib/aws/s3/data_options.rb +185 -0
- data/lib/aws/s3/encryption_utils.rb +139 -0
- data/lib/aws/s3/errors.rb +94 -0
- data/lib/aws/s3/multipart_upload.rb +320 -0
- data/lib/aws/s3/multipart_upload_collection.rb +68 -0
- data/lib/aws/s3/object_collection.rb +355 -0
- data/lib/aws/s3/object_metadata.rb +96 -0
- data/lib/aws/s3/object_upload_collection.rb +77 -0
- data/lib/aws/s3/object_version.rb +148 -0
- data/lib/aws/s3/object_version_collection.rb +89 -0
- data/lib/aws/s3/paginated_collection.rb +75 -0
- data/lib/aws/s3/policy.rb +74 -0
- data/lib/aws/s3/prefix_and_delimiter_collection.rb +47 -0
- data/lib/aws/s3/prefixed_collection.rb +81 -0
- data/lib/aws/s3/presigned_post.rb +555 -0
- data/lib/aws/s3/request.rb +201 -0
- data/lib/aws/s3/s3_object.rb +1690 -0
- data/lib/aws/s3/tree.rb +118 -0
- data/lib/aws/s3/tree/branch_node.rb +68 -0
- data/lib/aws/s3/tree/child_collection.rb +104 -0
- data/lib/aws/s3/tree/leaf_node.rb +94 -0
- data/lib/aws/s3/tree/node.rb +22 -0
- data/lib/aws/s3/tree/parent.rb +87 -0
- data/lib/aws/s3/uploaded_part.rb +80 -0
- data/lib/aws/s3/uploaded_part_collection.rb +84 -0
- data/lib/aws/s3/website_configuration.rb +102 -0
- data/lib/aws/simple_db.rb +219 -0
- data/lib/aws/simple_db/attribute.rb +154 -0
- data/lib/aws/simple_db/attribute_collection.rb +231 -0
- data/lib/aws/simple_db/client.rb +287 -0
- data/lib/aws/simple_db/config.rb +20 -0
- data/lib/aws/simple_db/consistent_read_option.rb +42 -0
- data/lib/aws/simple_db/delete_attributes.rb +62 -0
- data/lib/aws/simple_db/domain.rb +121 -0
- data/lib/aws/simple_db/domain_collection.rb +86 -0
- data/lib/aws/simple_db/domain_metadata.rb +110 -0
- data/lib/aws/simple_db/errors.rb +55 -0
- data/lib/aws/simple_db/expect_condition_option.rb +45 -0
- data/lib/aws/simple_db/item.rb +93 -0
- data/lib/aws/simple_db/item_collection.rb +649 -0
- data/lib/aws/simple_db/item_data.rb +73 -0
- data/lib/aws/simple_db/put_attributes.rb +60 -0
- data/lib/aws/simple_db/request.rb +23 -0
- data/lib/aws/simple_email_service.rb +428 -0
- data/lib/aws/simple_email_service/client.rb +276 -0
- data/lib/aws/simple_email_service/config.rb +19 -0
- data/lib/aws/simple_email_service/email_address_collection.rb +69 -0
- data/lib/aws/simple_email_service/errors.rb +22 -0
- data/lib/aws/simple_email_service/identity.rb +209 -0
- data/lib/aws/simple_email_service/identity_collection.rb +81 -0
- data/lib/aws/simple_email_service/quotas.rb +64 -0
- data/lib/aws/simple_email_service/request.rb +27 -0
- data/lib/aws/simple_workflow.rb +228 -0
- data/lib/aws/simple_workflow/activity_task.rb +173 -0
- data/lib/aws/simple_workflow/activity_task_collection.rb +123 -0
- data/lib/aws/simple_workflow/activity_type.rb +131 -0
- data/lib/aws/simple_workflow/activity_type_collection.rb +93 -0
- data/lib/aws/simple_workflow/client.rb +1204 -0
- data/lib/aws/simple_workflow/config.rb +18 -0
- data/lib/aws/simple_workflow/count.rb +49 -0
- data/lib/aws/simple_workflow/decision_task.rb +603 -0
- data/lib/aws/simple_workflow/decision_task_collection.rb +225 -0
- data/lib/aws/simple_workflow/domain.rb +122 -0
- data/lib/aws/simple_workflow/domain_collection.rb +169 -0
- data/lib/aws/simple_workflow/errors.rb +20 -0
- data/lib/aws/simple_workflow/history_event.rb +276 -0
- data/lib/aws/simple_workflow/history_event_collection.rb +76 -0
- data/lib/aws/simple_workflow/option_formatters.rb +82 -0
- data/lib/aws/simple_workflow/request.rb +33 -0
- data/lib/aws/simple_workflow/resource.rb +94 -0
- data/lib/aws/simple_workflow/type.rb +89 -0
- data/lib/aws/simple_workflow/type_collection.rb +140 -0
- data/lib/aws/simple_workflow/workflow_execution.rb +386 -0
- data/lib/aws/simple_workflow/workflow_execution_collection.rb +617 -0
- data/lib/aws/simple_workflow/workflow_type.rb +177 -0
- data/lib/aws/simple_workflow/workflow_type_collection.rb +91 -0
- data/lib/aws/sns.rb +76 -0
- data/lib/aws/sns/client.rb +266 -0
- data/lib/aws/sns/config.rb +18 -0
- data/lib/aws/sns/errors.rb +22 -0
- data/lib/aws/sns/has_delivery_policy.rb +68 -0
- data/lib/aws/sns/policy.rb +47 -0
- data/lib/aws/sns/request.rb +23 -0
- data/lib/aws/sns/subscription.rb +144 -0
- data/lib/aws/sns/subscription_collection.rb +78 -0
- data/lib/aws/sns/topic.rb +403 -0
- data/lib/aws/sns/topic_collection.rb +62 -0
- data/lib/aws/sns/topic_subscription_collection.rb +54 -0
- data/lib/aws/sqs.rb +81 -0
- data/lib/aws/sqs/client.rb +258 -0
- data/lib/aws/sqs/config.rb +18 -0
- data/lib/aws/sqs/errors.rb +101 -0
- data/lib/aws/sqs/policy.rb +48 -0
- data/lib/aws/sqs/queue.rb +764 -0
- data/lib/aws/sqs/queue_collection.rb +174 -0
- data/lib/aws/sqs/received_message.rb +181 -0
- data/lib/aws/sqs/received_sns_message.rb +116 -0
- data/lib/aws/sqs/request.rb +67 -0
- data/lib/aws/storage_gateway.rb +73 -0
- data/lib/aws/storage_gateway/client.rb +472 -0
- data/lib/aws/storage_gateway/config.rb +18 -0
- data/lib/aws/storage_gateway/errors.rb +22 -0
- data/lib/aws/storage_gateway/request.rb +28 -0
- data/lib/aws/sts.rb +163 -0
- data/lib/aws/sts/client.rb +157 -0
- data/lib/aws/sts/config.rb +18 -0
- data/lib/aws/sts/errors.rb +22 -0
- data/lib/aws/sts/federated_session.rb +56 -0
- data/lib/aws/sts/policy.rb +30 -0
- data/lib/aws/sts/request.rb +29 -0
- data/lib/aws/sts/session.rb +48 -0
- data/lib/aws/version.rb +18 -0
- data/lib/net/http/connection_pool.rb +226 -0
- data/lib/net/http/connection_pool/connection.rb +189 -0
- data/lib/net/http/connection_pool/session.rb +126 -0
- data/rails/init.rb +15 -0
- metadata +632 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
3
|
+
# may not use this file except in compliance with the License. A copy of
|
|
4
|
+
# the License is located at
|
|
5
|
+
#
|
|
6
|
+
# http://aws.amazon.com/apache2.0/
|
|
7
|
+
#
|
|
8
|
+
# or in the "license" file accompanying this file. This file is
|
|
9
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
10
|
+
# ANY KIND, either express or implied. See the License for the specific
|
|
11
|
+
# language governing permissions and limitations under the License.
|
|
12
|
+
|
|
13
|
+
module AWS
|
|
14
|
+
class IAM
|
|
15
|
+
|
|
16
|
+
# This is the primary interface for uploading X.509 signing certificates
|
|
17
|
+
# to an AWS account or an IAM user.
|
|
18
|
+
#
|
|
19
|
+
# iam = AWS::IAM.new
|
|
20
|
+
#
|
|
21
|
+
# # upload a certificate for the AWS account:
|
|
22
|
+
# iam.signing_certificates.upload(<<-CERT)
|
|
23
|
+
# -----BEGIN CERTIFICATE-----
|
|
24
|
+
# MIICdzCCAeCgAwIBAgIFGS4fY6owDQYJKoZIhvcNAQEFBQAwUzELMAkGA1UEBhMC
|
|
25
|
+
# ......
|
|
26
|
+
# Glli79yh87PRi0vNDlFEoHXNynkvC/c4TiWruZ4haM9BR9EdWr1DBNNu73ui093K
|
|
27
|
+
# F9TbdXSWdgMl7E0=
|
|
28
|
+
# -----END CERTIFICATE-----
|
|
29
|
+
# CERT
|
|
30
|
+
#
|
|
31
|
+
# If you want to work with an IAM user's certificates just use the
|
|
32
|
+
# signing certificate interface on a user:
|
|
33
|
+
#
|
|
34
|
+
# user = iam.users['someuser']
|
|
35
|
+
# user.signing_certificates.upload(cert_body)
|
|
36
|
+
#
|
|
37
|
+
class SigningCertificateCollection
|
|
38
|
+
|
|
39
|
+
include Collection
|
|
40
|
+
|
|
41
|
+
# @param [Hash] options
|
|
42
|
+
# @option options [User] :user (nil) When +:user+ is provided the
|
|
43
|
+
# collection will represents the signing certificates belonging only
|
|
44
|
+
# to that user. When +:user+ is omitted the collection will manage
|
|
45
|
+
# root credentials on the AWS account (instead those belonging to a
|
|
46
|
+
# particular user).
|
|
47
|
+
def initialize options = {}
|
|
48
|
+
@user = options[:user]
|
|
49
|
+
@user ? super(@user, options) : super(options)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# @return [User,nil] Returns the user this collection belongs to.
|
|
53
|
+
# Returns +nil+ if the collection represents the root credentials
|
|
54
|
+
# for the account. If the configured credentials belong to an
|
|
55
|
+
# IAM user, then that user is the implied owner.
|
|
56
|
+
attr_reader :user
|
|
57
|
+
|
|
58
|
+
# @param [String] certificate_body The contents of the signing
|
|
59
|
+
# certificate.
|
|
60
|
+
# @return [SigningCertificate] Returns the newly created signing
|
|
61
|
+
# certificate.
|
|
62
|
+
def upload certificate_body
|
|
63
|
+
|
|
64
|
+
options = {}
|
|
65
|
+
options[:certificate_body] = certificate_body
|
|
66
|
+
options[:user_name] = user.name if user
|
|
67
|
+
|
|
68
|
+
resp = client.upload_signing_certificate(options)
|
|
69
|
+
|
|
70
|
+
SigningCertificate.new_from(:upload_signing_certificate,
|
|
71
|
+
resp.certificate, resp.certificate.certificate_id, new_options)
|
|
72
|
+
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
alias_method :create, :upload
|
|
76
|
+
|
|
77
|
+
# @param [String] certificate_id The ID of the signing certificate.
|
|
78
|
+
# @return [SigningCertificate] Returns a reference to the signing
|
|
79
|
+
# certificate with the given certificate ID.
|
|
80
|
+
def [] certificate_id
|
|
81
|
+
SigningCertificate.new(certificate_id.to_s, new_options)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Deletes all of the signing certificates from this collection.
|
|
85
|
+
# @return [nil]
|
|
86
|
+
def clear
|
|
87
|
+
each do |certificate|
|
|
88
|
+
certificate.delete
|
|
89
|
+
end
|
|
90
|
+
nil
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# Yields once for each signing certificate.
|
|
94
|
+
#
|
|
95
|
+
# You can limit the number of certificates yielded using +:limit+.
|
|
96
|
+
#
|
|
97
|
+
# @param [Hash] options
|
|
98
|
+
# @option options [Integer] :limit The maximum number of certificates
|
|
99
|
+
# to yield.
|
|
100
|
+
# @option options [Integer] :batch_size The maximum number of
|
|
101
|
+
# certificates received each service reqeust.
|
|
102
|
+
# @yieldparam [SigningCertificate] signing_certificate
|
|
103
|
+
# @return [nil]
|
|
104
|
+
def each options = {}, &block
|
|
105
|
+
each_options = options.dup
|
|
106
|
+
each_options[:user_name] = user.name if user
|
|
107
|
+
super(each_options, &block)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# @private
|
|
111
|
+
protected
|
|
112
|
+
def each_item response, &block
|
|
113
|
+
response.certificates.each do |item|
|
|
114
|
+
|
|
115
|
+
cert = SigningCertificate.new_from(:list_signing_certificates,
|
|
116
|
+
item, item.certificate_id, new_options)
|
|
117
|
+
|
|
118
|
+
yield(cert)
|
|
119
|
+
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# @private
|
|
124
|
+
protected
|
|
125
|
+
def new_options
|
|
126
|
+
user ? { :user => user } : { :config => config }
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
end
|
data/lib/aws/iam/user.rb
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
|
5
|
+
# the License is located at
|
|
6
|
+
#
|
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
|
8
|
+
#
|
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
|
12
|
+
# language governing permissions and limitations under the License.
|
|
13
|
+
|
|
14
|
+
module AWS
|
|
15
|
+
class IAM
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
# Represents an IAM User. Each AWS account can have many users. Users
|
|
19
|
+
# can be organized (optionally) into groups. Users (and groups) can be
|
|
20
|
+
# given policies that affect that they can do.
|
|
21
|
+
#
|
|
22
|
+
# == Creating A User
|
|
23
|
+
#
|
|
24
|
+
# iam = AWS::IAM.new
|
|
25
|
+
#
|
|
26
|
+
# user = iam.users.create('johndoe')
|
|
27
|
+
#
|
|
28
|
+
#
|
|
29
|
+
# == Renaming a User
|
|
30
|
+
#
|
|
31
|
+
# You can only edit a user's name and path (both of which will modify
|
|
32
|
+
# the user's ARN).
|
|
33
|
+
#
|
|
34
|
+
# user = iam.users['johndoe']
|
|
35
|
+
# user.name = 'newname'
|
|
36
|
+
#
|
|
37
|
+
# == User Path
|
|
38
|
+
#
|
|
39
|
+
# When you create a user you can assign a path. Paths must begin and
|
|
40
|
+
# end with a forward slash (/).
|
|
41
|
+
#
|
|
42
|
+
# user = iam.users.create('newuser', :path => '/developers/ruby/')
|
|
43
|
+
#
|
|
44
|
+
# Paths are a useful tool for organizing/tagging users. You can later
|
|
45
|
+
# enumerate users by their path prefixes:
|
|
46
|
+
#
|
|
47
|
+
# iam.users.each(:path_prefix => '/developers').each do |developer|
|
|
48
|
+
# puts developer.name
|
|
49
|
+
# end
|
|
50
|
+
#
|
|
51
|
+
# == Login Profile
|
|
52
|
+
#
|
|
53
|
+
# A login profile is required for an IAM user to use the AWS Management
|
|
54
|
+
# console (web interface). See {LoginProfile} for more information.
|
|
55
|
+
#
|
|
56
|
+
# == Deleting Users
|
|
57
|
+
#
|
|
58
|
+
# In order to delete a user you must first remove it from all of its
|
|
59
|
+
# groups and delete all of its signing certificates. Once this is done:
|
|
60
|
+
#
|
|
61
|
+
# @attr [String] user_name
|
|
62
|
+
#
|
|
63
|
+
# @attr [String] path
|
|
64
|
+
#
|
|
65
|
+
# @attr_reader [String] id
|
|
66
|
+
#
|
|
67
|
+
# @attr_reader [DateTime] create_date
|
|
68
|
+
#
|
|
69
|
+
# @attr_reader [String] arn
|
|
70
|
+
#
|
|
71
|
+
class User < Resource
|
|
72
|
+
|
|
73
|
+
prefix_update_attributes
|
|
74
|
+
|
|
75
|
+
# @param [String] name The IAM user name for this user.
|
|
76
|
+
# @param [Hash] options
|
|
77
|
+
def initialize name, options = {}
|
|
78
|
+
options[:name] = name
|
|
79
|
+
super(options)
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# @attr [String] The IAM user name.
|
|
83
|
+
mutable_attribute :name, :static => true, :from => :user_name
|
|
84
|
+
|
|
85
|
+
# @attr_reader [String] The user's unique ID.
|
|
86
|
+
attribute :id, :static => true, :from => :user_id
|
|
87
|
+
|
|
88
|
+
# @attr_reader [Time] When the user was created.
|
|
89
|
+
attribute :create_date, :static => true
|
|
90
|
+
|
|
91
|
+
# @attr_reader [String] The user's ARN (Amazon Resource Name).
|
|
92
|
+
attribute :arn
|
|
93
|
+
|
|
94
|
+
# @attr [String] The path for this user. Paths are used to
|
|
95
|
+
# identify which division or part of an organization the user
|
|
96
|
+
# belongs to.
|
|
97
|
+
mutable_attribute :path
|
|
98
|
+
|
|
99
|
+
populates_from(:create_user, :get_user) do |resp|
|
|
100
|
+
resp[:user] if resp[:user][:user_name] == name
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
populates_from(:list_users, :get_group) do |resp|
|
|
104
|
+
resp[:users].find{|u| u[:user_name] == name }
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Deletes this user.
|
|
108
|
+
# @return [nil]
|
|
109
|
+
def delete
|
|
110
|
+
client.delete_user(resource_options)
|
|
111
|
+
nil
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
# Deletes the current user, after:
|
|
115
|
+
# * deleting its login profile
|
|
116
|
+
# * removing it from all groups
|
|
117
|
+
# * deleting all of its access keys
|
|
118
|
+
# * deleting its mfa devices
|
|
119
|
+
# * deleting its signing certificates
|
|
120
|
+
def delete!
|
|
121
|
+
groups.clear
|
|
122
|
+
access_keys.clear
|
|
123
|
+
policies.clear
|
|
124
|
+
mfa_devices.clear
|
|
125
|
+
signing_certificates.clear
|
|
126
|
+
login_profile.delete if login_profile.exists?
|
|
127
|
+
delete
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# Returns a collection that represents all policies for this user.
|
|
131
|
+
#
|
|
132
|
+
# user.policies.each do |policy|
|
|
133
|
+
# puts policy.name
|
|
134
|
+
# end
|
|
135
|
+
#
|
|
136
|
+
# @return [PolicyCollection] Returns a collection that represents
|
|
137
|
+
# all policies for this user.
|
|
138
|
+
def policies
|
|
139
|
+
UserPolicyCollection.new(self)
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# Returns a collection that represents the signing certificates
|
|
143
|
+
# belonging to this user.
|
|
144
|
+
#
|
|
145
|
+
# user.signing_certificates.each do |cert|
|
|
146
|
+
# # ...
|
|
147
|
+
# end
|
|
148
|
+
#
|
|
149
|
+
# If you need to access the signing certificates of this AWS account,
|
|
150
|
+
# see {IAM#signing_certificates}.
|
|
151
|
+
#
|
|
152
|
+
# @return [SigningCertificateCollection] Returns a collection that
|
|
153
|
+
# represents signing certificates for this user.
|
|
154
|
+
def signing_certificates
|
|
155
|
+
SigningCertificateCollection.new(:user => self, :config => config)
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# @return [MFADeviceCollection] Returns a collection that represents
|
|
159
|
+
# all MFA devices assigned to this user.
|
|
160
|
+
def mfa_devices
|
|
161
|
+
MFADeviceCollection.new(self)
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
# A login profile is a user name and password that enables a
|
|
165
|
+
# user to log in to the {http://aws.amazon.com/console AWS
|
|
166
|
+
# Management Console}. The object returned by this method
|
|
167
|
+
# allows you to set or delete the password. For example:
|
|
168
|
+
#
|
|
169
|
+
# user.login_profile.password = "TheNewPassword"
|
|
170
|
+
#
|
|
171
|
+
# @return [LoginProfile] Returns the login profile for this
|
|
172
|
+
# user.
|
|
173
|
+
def login_profile
|
|
174
|
+
LoginProfile.new(self)
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
# Returns a collection that represents the access keys for this user.
|
|
178
|
+
#
|
|
179
|
+
# user.access_keys.each do |access_key|
|
|
180
|
+
# puts access_key.id
|
|
181
|
+
# end
|
|
182
|
+
#
|
|
183
|
+
# @return [AccessKeyCollection] Returns a collection that represents all
|
|
184
|
+
# access keys for this user.
|
|
185
|
+
def access_keys
|
|
186
|
+
AccessKeyCollection.new(:user => self)
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
# Returns a collection that includes all of the groups the user
|
|
190
|
+
# is in.
|
|
191
|
+
#
|
|
192
|
+
# @return [UserGroupCollection]
|
|
193
|
+
def groups
|
|
194
|
+
UserGroupCollection.new(self)
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
# @private
|
|
198
|
+
protected
|
|
199
|
+
def resource_identifiers
|
|
200
|
+
[[:user_name, name]]
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
end
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Copyright 2011-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License"). You
|
|
4
|
+
# may not use this file except in compliance with the License. A copy of
|
|
5
|
+
# the License is located at
|
|
6
|
+
#
|
|
7
|
+
# http://aws.amazon.com/apache2.0/
|
|
8
|
+
#
|
|
9
|
+
# or in the "license" file accompanying this file. This file is
|
|
10
|
+
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
|
|
11
|
+
# ANY KIND, either express or implied. See the License for the specific
|
|
12
|
+
# language governing permissions and limitations under the License.
|
|
13
|
+
|
|
14
|
+
module AWS
|
|
15
|
+
class IAM
|
|
16
|
+
|
|
17
|
+
# A collection that provides access to IAM users belonging to this
|
|
18
|
+
# account.
|
|
19
|
+
#
|
|
20
|
+
# iam = AWS::IAM.new
|
|
21
|
+
# users = iam.users
|
|
22
|
+
#
|
|
23
|
+
# == Creating A User
|
|
24
|
+
#
|
|
25
|
+
# To create an IAM user you need only provide a user name.
|
|
26
|
+
#
|
|
27
|
+
# user = users.create('username')
|
|
28
|
+
#
|
|
29
|
+
# You can also provide an optional +:path+ that can be used to organize
|
|
30
|
+
# users.
|
|
31
|
+
#
|
|
32
|
+
# user = users.create('johndoe', :path => '/staff/customer_support/')
|
|
33
|
+
#
|
|
34
|
+
# == Getting a User by Name
|
|
35
|
+
#
|
|
36
|
+
# You can get a referene to a user by using array notation:
|
|
37
|
+
#
|
|
38
|
+
# user = users['username']
|
|
39
|
+
#
|
|
40
|
+
# == Enumerating Users
|
|
41
|
+
#
|
|
42
|
+
# A user collection can also be used to enumerate users:
|
|
43
|
+
#
|
|
44
|
+
# users.each do |user|
|
|
45
|
+
# puts user.name
|
|
46
|
+
# end
|
|
47
|
+
#
|
|
48
|
+
# == Path Prefixes
|
|
49
|
+
#
|
|
50
|
+
# You can also find/enumerate users who's path begins with a given prefix:
|
|
51
|
+
#
|
|
52
|
+
# users.each(:path_prefix => '/staff/developers/ruby').each do |ruby_dev|
|
|
53
|
+
# puts "#{ruby_dev.name} is awesome!"
|
|
54
|
+
# end
|
|
55
|
+
#
|
|
56
|
+
class UserCollection
|
|
57
|
+
|
|
58
|
+
include Collection::WithPrefix
|
|
59
|
+
|
|
60
|
+
# @param [String] name Name of the user to create.
|
|
61
|
+
# @option options [String] :path ('/') The path for the user name.
|
|
62
|
+
# For more information about paths, see
|
|
63
|
+
# {Identifiers for IAM Entities}[http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html]
|
|
64
|
+
# @return [User] Returns the newly created user.
|
|
65
|
+
def create name, options = {}
|
|
66
|
+
create_opts = {}
|
|
67
|
+
create_opts[:user_name] = name
|
|
68
|
+
create_opts[:path] = options[:path] if options[:path]
|
|
69
|
+
resp = client.create_user(create_opts)
|
|
70
|
+
User.new_from(:create_user, resp.user,
|
|
71
|
+
resp.user.user_name, :config => config)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Returns a reference to the user with the given name:
|
|
75
|
+
#
|
|
76
|
+
# user = iam.users['username']
|
|
77
|
+
#
|
|
78
|
+
# @param [String] name Name of the user to return a reference for.
|
|
79
|
+
# @return [User] Returns a reference to the named user.
|
|
80
|
+
def [] name
|
|
81
|
+
User.new(name.to_s, :config => config)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Yields once for each user.
|
|
85
|
+
#
|
|
86
|
+
# You can limit the number of users yielded using +:limit+ and
|
|
87
|
+
# +:path_prefix+.
|
|
88
|
+
#
|
|
89
|
+
# @param [Hash] options
|
|
90
|
+
#
|
|
91
|
+
# @option options [String] :path_prefix ('/') A path prefix that
|
|
92
|
+
# filters according to the path of the user.
|
|
93
|
+
#
|
|
94
|
+
# @option options [Integer] :limit The maximum number of users to yield.
|
|
95
|
+
#
|
|
96
|
+
# @option options [Integer] :batch_size The maximum number of users
|
|
97
|
+
# to retrieve with each service request.
|
|
98
|
+
#
|
|
99
|
+
# @yieldparam [User] user
|
|
100
|
+
# @return [nil]
|
|
101
|
+
def each options = {}, &block
|
|
102
|
+
super(options, &block)
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# Returns an enumerable object for this collection. This can be
|
|
106
|
+
# useful if you want to call an enumerable method that does
|
|
107
|
+
# not accept options (e.g. +collect+, +first+, etc).
|
|
108
|
+
#
|
|
109
|
+
# users.enumerator(:path_prefix => '/admin').collect(&:name)
|
|
110
|
+
#
|
|
111
|
+
# @param (see #each)
|
|
112
|
+
# @option (see #each)
|
|
113
|
+
# @return [Enumerator]
|
|
114
|
+
def enumerator options = {}
|
|
115
|
+
super(options)
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
# @private
|
|
119
|
+
protected
|
|
120
|
+
def each_item response, &block
|
|
121
|
+
response.users.each do |item|
|
|
122
|
+
|
|
123
|
+
user = User.new_from(:list_users, item,
|
|
124
|
+
item.user_name, :config => config)
|
|
125
|
+
|
|
126
|
+
yield(user)
|
|
127
|
+
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
end
|
|
132
|
+
end
|
|
133
|
+
end
|