aws-sdk-v1 1.52.0
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.
- checksums.yaml +7 -0
- data/.yardopts +7 -0
- data/LICENSE.txt +12 -0
- data/README.md +337 -0
- data/bin/aws-rb +179 -0
- data/ca-bundle.crt +3554 -0
- data/endpoints.json +1671 -0
- data/lib/aws-sdk-v1.rb +2 -0
- data/lib/aws-sdk.rb +1 -0
- data/lib/aws.rb +14 -0
- data/lib/aws/api_config/AutoScaling-2011-01-01.yml +1070 -0
- data/lib/aws/api_config/CloudFormation-2010-05-15.yml +372 -0
- data/lib/aws/api_config/CloudFront-2013-05-12.yml +2448 -0
- data/lib/aws/api_config/CloudFront-2013-08-26.yml +2599 -0
- data/lib/aws/api_config/CloudFront-2013-09-27.yml +2765 -0
- data/lib/aws/api_config/CloudFront-2013-11-11.yml +2886 -0
- data/lib/aws/api_config/CloudFront-2013-11-22.yml +2918 -0
- data/lib/aws/api_config/CloudFront-2014-01-31.yml +2934 -0
- data/lib/aws/api_config/CloudFront-2014-05-31.yml +3100 -0
- data/lib/aws/api_config/CloudSearch-2011-02-01.yml +681 -0
- data/lib/aws/api_config/CloudSearch-2013-01-01.yml +1164 -0
- data/lib/aws/api_config/CloudTrail-2013-11-01.yml +130 -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/DirectConnect-2012-10-25.yml +735 -0
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +1168 -0
- data/lib/aws/api_config/DynamoDB-2012-08-10.yml +2105 -0
- data/lib/aws/api_config/EC2-2013-08-15.yml +4708 -0
- data/lib/aws/api_config/EC2-2013-10-01.yml +4726 -0
- data/lib/aws/api_config/EC2-2013-10-15.yml +4651 -0
- data/lib/aws/api_config/EC2-2014-02-01.yml +4755 -0
- data/lib/aws/api_config/EC2-2014-05-01.yml +4812 -0
- data/lib/aws/api_config/ELB-2012-06-01.yml +766 -0
- data/lib/aws/api_config/EMR-2009-03-31.yml +972 -0
- data/lib/aws/api_config/ElastiCache-2013-06-15.yml +1188 -0
- data/lib/aws/api_config/ElastiCache-2014-03-24.yml +1375 -0
- data/lib/aws/api_config/ElastiCache-2014-07-15.yml +1385 -0
- data/lib/aws/api_config/ElasticBeanstalk-2010-12-01.yml +854 -0
- data/lib/aws/api_config/ElasticTranscoder-2012-09-25.yml +3082 -0
- data/lib/aws/api_config/Glacier-2012-06-01.yml +649 -0
- data/lib/aws/api_config/IAM-2010-05-08.yml +1339 -0
- data/lib/aws/api_config/ImportExport-2010-06-01.yml +109 -0
- data/lib/aws/api_config/Kinesis-2013-12-02.yml +201 -0
- data/lib/aws/api_config/OpsWorks-2013-02-18.yml +2025 -0
- data/lib/aws/api_config/RDS-2013-05-15.yml +2464 -0
- data/lib/aws/api_config/RDS-2013-09-09.yml +2640 -0
- data/lib/aws/api_config/Redshift-2012-12-01.yml +2161 -0
- data/lib/aws/api_config/Route53-2012-12-12.yml +547 -0
- data/lib/aws/api_config/Route53-2013-04-01.yml +889 -0
- data/lib/aws/api_config/SNS-2010-03-31.yml +448 -0
- data/lib/aws/api_config/SQS-2012-11-05.yml +404 -0
- data/lib/aws/api_config/STS-2011-06-15.yml +151 -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 +2388 -0
- data/lib/aws/api_config/StorageGateway-2012-06-30.yml +748 -0
- data/lib/aws/api_config/StorageGateway-2013-06-30.yml +1025 -0
- data/lib/aws/api_config/Support-2013-04-15.yml +489 -0
- data/lib/aws/auto_scaling.rb +163 -0
- data/lib/aws/auto_scaling/activity.rb +102 -0
- data/lib/aws/auto_scaling/activity_collection.rb +81 -0
- data/lib/aws/auto_scaling/client.rb +48 -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 +421 -0
- data/lib/aws/auto_scaling/group_collection.rb +96 -0
- data/lib/aws/auto_scaling/group_options.rb +155 -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 +162 -0
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +160 -0
- data/lib/aws/auto_scaling/notification_configuration.rb +89 -0
- data/lib/aws/auto_scaling/notification_configuration_collection.rb +183 -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 +65 -0
- data/lib/aws/auto_scaling/scheduled_action.rb +141 -0
- data/lib/aws/auto_scaling/scheduled_action_collection.rb +202 -0
- data/lib/aws/auto_scaling/tag.rb +59 -0
- data/lib/aws/auto_scaling/tag_collection.rb +114 -0
- data/lib/aws/cloud_formation.rb +272 -0
- data/lib/aws/cloud_formation/client.rb +48 -0
- data/lib/aws/cloud_formation/config.rb +18 -0
- data/lib/aws/cloud_formation/errors.rb +22 -0
- data/lib/aws/cloud_formation/stack.rb +266 -0
- data/lib/aws/cloud_formation/stack_collection.rb +232 -0
- data/lib/aws/cloud_formation/stack_event.rb +73 -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 +83 -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 +72 -0
- data/lib/aws/cloud_front/client.rb +57 -0
- data/lib/aws/cloud_front/config.rb +18 -0
- data/lib/aws/cloud_front/errors.rb +22 -0
- data/lib/aws/cloud_search.rb +73 -0
- data/lib/aws/cloud_search/client.rb +40 -0
- data/lib/aws/cloud_search/config.rb +18 -0
- data/lib/aws/cloud_search/errors.rb +22 -0
- data/lib/aws/cloud_trail.rb +72 -0
- data/lib/aws/cloud_trail/client.rb +35 -0
- data/lib/aws/cloud_trail/config.rb +18 -0
- data/lib/aws/cloud_trail/errors.rb +22 -0
- data/lib/aws/cloud_watch.rb +118 -0
- data/lib/aws/cloud_watch/alarm.rb +293 -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 +40 -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 +129 -0
- data/lib/aws/cloud_watch/metric_statistics.rb +69 -0
- data/lib/aws/core.rb +716 -0
- data/lib/aws/core/async_handle.rb +90 -0
- data/lib/aws/core/cacheable.rb +77 -0
- data/lib/aws/core/client.rb +787 -0
- data/lib/aws/core/collection.rb +263 -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 +542 -0
- data/lib/aws/core/credential_providers.rb +639 -0
- data/lib/aws/core/data.rb +247 -0
- data/lib/aws/core/deprecations.rb +84 -0
- data/lib/aws/core/endpoints.rb +37 -0
- data/lib/aws/core/http/connection_pool.rb +369 -0
- data/lib/aws/core/http/curb_handler.rb +148 -0
- data/lib/aws/core/http/handler.rb +89 -0
- data/lib/aws/core/http/net_http_handler.rb +144 -0
- data/lib/aws/core/http/patch.rb +102 -0
- data/lib/aws/core/http/request.rb +259 -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/ini_parser.rb +42 -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 +108 -0
- data/lib/aws/core/log_formatter.rb +428 -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 +62 -0
- data/lib/aws/core/naming.rb +30 -0
- data/lib/aws/core/option_grammar.rb +738 -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 +941 -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/region.rb +85 -0
- data/lib/aws/core/region_collection.rb +80 -0
- data/lib/aws/core/resource.rb +413 -0
- data/lib/aws/core/resource_cache.rb +40 -0
- data/lib/aws/core/response.rb +215 -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 +154 -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 +83 -0
- data/lib/aws/core/signers/base.rb +46 -0
- data/lib/aws/core/signers/cloud_front.rb +56 -0
- data/lib/aws/core/signers/s3.rb +159 -0
- data/lib/aws/core/signers/version_2.rb +72 -0
- data/lib/aws/core/signers/version_3.rb +86 -0
- data/lib/aws/core/signers/version_3_https.rb +61 -0
- data/lib/aws/core/signers/version_4.rb +228 -0
- data/lib/aws/core/signers/version_4/chunk_signed_stream.rb +191 -0
- data/lib/aws/core/uri_escape.rb +44 -0
- data/lib/aws/core/xml/frame.rb +245 -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 +56 -0
- data/lib/aws/core/xml/sax_handlers/ox.rb +41 -0
- data/lib/aws/core/xml/sax_handlers/rexml.rb +47 -0
- data/lib/aws/core/xml/stub.rb +123 -0
- data/lib/aws/data_pipeline.rb +72 -0
- data/lib/aws/data_pipeline/client.rb +36 -0
- data/lib/aws/data_pipeline/config.rb +18 -0
- data/lib/aws/data_pipeline/errors.rb +20 -0
- data/lib/aws/direct_connect.rb +73 -0
- data/lib/aws/direct_connect/client.rb +36 -0
- data/lib/aws/direct_connect/config.rb +18 -0
- data/lib/aws/direct_connect/errors.rb +22 -0
- data/lib/aws/dynamo_db.rb +230 -0
- data/lib/aws/dynamo_db/attribute_collection.rb +456 -0
- data/lib/aws/dynamo_db/batch_get.rb +213 -0
- data/lib/aws/dynamo_db/batch_write.rb +254 -0
- data/lib/aws/dynamo_db/binary.rb +35 -0
- data/lib/aws/dynamo_db/client.rb +129 -0
- data/lib/aws/dynamo_db/client/v20111205.rb +1266 -0
- data/lib/aws/dynamo_db/client/v20120810.rb +1409 -0
- data/lib/aws/dynamo_db/client_v2.rb +44 -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 +856 -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/resource.rb +33 -0
- data/lib/aws/dynamo_db/table.rb +492 -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 +428 -0
- data/lib/aws/ec2/attachment.rb +135 -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 +154 -0
- data/lib/aws/ec2/collection.rb +36 -0
- data/lib/aws/ec2/config.rb +21 -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 +209 -0
- data/lib/aws/ec2/elastic_ip_collection.rb +93 -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 +87 -0
- data/lib/aws/ec2/has_permissions.rb +44 -0
- data/lib/aws/ec2/image.rb +270 -0
- data/lib/aws/ec2/image_collection.rb +219 -0
- data/lib/aws/ec2/instance.rb +803 -0
- data/lib/aws/ec2/instance_collection.rb +402 -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 +237 -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/reserved_instances.rb +57 -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 +45 -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 +482 -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 +133 -0
- data/lib/aws/ec2/snapshot.rb +143 -0
- data/lib/aws/ec2/snapshot_collection.rb +131 -0
- data/lib/aws/ec2/subnet.rb +161 -0
- data/lib/aws/ec2/subnet_collection.rb +119 -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 +67 -0
- data/lib/aws/ec2/tagged_item.rb +85 -0
- data/lib/aws/ec2/volume.rb +185 -0
- data/lib/aws/ec2/volume_collection.rb +102 -0
- data/lib/aws/ec2/vpc.rb +174 -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 +49 -0
- data/lib/aws/elastic_beanstalk/client.rb +36 -0
- data/lib/aws/elastic_beanstalk/config.rb +18 -0
- data/lib/aws/elastic_beanstalk/errors.rb +22 -0
- data/lib/aws/elastic_transcoder.rb +29 -0
- data/lib/aws/elastic_transcoder/client.rb +48 -0
- data/lib/aws/elastic_transcoder/config.rb +18 -0
- data/lib/aws/elastic_transcoder/errors.rb +23 -0
- data/lib/aws/elasticache.rb +49 -0
- data/lib/aws/elasticache/client.rb +41 -0
- data/lib/aws/elasticache/config.rb +18 -0
- data/lib/aws/elasticache/errors.rb +22 -0
- data/lib/aws/elb.rb +66 -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 +35 -0
- data/lib/aws/elb/config.rb +18 -0
- data/lib/aws/elb/errors.rb +26 -0
- data/lib/aws/elb/instance_collection.rb +168 -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 +280 -0
- data/lib/aws/elb/load_balancer_collection.rb +146 -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/emr.rb +87 -0
- data/lib/aws/emr/client.rb +35 -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 +307 -0
- data/lib/aws/emr/job_flow_collection.rb +183 -0
- data/lib/aws/errors.rb +162 -0
- data/lib/aws/glacier.rb +79 -0
- data/lib/aws/glacier/archive.rb +56 -0
- data/lib/aws/glacier/archive_collection.rb +146 -0
- data/lib/aws/glacier/client.rb +49 -0
- data/lib/aws/glacier/config.rb +19 -0
- data/lib/aws/glacier/errors.rb +22 -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 +408 -0
- data/lib/aws/iam/access_key.rb +185 -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 +49 -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 +111 -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/resource.rb +62 -0
- data/lib/aws/iam/server_certificate.rb +148 -0
- data/lib/aws/iam/server_certificate_collection.rb +138 -0
- data/lib/aws/iam/signing_certificate.rb +186 -0
- data/lib/aws/iam/signing_certificate_collection.rb +131 -0
- data/lib/aws/iam/user.rb +200 -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 +35 -0
- data/lib/aws/import_export/config.rb +19 -0
- data/lib/aws/import_export/errors.rb +22 -0
- data/lib/aws/kinesis.rb +53 -0
- data/lib/aws/kinesis/client.rb +35 -0
- data/lib/aws/kinesis/config.rb +18 -0
- data/lib/aws/kinesis/errors.rb +20 -0
- data/lib/aws/ops_works.rb +29 -0
- data/lib/aws/ops_works/client.rb +35 -0
- data/lib/aws/ops_works/config.rb +18 -0
- data/lib/aws/ops_works/errors.rb +20 -0
- data/lib/aws/rails.rb +195 -0
- data/lib/aws/rds.rb +70 -0
- data/lib/aws/rds/client.rb +42 -0
- data/lib/aws/rds/config.rb +18 -0
- data/lib/aws/rds/db_instance.rb +215 -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/record.rb +139 -0
- data/lib/aws/record/abstract_base.rb +689 -0
- data/lib/aws/record/attributes.rb +388 -0
- data/lib/aws/record/conversion.rb +38 -0
- data/lib/aws/record/dirty_tracking.rb +287 -0
- data/lib/aws/record/errors.rb +143 -0
- data/lib/aws/record/exceptions.rb +51 -0
- data/lib/aws/record/hash_model.rb +204 -0
- data/lib/aws/record/hash_model/attributes.rb +195 -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 +453 -0
- data/lib/aws/record/model/attributes.rb +377 -0
- data/lib/aws/record/model/finder_methods.rb +232 -0
- data/lib/aws/record/model/scope.rb +212 -0
- data/lib/aws/record/naming.rb +31 -0
- data/lib/aws/record/scope.rb +203 -0
- data/lib/aws/record/validations.rb +694 -0
- data/lib/aws/record/validator.rb +246 -0
- data/lib/aws/record/validators/acceptance.rb +49 -0
- data/lib/aws/record/validators/block.rb +36 -0
- data/lib/aws/record/validators/confirmation.rb +41 -0
- data/lib/aws/record/validators/count.rb +106 -0
- data/lib/aws/record/validators/exclusion.rb +41 -0
- data/lib/aws/record/validators/format.rb +55 -0
- data/lib/aws/record/validators/inclusion.rb +54 -0
- data/lib/aws/record/validators/length.rb +105 -0
- data/lib/aws/record/validators/method.rb +31 -0
- data/lib/aws/record/validators/numericality.rb +136 -0
- data/lib/aws/record/validators/presence.rb +43 -0
- data/lib/aws/redshift.rb +51 -0
- data/lib/aws/redshift/client.rb +35 -0
- data/lib/aws/redshift/config.rb +18 -0
- data/lib/aws/redshift/errors.rb +22 -0
- data/lib/aws/route_53.rb +86 -0
- data/lib/aws/route_53/change_batch.rb +161 -0
- data/lib/aws/route_53/change_info.rb +72 -0
- data/lib/aws/route_53/client.rb +38 -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 +134 -0
- data/lib/aws/route_53/hosted_zone_collection.rb +101 -0
- data/lib/aws/route_53/resource_record_set.rb +251 -0
- data/lib/aws/route_53/resource_record_set_collection.rb +110 -0
- data/lib/aws/s3.rb +156 -0
- data/lib/aws/s3/access_control_list.rb +265 -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 +162 -0
- data/lib/aws/s3/bucket_lifecycle_configuration.rb +473 -0
- data/lib/aws/s3/bucket_tag_collection.rb +111 -0
- data/lib/aws/s3/bucket_version_collection.rb +79 -0
- data/lib/aws/s3/cipher_io.rb +120 -0
- data/lib/aws/s3/client.rb +2067 -0
- data/lib/aws/s3/client/xml.rb +266 -0
- data/lib/aws/s3/config.rb +48 -0
- data/lib/aws/s3/cors_rule.rb +108 -0
- data/lib/aws/s3/cors_rule_collection.rb +194 -0
- data/lib/aws/s3/data_options.rb +191 -0
- data/lib/aws/s3/encryption_utils.rb +146 -0
- data/lib/aws/s3/errors.rb +94 -0
- data/lib/aws/s3/multipart_upload.rb +353 -0
- data/lib/aws/s3/multipart_upload_collection.rb +76 -0
- data/lib/aws/s3/object_collection.rb +353 -0
- data/lib/aws/s3/object_metadata.rb +103 -0
- data/lib/aws/s3/object_upload_collection.rb +77 -0
- data/lib/aws/s3/object_version.rb +154 -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 +85 -0
- data/lib/aws/s3/presign_v4.rb +136 -0
- data/lib/aws/s3/presigned_post.rb +554 -0
- data/lib/aws/s3/request.rb +62 -0
- data/lib/aws/s3/s3_object.rb +1784 -0
- data/lib/aws/s3/tree.rb +116 -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 +82 -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 +218 -0
- data/lib/aws/simple_db/attribute.rb +156 -0
- data/lib/aws/simple_db/attribute_collection.rb +240 -0
- data/lib/aws/simple_db/client.rb +67 -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 +123 -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 +654 -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_email_service.rb +443 -0
- data/lib/aws/simple_email_service/client.rb +37 -0
- data/lib/aws/simple_email_service/config.rb +18 -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 +230 -0
- data/lib/aws/simple_email_service/identity_collection.rb +81 -0
- data/lib/aws/simple_email_service/quotas.rb +66 -0
- data/lib/aws/simple_workflow.rb +227 -0
- data/lib/aws/simple_workflow/activity_task.rb +178 -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 +69 -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 +223 -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/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 +384 -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 +35 -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/message.rb +204 -0
- data/lib/aws/sns/originators/from_auto_scaling.rb +68 -0
- data/lib/aws/sns/policy.rb +47 -0
- data/lib/aws/sns/subscription.rb +165 -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 +80 -0
- data/lib/aws/sqs/client.rb +53 -0
- data/lib/aws/sqs/config.rb +20 -0
- data/lib/aws/sqs/errors.rb +125 -0
- data/lib/aws/sqs/policy.rb +48 -0
- data/lib/aws/sqs/queue.rb +856 -0
- data/lib/aws/sqs/queue_collection.rb +186 -0
- data/lib/aws/sqs/received_message.rb +190 -0
- data/lib/aws/sqs/received_sns_message.rb +116 -0
- data/lib/aws/storage_gateway.rb +72 -0
- data/lib/aws/storage_gateway/client.rb +42 -0
- data/lib/aws/storage_gateway/config.rb +18 -0
- data/lib/aws/storage_gateway/errors.rb +22 -0
- data/lib/aws/sts.rb +164 -0
- data/lib/aws/sts/client.rb +55 -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/session.rb +48 -0
- data/lib/aws/support.rb +29 -0
- data/lib/aws/support/client.rb +35 -0
- data/lib/aws/support/config.rb +18 -0
- data/lib/aws/support/errors.rb +20 -0
- data/lib/aws/version.rb +17 -0
- data/rails/init.rb +15 -0
- metadata +634 -0
|
@@ -0,0 +1,186 @@
|
|
|
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
|
+
# Signing certificates can be activated and deactivated.
|
|
17
|
+
# By default, newly-uploaded certifictes are active.
|
|
18
|
+
#
|
|
19
|
+
# certificate = iam.signing_certificates.upload(cert_body)
|
|
20
|
+
# certificate.status
|
|
21
|
+
# #=> :active
|
|
22
|
+
#
|
|
23
|
+
# certificate.deactivate!
|
|
24
|
+
# certificate.active?
|
|
25
|
+
# #=> false
|
|
26
|
+
#
|
|
27
|
+
# ## Contents
|
|
28
|
+
#
|
|
29
|
+
# You can access the certificate contents you uploaded:
|
|
30
|
+
#
|
|
31
|
+
# > puts certificate.contents
|
|
32
|
+
# -----BEGIN CERTIFICATE-----
|
|
33
|
+
# MIICdzCCAeCgAwIBAgIFGS4fY6owDQYJKoZIhvcNAQEFBQAwUzELMAkGA1UEBhMC
|
|
34
|
+
# ......
|
|
35
|
+
# Glli79yh87PRi0vNDlFEoHXNynkvC/c4TiWruZ4haM9BR9EdWr1DBNNu73ui093K
|
|
36
|
+
# F9TbdXSWdgMl7E0=
|
|
37
|
+
# -----END CERTIFICATE-----
|
|
38
|
+
#
|
|
39
|
+
# ## User
|
|
40
|
+
#
|
|
41
|
+
# A certificate can also return the user it belongs to. If the certificate
|
|
42
|
+
# belongs to the AWS account, then {#user} will return `nil`.
|
|
43
|
+
#
|
|
44
|
+
# user = iam.users['someuser'].signing_certificates.first
|
|
45
|
+
# user.name
|
|
46
|
+
# #=> 'someuser'
|
|
47
|
+
#
|
|
48
|
+
# @attr_reader [String] contents Returns the contents of this
|
|
49
|
+
# signing certificate.
|
|
50
|
+
#
|
|
51
|
+
# @attr_reader [Time] upload_date
|
|
52
|
+
#
|
|
53
|
+
# @attr_reader [Symbol] status The status of this signing
|
|
54
|
+
# certificate. Status may be `:active` or `:inactive`.
|
|
55
|
+
#
|
|
56
|
+
class SigningCertificate < Resource
|
|
57
|
+
|
|
58
|
+
# @param [String] certificate_id The id of the signing certificate.
|
|
59
|
+
# @param [Hash] options
|
|
60
|
+
# @option options [User] :user
|
|
61
|
+
def initialize certificate_id, options = {}
|
|
62
|
+
@id = certificate_id
|
|
63
|
+
@user = options[:user]
|
|
64
|
+
@user ? super(@user, options) : super(options)
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
# @return [String] Returns the signing certificate's ID.
|
|
68
|
+
attr_reader :id
|
|
69
|
+
|
|
70
|
+
# @return [User,nil] Returns the user this cerficiate belongs to.
|
|
71
|
+
# Returns `nil` if the cerficiate is a root credential for the
|
|
72
|
+
# account. If the configured credentials belong to an IAM user,
|
|
73
|
+
# then that user is the implied owner.
|
|
74
|
+
attr_reader :user
|
|
75
|
+
|
|
76
|
+
attribute :contents, :from => :certificate_body, :static => true
|
|
77
|
+
|
|
78
|
+
# @attr_reader [Time] upload_date
|
|
79
|
+
attribute :upload_date, :static => true
|
|
80
|
+
|
|
81
|
+
mutable_attribute :status, :to_sym => true
|
|
82
|
+
|
|
83
|
+
protected :status=
|
|
84
|
+
|
|
85
|
+
populates_from(
|
|
86
|
+
:upload_signing_certificate,
|
|
87
|
+
:update_signing_certificate
|
|
88
|
+
) do |resp|
|
|
89
|
+
resp.certificate if matches_response_object?(resp.certificate)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
populates_from(:list_signing_certificates) do |resp|
|
|
93
|
+
resp.certificates.find {|c| matches_response_object?(c) }
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# @return [String,nil] Returns the name of the user this certificate
|
|
97
|
+
# belogns to. If the certificate belongs to the account, `nil` is
|
|
98
|
+
# returned.
|
|
99
|
+
def user_name
|
|
100
|
+
@user ? @user.name : nil
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# @return [Boolean] Returns true if this signing certificate is active.
|
|
104
|
+
def active?
|
|
105
|
+
status == :active
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# @return [Boolean] Returns true if this signing certificate is inactive.
|
|
109
|
+
def inactive?
|
|
110
|
+
status == :inactive
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# Activates this signing cerificate.
|
|
114
|
+
#
|
|
115
|
+
# @example
|
|
116
|
+
# signing_certificate.activate!
|
|
117
|
+
# signing_certificate.status
|
|
118
|
+
# # => :active
|
|
119
|
+
#
|
|
120
|
+
# @return [nil]
|
|
121
|
+
def activate!
|
|
122
|
+
self.status = 'Active'
|
|
123
|
+
nil
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# Deactivates this signing cerificate.
|
|
127
|
+
#
|
|
128
|
+
# @example
|
|
129
|
+
# signing_certificate.deactivate!
|
|
130
|
+
# signing_certificate.status
|
|
131
|
+
# # => :inactive
|
|
132
|
+
#
|
|
133
|
+
# @return [nil]
|
|
134
|
+
def deactivate!
|
|
135
|
+
self.status = 'Inactive'
|
|
136
|
+
nil
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
# Deletes the signing certificate.
|
|
140
|
+
def delete
|
|
141
|
+
client.delete_signing_certificate(resource_options)
|
|
142
|
+
nil
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
# @return [Boolean] Returns `true` if the resource exists.
|
|
146
|
+
def exists?
|
|
147
|
+
exists = false
|
|
148
|
+
SigningCertificateCollection.new(:config => config).each do |cert|
|
|
149
|
+
if cert.id == self.id
|
|
150
|
+
exists = true
|
|
151
|
+
break
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
exists
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# @api private
|
|
158
|
+
protected
|
|
159
|
+
def resource_identifiers
|
|
160
|
+
identifiers = []
|
|
161
|
+
identifiers << [:certificate_id, id]
|
|
162
|
+
identifiers << [:user_name, user.name] if user
|
|
163
|
+
identifiers
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
# IAM does not provide a request for "get signing certificate".
|
|
167
|
+
# Also note, we do not page the response. This is because
|
|
168
|
+
# restrictions on how many certificates an account / user may
|
|
169
|
+
# have is fewer than one page of results.
|
|
170
|
+
# @api private
|
|
171
|
+
protected
|
|
172
|
+
def get_resource attribute = nil
|
|
173
|
+
options = user ? { :user_name => user.name } : {}
|
|
174
|
+
client.list_signing_certificates(options)
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
# @api private
|
|
178
|
+
protected
|
|
179
|
+
def matches_response_object? obj
|
|
180
|
+
user_name = obj.respond_to?(:user_name) ? obj.user_name : nil
|
|
181
|
+
obj.certificate_id == self.id and user_name == self.user_name
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
end
|
|
185
|
+
end
|
|
186
|
+
end
|
|
@@ -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
|
+
# @api 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
|
+
# @api 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,200 @@
|
|
|
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
|
+
# user = iam.users.create('johndoe')
|
|
26
|
+
#
|
|
27
|
+
# ## Renaming a User
|
|
28
|
+
#
|
|
29
|
+
# You can only edit a user's name and path (both of which will modify
|
|
30
|
+
# the user's ARN).
|
|
31
|
+
#
|
|
32
|
+
# user = iam.users['johndoe']
|
|
33
|
+
# user.name = 'newname'
|
|
34
|
+
#
|
|
35
|
+
# ## User Path
|
|
36
|
+
#
|
|
37
|
+
# When you create a user you can assign a path. Paths must begin and
|
|
38
|
+
# end with a forward slash (/).
|
|
39
|
+
#
|
|
40
|
+
# user = iam.users.create('newuser', :path => '/developers/ruby/')
|
|
41
|
+
#
|
|
42
|
+
# Paths are a useful tool for organizing/tagging users. You can later
|
|
43
|
+
# enumerate users by their path prefixes:
|
|
44
|
+
#
|
|
45
|
+
# iam.users.each(:path_prefix => '/developers').each do |developer|
|
|
46
|
+
# puts developer.name
|
|
47
|
+
# end
|
|
48
|
+
#
|
|
49
|
+
# ## Login Profile
|
|
50
|
+
#
|
|
51
|
+
# A login profile is required for an IAM user to use the AWS Management
|
|
52
|
+
# console (web interface). See {LoginProfile} for more information.
|
|
53
|
+
#
|
|
54
|
+
# ## Deleting Users
|
|
55
|
+
#
|
|
56
|
+
# In order to delete a user you must first remove it from all of its
|
|
57
|
+
# groups and delete all of its signing certificates. Once this is done:
|
|
58
|
+
#
|
|
59
|
+
# @attr [String] user_name
|
|
60
|
+
#
|
|
61
|
+
# @attr [String] path
|
|
62
|
+
#
|
|
63
|
+
# @attr_reader [String] id
|
|
64
|
+
#
|
|
65
|
+
# @attr_reader [DateTime] create_date
|
|
66
|
+
#
|
|
67
|
+
# @attr_reader [String] arn
|
|
68
|
+
#
|
|
69
|
+
class User < Resource
|
|
70
|
+
|
|
71
|
+
prefix_update_attributes
|
|
72
|
+
|
|
73
|
+
# @param [String] name The IAM user name for this user.
|
|
74
|
+
# @param [Hash] options
|
|
75
|
+
def initialize name, options = {}
|
|
76
|
+
options[:name] = name
|
|
77
|
+
super(options)
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# @attr [String] The IAM user name.
|
|
81
|
+
mutable_attribute :name, :static => true, :from => :user_name
|
|
82
|
+
|
|
83
|
+
# @attr_reader [String] The user's unique ID.
|
|
84
|
+
attribute :id, :static => true, :from => :user_id
|
|
85
|
+
|
|
86
|
+
# @attr_reader [Time] When the user was created.
|
|
87
|
+
attribute :create_date, :static => true
|
|
88
|
+
|
|
89
|
+
# @attr_reader [String] The user's ARN (Amazon Resource Name).
|
|
90
|
+
attribute :arn
|
|
91
|
+
|
|
92
|
+
# @attr [String] The path for this user. Paths are used to
|
|
93
|
+
# identify which division or part of an organization the user
|
|
94
|
+
# belongs to.
|
|
95
|
+
mutable_attribute :path
|
|
96
|
+
|
|
97
|
+
populates_from(:create_user, :get_user) do |resp|
|
|
98
|
+
resp[:user] if resp[:user][:user_name] == name
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
populates_from(:list_users, :get_group) do |resp|
|
|
102
|
+
resp[:users].find{|u| u[:user_name] == name }
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# Deletes this user.
|
|
106
|
+
# @return [nil]
|
|
107
|
+
def delete
|
|
108
|
+
client.delete_user(resource_options)
|
|
109
|
+
nil
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# Deletes the current user, after:
|
|
113
|
+
# * deleting its login profile
|
|
114
|
+
# * removing it from all groups
|
|
115
|
+
# * deleting all of its access keys
|
|
116
|
+
# * deleting its mfa devices
|
|
117
|
+
# * deleting its signing certificates
|
|
118
|
+
def delete!
|
|
119
|
+
groups.clear
|
|
120
|
+
access_keys.clear
|
|
121
|
+
policies.clear
|
|
122
|
+
mfa_devices.clear
|
|
123
|
+
signing_certificates.clear
|
|
124
|
+
login_profile.delete if login_profile.exists?
|
|
125
|
+
delete
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
# Returns a collection that represents all policies for this user.
|
|
129
|
+
#
|
|
130
|
+
# user.policies.each do |policy|
|
|
131
|
+
# puts policy.name
|
|
132
|
+
# end
|
|
133
|
+
#
|
|
134
|
+
# @return [PolicyCollection] Returns a collection that represents
|
|
135
|
+
# all policies for this user.
|
|
136
|
+
def policies
|
|
137
|
+
UserPolicyCollection.new(self)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# Returns a collection that represents the signing certificates
|
|
141
|
+
# belonging to this user.
|
|
142
|
+
#
|
|
143
|
+
# user.signing_certificates.each do |cert|
|
|
144
|
+
# # ...
|
|
145
|
+
# end
|
|
146
|
+
#
|
|
147
|
+
# If you need to access the signing certificates of this AWS account,
|
|
148
|
+
# see {IAM#signing_certificates}.
|
|
149
|
+
#
|
|
150
|
+
# @return [SigningCertificateCollection] Returns a collection that
|
|
151
|
+
# represents signing certificates for this user.
|
|
152
|
+
def signing_certificates
|
|
153
|
+
SigningCertificateCollection.new(:user => self, :config => config)
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
# @return [MFADeviceCollection] Returns a collection that represents
|
|
157
|
+
# all MFA devices assigned to this user.
|
|
158
|
+
def mfa_devices
|
|
159
|
+
MFADeviceCollection.new(self)
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
# A login profile is a user name and password that enables a
|
|
163
|
+
# user to log in to the {http://aws.amazon.com/console AWS
|
|
164
|
+
# Management Console}. The object returned by this method
|
|
165
|
+
# allows you to set or delete the password. For example:
|
|
166
|
+
#
|
|
167
|
+
# user.login_profile.password = "TheNewPassword"
|
|
168
|
+
#
|
|
169
|
+
# @return [LoginProfile] Returns the login profile for this user.
|
|
170
|
+
def login_profile
|
|
171
|
+
LoginProfile.new(self)
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
# Returns a collection that represents the access keys for this user.
|
|
175
|
+
#
|
|
176
|
+
# user.access_keys.each do |access_key|
|
|
177
|
+
# puts access_key.id
|
|
178
|
+
# end
|
|
179
|
+
#
|
|
180
|
+
# @return [AccessKeyCollection] Returns a collection that represents all
|
|
181
|
+
# access keys for this user.
|
|
182
|
+
def access_keys
|
|
183
|
+
AccessKeyCollection.new(:user => self)
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
# Returns a collection that includes all of the groups the user is in.
|
|
187
|
+
# @return [UserGroupCollection]
|
|
188
|
+
def groups
|
|
189
|
+
UserGroupCollection.new(self)
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
# @api private
|
|
193
|
+
protected
|
|
194
|
+
def resource_identifiers
|
|
195
|
+
[[:user_name, name]]
|
|
196
|
+
end
|
|
197
|
+
|
|
198
|
+
end
|
|
199
|
+
end
|
|
200
|
+
end
|