class AWS::IAM::ServerCertificateCollection

A collection that provides access to IAM server certificates belonging to this account.

iam = AWS::IAM.new
certificates = iam.server_certificates

Uploading A Server Certificate

You can upload any valid, signed certificate using {upload}.

certificates.upload(:name => "MyCert",
                    :certificate_body => my_certificate_body,
                    :private_key => my_private_key)

For information about generating a server certificate for use with IAM, see {docs.amazonwebservices.com/IAM/latest/UserGuide/InstallCert.html Creating and Uploading Server Certificates} in Using AWS Identity and Access Management.

Getting a Server Certificate by Name

You can get a reference to a server certificate using array notation:

certificate = certificates['MyCert']

Enumerating Server Certificates

Server certificate collections can also be used to enumerate certificates:

certificates.each do |cert|
  puts cert.name
end

You can limit the certificates returned by passing a :prefix option to any of the enumerator methods. When you pass a prefix, only the certificates whose paths start with the given string will be returned.

Public Instance Methods

[](name) click to toggle source

Returns a reference to the server certificate with the given name:

certificate = iam.server_certificates['MyCert']

@param [String] name Name of the server certificate.

@return [ServerCertificate] Returns a reference to the named

server certificate.
# File lib/aws/iam/server_certificate_collection.rb, line 116
def [] name
  ServerCertificate.new(name, :config => config)
end
create(options = {}) click to toggle source
Alias for: upload
upload(options = {}) click to toggle source

Uploads a server certificate entity for the AWS account. The server certificate entity includes a public key certificate, a private key, and an optional certificate chain, which should all be PEM-encoded.

@param [Hash] options Options for uploading the certificate.

+:name+, +:certificate_body+, and +:private_key+ are
required.

@option options [String] :certificate_body The contents of the

public key certificate in PEM-encoded format.

@option options [String] :name The name for the server

certificate. Do not include the path in this value.

@option options [String] :path The path for the server

certificate. For more information about paths, see
{http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html
Identifiers for IAM Entities} in <i>Using AWS Identity and
Access Management</i>.

@option options [String] :private_key The contents of the

private key in PEM-encoded format.

@option options [String] :certificate_chain The contents of

the certificate chain. This is typically a concatenation of
the PEM-encoded public key certificates of the chain.

@return [ServerCertificate] The newly created server

certificate.
# File lib/aws/iam/server_certificate_collection.rb, line 90
def upload(options = {})
  client_opts = options.dup
  client_opts[:server_certificate_name] = client_opts.delete(:name)

  if path = client_opts[:path]
    client_opts[:path] = "/#{path}/".
      sub(%r{^//}, "/").
      sub(%r{//$}, "/")
  end

  resp = client.upload_server_certificate(client_opts)
  ServerCertificate.new(resp.server_certificate_metadata.
                        server_certificate_name,
                        :config => config)
end
Also aliased as: create

Protected Instance Methods

each_item(response) { |certificate| ... } click to toggle source

@private

# File lib/aws/iam/server_certificate_collection.rb, line 122
def each_item response, &block
  response.server_certificate_metadata_list.each do |sc|
    certificate = ServerCertificate.new_from(:list_server_certificates,
                                             sc,
                                             sc.server_certificate_name,
                                             :config => config)
    yield(certificate)
  end
end