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,29 @@
|
|
|
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
|
+
# @private
|
|
18
|
+
class Request < Core::Http::Request
|
|
19
|
+
|
|
20
|
+
include Core::Signature::Version4
|
|
21
|
+
|
|
22
|
+
def service
|
|
23
|
+
'iam'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
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
|
+
class Resource < Core::Resource
|
|
17
|
+
|
|
18
|
+
# @return [Boolean] Returns +true+ if the resource exists.
|
|
19
|
+
def exists?
|
|
20
|
+
get_resource
|
|
21
|
+
true
|
|
22
|
+
rescue Errors::NoSuchEntity => e
|
|
23
|
+
false
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
def update_resource attr, value
|
|
29
|
+
options = { :"#{self.class.update_prefix}#{attr.set_as}" => value }
|
|
30
|
+
client_method = update_resource_client_method
|
|
31
|
+
client.send(client_method, options.merge(resource_options))
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def get_resource attribute = nil
|
|
35
|
+
client.send(get_resource_client_method, resource_options)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def get_resource_client_method
|
|
39
|
+
"get_#{ruby_name}"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def update_resource_client_method
|
|
43
|
+
"update_#{ruby_name}"
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
class << self
|
|
47
|
+
|
|
48
|
+
# @private
|
|
49
|
+
def prefix_update_attributes prefix = 'new_'
|
|
50
|
+
@update_prefix = prefix
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
# @private
|
|
54
|
+
def update_prefix
|
|
55
|
+
@update_prefix
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
@@ -0,0 +1,141 @@
|
|
|
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
|
+
# Respresents a server certificate.
|
|
18
|
+
#
|
|
19
|
+
# certificate = iam.server_certificates["MyCert"]
|
|
20
|
+
#
|
|
21
|
+
# You can use this class to get information about a certificate
|
|
22
|
+
# and to delete it.
|
|
23
|
+
class ServerCertificate < Resource
|
|
24
|
+
|
|
25
|
+
prefix_update_attributes
|
|
26
|
+
|
|
27
|
+
# @private
|
|
28
|
+
def initialize(name, opts={})
|
|
29
|
+
opts[:name] = name
|
|
30
|
+
super(opts)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# @attr [String] The name that identifies the server
|
|
34
|
+
# certificate.
|
|
35
|
+
mutable_attribute :name, :static => true, :from => :server_certificate_name
|
|
36
|
+
|
|
37
|
+
# @attr_reader [String] The stable and unique string identifying
|
|
38
|
+
# the server certificate.
|
|
39
|
+
attribute :id, :static => true, :from => :server_certificate_id
|
|
40
|
+
|
|
41
|
+
# @attr_reader [Time] The date when the server certificate was
|
|
42
|
+
# uploaded.
|
|
43
|
+
attribute :upload_date, :static => true
|
|
44
|
+
|
|
45
|
+
# @attr_reader [String] The Amazon Resource Name (ARN)
|
|
46
|
+
# specifying the server certificate. For more information
|
|
47
|
+
# about ARNs and how to use them in policies, see
|
|
48
|
+
# {http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html
|
|
49
|
+
# Identifiers for IAM Entities} in <i>Using AWS Identity and
|
|
50
|
+
# Access Management</i>.
|
|
51
|
+
attribute :arn
|
|
52
|
+
|
|
53
|
+
# @attr [String] Path to the server certificate.
|
|
54
|
+
mutable_attribute :path do
|
|
55
|
+
translates_input do |path|
|
|
56
|
+
path = "/#{path}" unless path[0] == ?/
|
|
57
|
+
path = "#{path}/" unless path[-1] == ?/
|
|
58
|
+
path
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
# @attr_reader [String] The contents of the public key
|
|
63
|
+
# certificate.
|
|
64
|
+
attribute :certificate_body
|
|
65
|
+
|
|
66
|
+
# @attr_reader [String] The contents of the public key
|
|
67
|
+
# certificate chain.
|
|
68
|
+
attribute :certificate_chain
|
|
69
|
+
|
|
70
|
+
provider(:get_server_certificate) do |provider|
|
|
71
|
+
# for metadata attributes
|
|
72
|
+
provider.find do |resp|
|
|
73
|
+
cert, meta = response_objects(resp)
|
|
74
|
+
meta
|
|
75
|
+
end
|
|
76
|
+
provider.provides :name, :id, :upload_date, :arn, :path
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
provider(:get_server_certificate) do |provider|
|
|
80
|
+
# for data attributes
|
|
81
|
+
provider.find do |resp|
|
|
82
|
+
cert, meta = response_objects(resp)
|
|
83
|
+
cert
|
|
84
|
+
end
|
|
85
|
+
provider.provides :certificate_body, :certificate_chain
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
populates_from(:upload_server_certificate) do |resp|
|
|
89
|
+
resp.server_certificate_metadata if
|
|
90
|
+
resp.server_certificate_metadata.server_certificate_name == name
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
populates_from(:list_server_certificates) do |resp|
|
|
94
|
+
resp.server_certificate_metadata_list.find do |sc|
|
|
95
|
+
sc.server_certificate_name == name
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
# Deletes the specified server certificate.
|
|
100
|
+
#
|
|
101
|
+
# @note If you are using a server certificate with Elastic Load
|
|
102
|
+
# Balancing, deleting the certificate could have implications
|
|
103
|
+
# for your application. If Elastic Load Balancing doesn't
|
|
104
|
+
# detect the deletion of bound certificates, it may continue
|
|
105
|
+
# to use the certificates. This could cause Elastic Load
|
|
106
|
+
# Balancing to stop accepting traffic. We recommend that you
|
|
107
|
+
# remove the reference to the certificate from Elastic Load
|
|
108
|
+
# Balancing before using this command to delete the
|
|
109
|
+
# certificate. For more information, go to
|
|
110
|
+
# {http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/APIReference/API_DeleteLoadBalancerListeners.html
|
|
111
|
+
# DeleteLoadBalancerListeners} in the _Elastic Load Balancing
|
|
112
|
+
# API Reference_.
|
|
113
|
+
#
|
|
114
|
+
# @return [nil]
|
|
115
|
+
def delete
|
|
116
|
+
client.delete_server_certificate(resource_options)
|
|
117
|
+
nil
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# @private
|
|
121
|
+
protected
|
|
122
|
+
def resource_identifiers
|
|
123
|
+
[[:server_certificate_name, name]]
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# extract response objects from get_server_certificate
|
|
127
|
+
private
|
|
128
|
+
def response_objects(resp)
|
|
129
|
+
if cert = resp.server_certificate and
|
|
130
|
+
meta = cert.server_certificate_metadata and
|
|
131
|
+
meta.server_certificate_name == name
|
|
132
|
+
[cert, meta]
|
|
133
|
+
else
|
|
134
|
+
[nil, nil]
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
end
|
|
141
|
+
end
|
|
@@ -0,0 +1,138 @@
|
|
|
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 server certificates
|
|
18
|
+
# belonging to this account.
|
|
19
|
+
#
|
|
20
|
+
# iam = AWS::IAM.new
|
|
21
|
+
# certificates = iam.server_certificates
|
|
22
|
+
#
|
|
23
|
+
# == Uploading A Server Certificate
|
|
24
|
+
#
|
|
25
|
+
# You can upload any valid, signed certificate using {#upload}.
|
|
26
|
+
#
|
|
27
|
+
# certificates.upload(:name => "MyCert",
|
|
28
|
+
# :certificate_body => my_certificate_body,
|
|
29
|
+
# :private_key => my_private_key)
|
|
30
|
+
#
|
|
31
|
+
# For information about generating a server certificate for use
|
|
32
|
+
# with IAM, see
|
|
33
|
+
# {http://docs.amazonwebservices.com/IAM/latest/UserGuide/InstallCert.html
|
|
34
|
+
# Creating and Uploading Server Certificates} in <i>Using AWS
|
|
35
|
+
# Identity and Access Management</i>.
|
|
36
|
+
#
|
|
37
|
+
# == Getting a Server Certificate by Name
|
|
38
|
+
#
|
|
39
|
+
# You can get a reference to a server certificate using array notation:
|
|
40
|
+
#
|
|
41
|
+
# certificate = certificates['MyCert']
|
|
42
|
+
#
|
|
43
|
+
# == Enumerating Server Certificates
|
|
44
|
+
#
|
|
45
|
+
# Server certificate collections can also be used to enumerate
|
|
46
|
+
# certificates:
|
|
47
|
+
#
|
|
48
|
+
# certificates.each do |cert|
|
|
49
|
+
# puts cert.name
|
|
50
|
+
# end
|
|
51
|
+
#
|
|
52
|
+
# You can limit the certificates returned by passing a +:prefix+
|
|
53
|
+
# option to any of the enumerator methods. When you pass a
|
|
54
|
+
# prefix, only the certificates whose paths start with the given
|
|
55
|
+
# string will be returned.
|
|
56
|
+
class ServerCertificateCollection
|
|
57
|
+
|
|
58
|
+
include Collection::WithPrefix
|
|
59
|
+
|
|
60
|
+
# Uploads a server certificate entity for the AWS account. The
|
|
61
|
+
# server certificate entity includes a public key certificate, a
|
|
62
|
+
# private key, and an optional certificate chain, which should
|
|
63
|
+
# all be PEM-encoded.
|
|
64
|
+
#
|
|
65
|
+
# @param [Hash] options Options for uploading the certificate.
|
|
66
|
+
# +:name+, +:certificate_body+, and +:private_key+ are
|
|
67
|
+
# required.
|
|
68
|
+
#
|
|
69
|
+
# @option options [String] :certificate_body The contents of the
|
|
70
|
+
# public key certificate in PEM-encoded format.
|
|
71
|
+
#
|
|
72
|
+
# @option options [String] :name The name for the server
|
|
73
|
+
# certificate. Do not include the path in this value.
|
|
74
|
+
#
|
|
75
|
+
# @option options [String] :path The path for the server
|
|
76
|
+
# certificate. For more information about paths, see
|
|
77
|
+
# {http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html
|
|
78
|
+
# Identifiers for IAM Entities} in <i>Using AWS Identity and
|
|
79
|
+
# Access Management</i>.
|
|
80
|
+
#
|
|
81
|
+
# @option options [String] :private_key The contents of the
|
|
82
|
+
# private key in PEM-encoded format.
|
|
83
|
+
#
|
|
84
|
+
# @option options [String] :certificate_chain The contents of
|
|
85
|
+
# the certificate chain. This is typically a concatenation of
|
|
86
|
+
# the PEM-encoded public key certificates of the chain.
|
|
87
|
+
#
|
|
88
|
+
# @return [ServerCertificate] The newly created server
|
|
89
|
+
# certificate.
|
|
90
|
+
def create options = {}
|
|
91
|
+
|
|
92
|
+
client_opts = options.dup
|
|
93
|
+
client_opts[:server_certificate_name] = client_opts.delete(:name)
|
|
94
|
+
|
|
95
|
+
if path = client_opts[:path]
|
|
96
|
+
client_opts[:path] = "/#{path}/".
|
|
97
|
+
sub(%r{^//}, "/").
|
|
98
|
+
sub(%r{//$}, "/")
|
|
99
|
+
end
|
|
100
|
+
|
|
101
|
+
resp = client.upload_server_certificate(client_opts)
|
|
102
|
+
|
|
103
|
+
ServerCertificate.new(
|
|
104
|
+
resp[:server_certificate_metadata][:server_certificate_name],
|
|
105
|
+
:config => config)
|
|
106
|
+
|
|
107
|
+
end
|
|
108
|
+
alias_method :upload, :create
|
|
109
|
+
|
|
110
|
+
# Returns a reference to the server certificate with the given
|
|
111
|
+
# name:
|
|
112
|
+
#
|
|
113
|
+
# certificate = iam.server_certificates['MyCert']
|
|
114
|
+
#
|
|
115
|
+
# @param [String] name Name of the server certificate.
|
|
116
|
+
#
|
|
117
|
+
# @return [ServerCertificate] Returns a reference to the named
|
|
118
|
+
# server certificate.
|
|
119
|
+
def [] name
|
|
120
|
+
ServerCertificate.new(name, :config => config)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
# @private
|
|
124
|
+
protected
|
|
125
|
+
def each_item response, &block
|
|
126
|
+
response.server_certificate_metadata_list.each do |sc|
|
|
127
|
+
certificate = ServerCertificate.new_from(:list_server_certificates,
|
|
128
|
+
sc,
|
|
129
|
+
sc.server_certificate_name,
|
|
130
|
+
:config => config)
|
|
131
|
+
yield(certificate)
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
end
|
|
138
|
+
end
|
|
@@ -0,0 +1,169 @@
|
|
|
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 [Symbol] status The status of this signing
|
|
52
|
+
# certificate. Status may be +:active+ or +:inactive+.
|
|
53
|
+
#
|
|
54
|
+
class SigningCertificate < Resource
|
|
55
|
+
|
|
56
|
+
# @param [String] certificate_id The id of the signing certificate.
|
|
57
|
+
# @param [Hash] options
|
|
58
|
+
# @option options [User] :user
|
|
59
|
+
def initialize certificate_id, options = {}
|
|
60
|
+
@id = certificate_id
|
|
61
|
+
@user = options[:user]
|
|
62
|
+
@user ? super(@user, options) : super(options)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# @return [String] Returns the signing certificate's ID.
|
|
66
|
+
attr_reader :id
|
|
67
|
+
|
|
68
|
+
# @return [User,nil] Returns the user this cerficiate belongs to.
|
|
69
|
+
# Returns +nil+ if the cerficiate is a root credential for the
|
|
70
|
+
# account. If the configured credentials belong to an IAM user,
|
|
71
|
+
# then that user is the implied owner.
|
|
72
|
+
attr_reader :user
|
|
73
|
+
|
|
74
|
+
attribute :contents, :from => :certificate_body, :static => true
|
|
75
|
+
|
|
76
|
+
mutable_attribute :status, :to_sym => true
|
|
77
|
+
|
|
78
|
+
protected :status=
|
|
79
|
+
|
|
80
|
+
populates_from(
|
|
81
|
+
:upload_signing_certificate,
|
|
82
|
+
:update_signing_certificate
|
|
83
|
+
) do |resp|
|
|
84
|
+
resp.certificate if matches_response_object?(resp.certificate)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
populates_from(:list_signing_certificates) do |resp|
|
|
88
|
+
resp.certificates.find {|c| matches_response_object?(c) }
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# @return [String,nil] Returns the name of the user this certificate
|
|
92
|
+
# belogns to. If the certificate belongs to the account, +nil+ is
|
|
93
|
+
# returned.
|
|
94
|
+
def user_name
|
|
95
|
+
@user ? @user.name : nil
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# @return [Boolean] Returns true if this signing certificate is active.
|
|
99
|
+
def active?
|
|
100
|
+
status == :active
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# @return [Boolean] Returns true if this signing certificate is inactive.
|
|
104
|
+
def inactive?
|
|
105
|
+
status == :inactive
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
# Activates this signing cerificate.
|
|
109
|
+
#
|
|
110
|
+
# @example
|
|
111
|
+
# signing_certificate.activate!
|
|
112
|
+
# signing_certificate.status
|
|
113
|
+
# # => :active
|
|
114
|
+
#
|
|
115
|
+
# @return [nil]
|
|
116
|
+
def activate!
|
|
117
|
+
self.status = 'Active'
|
|
118
|
+
nil
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
# Deactivates this signing cerificate.
|
|
122
|
+
#
|
|
123
|
+
# @example
|
|
124
|
+
# signing_certificate.deactivate!
|
|
125
|
+
# signing_certificate.status
|
|
126
|
+
# # => :inactive
|
|
127
|
+
#
|
|
128
|
+
# @return [nil]
|
|
129
|
+
def deactivate!
|
|
130
|
+
self.status = 'Inactive'
|
|
131
|
+
nil
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
# Deletes the signing certificate.
|
|
135
|
+
def delete
|
|
136
|
+
client.delete_signing_certificate(resource_options)
|
|
137
|
+
nil
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# @private
|
|
141
|
+
protected
|
|
142
|
+
def resource_identifiers
|
|
143
|
+
identifiers = []
|
|
144
|
+
identifiers << [:certificate_id, id]
|
|
145
|
+
identifiers << [:user_name, user.name] if user
|
|
146
|
+
identifiers
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
# IAM does not provide a request for "get signing certificate".
|
|
150
|
+
# Also note, we do not page the response. This is because
|
|
151
|
+
# restrictions on how many certificates an account / user may
|
|
152
|
+
# have is fewer than one page of results.
|
|
153
|
+
# @private
|
|
154
|
+
protected
|
|
155
|
+
def get_resource attribute
|
|
156
|
+
options = user ? { :user_name => user.name } : {}
|
|
157
|
+
client.list_signing_certificates(options)
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
# @private
|
|
161
|
+
protected
|
|
162
|
+
def matches_response_object? obj
|
|
163
|
+
user_name = obj.respond_to?(:user_name) ? obj.user_name : nil
|
|
164
|
+
obj.certificate_id == self.id and user_name == self.user_name
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
end
|