aws-sdk 1.0.4 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/aws.rb +10 -9
- data/lib/aws/api_config/IAM-2010-07-15.yml +632 -0
- data/lib/aws/base_client.rb +1 -1
- data/lib/aws/cacheable.rb +34 -46
- data/lib/aws/client_logging.rb +19 -14
- data/lib/aws/collections.rb +230 -0
- data/lib/aws/common.rb +4 -0
- data/lib/aws/configuration.rb +7 -0
- data/lib/aws/ec2.rb +2 -2
- data/lib/aws/ec2/attachment.rb +64 -71
- data/lib/aws/ec2/attachment_collection.rb +11 -9
- data/lib/aws/ec2/availability_zone.rb +40 -31
- data/lib/aws/ec2/availability_zone_collection.rb +2 -3
- data/lib/aws/ec2/elastic_ip.rb +25 -22
- data/lib/aws/ec2/elastic_ip_collection.rb +5 -2
- data/lib/aws/ec2/image.rb +113 -129
- data/lib/aws/ec2/image_collection.rb +5 -6
- data/lib/aws/ec2/instance.rb +290 -233
- data/lib/aws/ec2/instance_collection.rb +72 -67
- data/lib/aws/ec2/key_pair.rb +16 -18
- data/lib/aws/ec2/region.rb +25 -17
- data/lib/aws/ec2/reserved_instances.rb +7 -1
- data/lib/aws/ec2/reserved_instances_collection.rb +3 -3
- data/lib/aws/ec2/reserved_instances_offering.rb +7 -1
- data/lib/aws/ec2/reserved_instances_offering_collection.rb +3 -3
- data/lib/aws/ec2/resource.rb +41 -222
- data/lib/aws/ec2/security_group.rb +22 -18
- data/lib/aws/ec2/security_group_collection.rb +2 -5
- data/lib/aws/ec2/snapshot.rb +44 -35
- data/lib/aws/ec2/snapshot_collection.rb +43 -1
- data/lib/aws/ec2/tag.rb +14 -18
- data/lib/aws/ec2/volume.rb +59 -72
- data/lib/aws/ec2/volume_collection.rb +16 -12
- data/lib/aws/errors.rb +14 -5
- data/lib/aws/http/httparty_handler.rb +2 -2
- data/lib/aws/iam.rb +306 -0
- data/lib/aws/iam/access_key.rb +183 -0
- data/lib/aws/iam/access_key_collection.rb +131 -0
- data/lib/aws/iam/account_alias_collection.rb +81 -0
- data/lib/aws/iam/client.rb +44 -0
- data/lib/aws/iam/client/xml.rb +38 -0
- data/lib/aws/iam/collection.rb +87 -0
- data/lib/aws/iam/errors.rb +29 -0
- data/lib/aws/iam/group.rb +117 -0
- data/lib/aws/iam/group_collection.rb +135 -0
- data/lib/aws/iam/group_policy_collection.rb +49 -0
- data/lib/aws/iam/group_user_collection.rb +94 -0
- data/lib/aws/iam/login_profile.rb +97 -0
- data/lib/aws/iam/mfa_device.rb +52 -0
- data/lib/aws/iam/mfa_device_collection.rb +119 -0
- data/lib/aws/iam/policy.rb +48 -0
- data/lib/aws/iam/policy_collection.rb +191 -0
- data/lib/aws/iam/request.rb +27 -0
- data/lib/aws/iam/resource.rb +74 -0
- data/lib/aws/iam/server_certificate.rb +143 -0
- data/lib/aws/iam/server_certificate_collection.rb +174 -0
- data/lib/aws/iam/signing_certificate.rb +171 -0
- data/lib/aws/iam/signing_certificate_collection.rb +134 -0
- data/lib/aws/iam/user.rb +196 -0
- data/lib/aws/iam/user_collection.rb +136 -0
- data/lib/aws/iam/user_group_collection.rb +101 -0
- data/lib/aws/iam/user_policy.rb +90 -0
- data/lib/aws/iam/user_policy_collection.rb +48 -0
- data/lib/aws/resource.rb +381 -0
- data/lib/aws/resource_cache.rb +1 -2
- data/lib/aws/response.rb +5 -1
- data/lib/aws/response_cache.rb +1 -1
- data/lib/aws/s3/client.rb +3 -1
- data/lib/aws/s3/presigned_post.rb +1 -1
- data/lib/aws/simple_db.rb +1 -1
- metadata +113 -50
@@ -0,0 +1,174 @@
|
|
1
|
+
# Copyright 2011 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
|
+
require 'aws/iam/collection'
|
15
|
+
require 'aws/iam/server_certificate'
|
16
|
+
|
17
|
+
module AWS
|
18
|
+
class IAM
|
19
|
+
|
20
|
+
# A collection that provides access to IAM server certificates
|
21
|
+
# belonging to this account.
|
22
|
+
#
|
23
|
+
# iam = AWS::IAM.new
|
24
|
+
# certificates = iam.server_certificates
|
25
|
+
#
|
26
|
+
# == Uploading A Server Certificate
|
27
|
+
#
|
28
|
+
# You can upload any valid, signed certificate using {#upload}.
|
29
|
+
#
|
30
|
+
# certificates.upload(:name => "MyCert",
|
31
|
+
# :certificate_body => my_certificate_body,
|
32
|
+
# :private_key => my_private_key)
|
33
|
+
#
|
34
|
+
# For information about generating a server certificate for use
|
35
|
+
# with IAM, see
|
36
|
+
# {http://docs.amazonwebservices.com/IAM/latest/UserGuide/InstallCert.html
|
37
|
+
# Creating and Uploading Server Certificates} in <i>Using AWS
|
38
|
+
# Identity and Access Management</i>.
|
39
|
+
#
|
40
|
+
# == Getting a Server Certificate by Name
|
41
|
+
#
|
42
|
+
# You can get a reference to a server certificate using array notation:
|
43
|
+
#
|
44
|
+
# certificate = certificates['MyCert']
|
45
|
+
#
|
46
|
+
# == Enumerating Server Certificates
|
47
|
+
#
|
48
|
+
# Server certificate collections can also be used to enumerate
|
49
|
+
# certificates:
|
50
|
+
#
|
51
|
+
# certificates.each do |cert|
|
52
|
+
# puts cert.name
|
53
|
+
# end
|
54
|
+
#
|
55
|
+
# You can limit the certificates returned by passing a +:prefix+
|
56
|
+
# option to any of the enumerator methods. When you pass a
|
57
|
+
# prefix, only the certificates whose paths start with the given
|
58
|
+
# string will be returned.
|
59
|
+
class ServerCertificateCollection
|
60
|
+
|
61
|
+
include Collection::WithPrefix
|
62
|
+
|
63
|
+
# Uploads a server certificate entity for the AWS account. The
|
64
|
+
# server certificate entity includes a public key certificate, a
|
65
|
+
# private key, and an optional certificate chain, which should
|
66
|
+
# all be PEM-encoded.
|
67
|
+
#
|
68
|
+
# @param [Hash] options Options for uploading the certificate.
|
69
|
+
# +:name+, +:certificate_body+, and +:private_key+ are
|
70
|
+
# required.
|
71
|
+
#
|
72
|
+
# @option options [String] :certificate_body The contents of the
|
73
|
+
# public key certificate in PEM-encoded format.
|
74
|
+
#
|
75
|
+
# @option options [String] :name The name for the server
|
76
|
+
# certificate. Do not include the path in this value.
|
77
|
+
#
|
78
|
+
# @option options [String] :path The path for the server
|
79
|
+
# certificate. For more information about paths, see
|
80
|
+
# {http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html
|
81
|
+
# Identifiers for IAM Entities} in <i>Using AWS Identity and
|
82
|
+
# Access Management</i>.
|
83
|
+
#
|
84
|
+
# @option options [String] :private_key The contents of the
|
85
|
+
# private key in PEM-encoded format.
|
86
|
+
#
|
87
|
+
# @option options [String] :certificate_chain The contents of
|
88
|
+
# the certificate chain. This is typically a concatenation of
|
89
|
+
# the PEM-encoded public key certificates of the chain.
|
90
|
+
#
|
91
|
+
# @return [ServerCertificate] The newly created server
|
92
|
+
# certificate.
|
93
|
+
def upload(options = {})
|
94
|
+
client_opts = options.dup
|
95
|
+
client_opts[:server_certificate_name] = client_opts.delete(:name)
|
96
|
+
|
97
|
+
if path = client_opts[:path]
|
98
|
+
client_opts[:path] = "/#{path}/".
|
99
|
+
sub(%r{^//}, "/").
|
100
|
+
sub(%r{//$}, "/")
|
101
|
+
end
|
102
|
+
|
103
|
+
resp = client.upload_server_certificate(client_opts)
|
104
|
+
ServerCertificate.new(resp.server_certificate_metadata.
|
105
|
+
server_certificate_name,
|
106
|
+
:config => config)
|
107
|
+
end
|
108
|
+
alias_method :create, :upload
|
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
|
+
# Yields once for each server certificate
|
124
|
+
#
|
125
|
+
# You can limit the number of certificates yielded using
|
126
|
+
# +:limit+ and +:path_prefix+.
|
127
|
+
#
|
128
|
+
# @param [Hash] options
|
129
|
+
#
|
130
|
+
# @option options [String] :path_prefix ('/') A path prefix that
|
131
|
+
# filters according to the path of the certificate.
|
132
|
+
#
|
133
|
+
# @option options [Integer] :limit The maximum number of
|
134
|
+
# certificates to yield.
|
135
|
+
#
|
136
|
+
# @option options [Integer] :batch_size The maximum number of
|
137
|
+
# certificates to retrieve in each service request.
|
138
|
+
#
|
139
|
+
# @yieldparam [ServerCertificate] certificate
|
140
|
+
# @return [nil]
|
141
|
+
def each options = {}, &block
|
142
|
+
super(options, &block)
|
143
|
+
end
|
144
|
+
|
145
|
+
# Returns an enumerable object for this collection. This can be
|
146
|
+
# useful if you want to call an enumerable method that does
|
147
|
+
# not accept options (e.g. +collect+, +first+, etc).
|
148
|
+
#
|
149
|
+
# certificates.enumerator(:path_prefix => '/production').
|
150
|
+
# collect(&:name)
|
151
|
+
#
|
152
|
+
# @param (see #each)
|
153
|
+
# @option (see #each)
|
154
|
+
# @return [Enumerator]
|
155
|
+
def enumerator options = {}
|
156
|
+
super(options)
|
157
|
+
end
|
158
|
+
|
159
|
+
# @private
|
160
|
+
protected
|
161
|
+
def each_item(response, &block)
|
162
|
+
response.server_certificate_metadata_list.each do |sc|
|
163
|
+
certificate = ServerCertificate.new_from(:list_server_certificates,
|
164
|
+
sc,
|
165
|
+
sc.server_certificate_name,
|
166
|
+
:config => config)
|
167
|
+
yield(certificate)
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
end
|
172
|
+
|
173
|
+
end
|
174
|
+
end
|
@@ -0,0 +1,171 @@
|
|
1
|
+
# Copyright 2011 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
|
+
require 'aws/iam/resource'
|
14
|
+
|
15
|
+
module AWS
|
16
|
+
class IAM
|
17
|
+
|
18
|
+
# Signing certificates can be activated and deactivated.
|
19
|
+
# By default, newly-uploaded certifictes are active.
|
20
|
+
#
|
21
|
+
# certificate = iam.signing_certificates.upload(cert_body)
|
22
|
+
# certificate.status
|
23
|
+
# #=> :active
|
24
|
+
#
|
25
|
+
# certificate.deactivate!
|
26
|
+
# certificate.active?
|
27
|
+
# #=> false
|
28
|
+
#
|
29
|
+
# == Contents
|
30
|
+
#
|
31
|
+
# You can access the certificate contents you uploaded:
|
32
|
+
#
|
33
|
+
# > puts certificate.contents
|
34
|
+
# -----BEGIN CERTIFICATE-----
|
35
|
+
# MIICdzCCAeCgAwIBAgIFGS4fY6owDQYJKoZIhvcNAQEFBQAwUzELMAkGA1UEBhMC
|
36
|
+
# ......
|
37
|
+
# Glli79yh87PRi0vNDlFEoHXNynkvC/c4TiWruZ4haM9BR9EdWr1DBNNu73ui093K
|
38
|
+
# F9TbdXSWdgMl7E0=
|
39
|
+
# -----END CERTIFICATE-----
|
40
|
+
#
|
41
|
+
# == User
|
42
|
+
#
|
43
|
+
# A certificate can also return the user it belongs to. If the certificate
|
44
|
+
# belongs to the AWS account, then {#user} will return +nil+.
|
45
|
+
#
|
46
|
+
# user = iam.users['someuser'].signing_certificates.first
|
47
|
+
# user.name
|
48
|
+
# #=> 'someuser'
|
49
|
+
#
|
50
|
+
# @attr_reader [String] contents Returns the contents of this
|
51
|
+
# signing certificate.
|
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
|
+
# @param [User] :user The user this signing certificate belongs to.
|
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, :as => :certificate_body, :static => true
|
77
|
+
|
78
|
+
mutable_attribute :status, :to_sym => true
|
79
|
+
|
80
|
+
protected :status=
|
81
|
+
|
82
|
+
populates_from(
|
83
|
+
:upload_signing_certificate,
|
84
|
+
:update_signing_certificate
|
85
|
+
) do |resp|
|
86
|
+
resp.certificate if matches_response_object?(resp.certificate)
|
87
|
+
end
|
88
|
+
|
89
|
+
populates_from(:list_signing_certificates) do |resp|
|
90
|
+
resp.certificates.find {|c| matches_response_object?(c) }
|
91
|
+
end
|
92
|
+
|
93
|
+
# @return [String,nil] Returns the name of the user this certificate
|
94
|
+
# belogns to. If the certificate belongs to the account, +nil+ is
|
95
|
+
# returned.
|
96
|
+
def user_name
|
97
|
+
@user ? @user.name : nil
|
98
|
+
end
|
99
|
+
|
100
|
+
# @return [Boolean] Returns true if this signing certificate is active.
|
101
|
+
def active?
|
102
|
+
status == :active
|
103
|
+
end
|
104
|
+
|
105
|
+
# @return [Boolean] Returns true if this signing certificate is inactive.
|
106
|
+
def inactive?
|
107
|
+
status == :inactive
|
108
|
+
end
|
109
|
+
|
110
|
+
# Activates this signing cerificate.
|
111
|
+
#
|
112
|
+
# @example
|
113
|
+
# signing_certificate.activate!
|
114
|
+
# signing_certificate.status
|
115
|
+
# # => :active
|
116
|
+
#
|
117
|
+
# @return [nil]
|
118
|
+
def activate!
|
119
|
+
self.status = 'Active'
|
120
|
+
nil
|
121
|
+
end
|
122
|
+
|
123
|
+
# Deactivates this signing cerificate.
|
124
|
+
#
|
125
|
+
# @example
|
126
|
+
# signing_certificate.deactivate!
|
127
|
+
# signing_certificate.status
|
128
|
+
# # => :inactive
|
129
|
+
#
|
130
|
+
# @return [nil]
|
131
|
+
def deactivate!
|
132
|
+
self.status = 'Inactive'
|
133
|
+
nil
|
134
|
+
end
|
135
|
+
|
136
|
+
# Deletes the signing certificate.
|
137
|
+
def delete
|
138
|
+
client.delete_signing_certificate(resource_options)
|
139
|
+
nil
|
140
|
+
end
|
141
|
+
|
142
|
+
# @private
|
143
|
+
protected
|
144
|
+
def resource_identifiers
|
145
|
+
identifiers = []
|
146
|
+
identifiers << [:certificate_id, id]
|
147
|
+
identifiers << [:user_name, user.name] if user
|
148
|
+
identifiers
|
149
|
+
end
|
150
|
+
|
151
|
+
# IAM does not provide a request for "get signing certificate".
|
152
|
+
# Also note, we do not page the response. This is because
|
153
|
+
# restrictions on how many certificates an account / user may
|
154
|
+
# have is fewer than one page of results.
|
155
|
+
# @private
|
156
|
+
protected
|
157
|
+
def get_resource attribute
|
158
|
+
options = user ? { :user_name => user.name } : {}
|
159
|
+
client.list_signing_certificates(options)
|
160
|
+
end
|
161
|
+
|
162
|
+
# @private
|
163
|
+
protected
|
164
|
+
def matches_response_object? obj
|
165
|
+
user_name = obj.respond_to?(:user_name) ? obj.user_name : nil
|
166
|
+
obj.certificate_id == self.id and user_name == self.user_name
|
167
|
+
end
|
168
|
+
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
@@ -0,0 +1,134 @@
|
|
1
|
+
# Copyright 2011 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
|
+
require 'aws/iam/collection'
|
14
|
+
require 'aws/iam/signing_certificate'
|
15
|
+
|
16
|
+
module AWS
|
17
|
+
class IAM
|
18
|
+
|
19
|
+
# This is the primary interface for uploading X.509 signing certificates
|
20
|
+
# to an AWS account or an IAM user.
|
21
|
+
#
|
22
|
+
# iam = AWS::IAM.new
|
23
|
+
#
|
24
|
+
# # upload a certificate for the AWS account:
|
25
|
+
# iam.signing_certificates.upload(<<-CERT)
|
26
|
+
# -----BEGIN CERTIFICATE-----
|
27
|
+
# MIICdzCCAeCgAwIBAgIFGS4fY6owDQYJKoZIhvcNAQEFBQAwUzELMAkGA1UEBhMC
|
28
|
+
# ......
|
29
|
+
# Glli79yh87PRi0vNDlFEoHXNynkvC/c4TiWruZ4haM9BR9EdWr1DBNNu73ui093K
|
30
|
+
# F9TbdXSWdgMl7E0=
|
31
|
+
# -----END CERTIFICATE-----
|
32
|
+
# CERT
|
33
|
+
#
|
34
|
+
# If you want to work with an IAM user's certificates just use the
|
35
|
+
# signing certificate interface on a user:
|
36
|
+
#
|
37
|
+
# user = iam.users['someuser']
|
38
|
+
# user.signing_certificates.upload(cert_body)
|
39
|
+
#
|
40
|
+
class SigningCertificateCollection
|
41
|
+
|
42
|
+
include Collection
|
43
|
+
|
44
|
+
# @param [Hash] options
|
45
|
+
# @option options [User] :user (nil) When +:user+ is provided the
|
46
|
+
# collection will represents the signing certificates belonging only
|
47
|
+
# to that user. When +:user+ is omitted the collection will manage
|
48
|
+
# root credentials on the AWS account (instead those belonging to a
|
49
|
+
# particular user).
|
50
|
+
def initialize options = {}
|
51
|
+
@user = options[:user]
|
52
|
+
@user ? super(@user, options) : super(options)
|
53
|
+
end
|
54
|
+
|
55
|
+
# @return [User,nil] Returns the user this collection belongs to.
|
56
|
+
# Returns +nil+ if the collection represents the root credentials
|
57
|
+
# for the account. If the configured credentials belong to an
|
58
|
+
# IAM user, then that user is the implied owner.
|
59
|
+
attr_reader :user
|
60
|
+
|
61
|
+
# @param [String] certificate_body The contents of the signing
|
62
|
+
# certificate.
|
63
|
+
# @return [SigningCertificate] Returns the newly created signing
|
64
|
+
# certificate.
|
65
|
+
def upload certificate_body
|
66
|
+
|
67
|
+
options = {}
|
68
|
+
options[:certificate_body] = certificate_body
|
69
|
+
options[:user_name] = user.name if user
|
70
|
+
|
71
|
+
resp = client.upload_signing_certificate(options)
|
72
|
+
|
73
|
+
SigningCertificate.new_from(:upload_signing_certificate,
|
74
|
+
resp.certificate, resp.certificate.certificate_id, new_options)
|
75
|
+
|
76
|
+
end
|
77
|
+
|
78
|
+
alias_method :create, :upload
|
79
|
+
|
80
|
+
# @param [String] certificate_id The ID of the signing certificate.
|
81
|
+
# @return [SigningCertificate] Returns a reference to the signing
|
82
|
+
# certificate with the given certificate ID.
|
83
|
+
def [] certificate_id
|
84
|
+
SigningCertificate.new(certificate_id.to_s, new_options)
|
85
|
+
end
|
86
|
+
|
87
|
+
# Deletes all of the signing certificates from this collection.
|
88
|
+
# @return [nil]
|
89
|
+
def clear
|
90
|
+
each do |certificate|
|
91
|
+
certificate.delete
|
92
|
+
end
|
93
|
+
nil
|
94
|
+
end
|
95
|
+
|
96
|
+
# Yields once for each signing certificate.
|
97
|
+
#
|
98
|
+
# You can limit the number of certificates yielded using +:limit+.
|
99
|
+
#
|
100
|
+
# @param [Hash] options
|
101
|
+
# @option options [Integer] :limit The maximum number of certificates
|
102
|
+
# to yield.
|
103
|
+
# @option options [Integer] :batch_size The maximum number of
|
104
|
+
# certificates received each service reqeust.
|
105
|
+
# @yieldparam [SigningCertificate] signing_certificate
|
106
|
+
# @return [nil]
|
107
|
+
def each options = {}, &block
|
108
|
+
each_options = options.dup
|
109
|
+
each_options[:user_name] = user.name if user
|
110
|
+
super(each_options, &block)
|
111
|
+
end
|
112
|
+
|
113
|
+
# @private
|
114
|
+
protected
|
115
|
+
def each_item response, &block
|
116
|
+
response.certificates.each do |item|
|
117
|
+
|
118
|
+
cert = SigningCertificate.new_from(:list_signing_certificates,
|
119
|
+
item, item.certificate_id, new_options)
|
120
|
+
|
121
|
+
yield(cert)
|
122
|
+
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
# @private
|
127
|
+
protected
|
128
|
+
def new_options
|
129
|
+
user ? { :user => user } : { :config => config }
|
130
|
+
end
|
131
|
+
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|