You are viewing documentation for version 2 of the AWS SDK for Ruby. Version 1 documentation can be found here.

Class: Aws::Rekognition::Client

Inherits:
Seahorse::Client::Base show all
Defined in:
(unknown)

Overview

An API client for Amazon Rekognition. To construct a client, you need to configure a :region and :credentials.

rekognition = Aws::Rekognition::Client.new(
  region: region_name,
  credentials: credentials,
  # ...
)

See #initialize for a full list of supported configuration options.

Region

You can configure a default region in the following locations:

  • ENV['AWS_REGION']
  • Aws.config[:region]

Go here for a list of supported regions.

Credentials

Default credentials are loaded automatically from the following locations:

  • ENV['AWS_ACCESS_KEY_ID'] and ENV['AWS_SECRET_ACCESS_KEY']
  • Aws.config[:credentials]
  • The shared credentials ini file at ~/.aws/credentials (more information)
  • From an instance profile when running on EC2

You can also construct a credentials object from one of the following classes:

Alternatively, you configure credentials with :access_key_id and :secret_access_key:

# load credentials from disk
creds = YAML.load(File.read('/path/to/secrets'))

Aws::Rekognition::Client.new(
  access_key_id: creds['access_key_id'],
  secret_access_key: creds['secret_access_key']
)

Always load your credentials from outside your application. Avoid configuring credentials statically and never commit them to source control.

Instance Attribute Summary

Attributes inherited from Seahorse::Client::Base

#config, #handlers

Constructor collapse

API Operations collapse

Instance Method Summary collapse

Methods inherited from Seahorse::Client::Base

add_plugin, api, #build_request, clear_plugins, define, new, #operation, #operation_names, plugins, remove_plugin, set_api, set_plugins

Methods included from Seahorse::Client::HandlerBuilder

#handle, #handle_request, #handle_response

Constructor Details

#initialize(options = {}) ⇒ Aws::Rekognition::Client

Constructs an API client.

Options Hash (options):

  • :access_key_id (String)

    Used to set credentials statically. See Plugins::RequestSigner for more details.

  • :convert_params (Boolean) — default: true

    When true, an attempt is made to coerce request parameters into the required types. See Plugins::ParamConverter for more details.

  • :credentials (required, Credentials)

    Your AWS credentials. The following locations will be searched in order for credentials:

    • :access_key_id, :secret_access_key, and :session_token options
    • ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
    • HOME/.aws/credentials shared credentials file
    • EC2 instance profile credentials See Plugins::RequestSigner for more details.
  • :endpoint (String)

    A default endpoint is constructed from the :region. See Plugins::RegionalEndpoint for more details.

  • :http_continue_timeout (Float) — default: 1

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :http_idle_timeout (Integer) — default: 5

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :http_open_timeout (Integer) — default: 15

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :http_proxy (String)

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :http_read_timeout (Integer) — default: 60

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :http_wire_trace (Boolean) — default: false

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :log_level (Symbol) — default: :info

    The log level to send messages to the logger at. See Plugins::Logging for more details.

  • :log_formatter (Logging::LogFormatter)

    The log formatter. Defaults to Seahorse::Client::Logging::Formatter.default. See Plugins::Logging for more details.

  • :logger (Logger) — default: nil

    The Logger instance to send log messages to. If this option is not set, logging will be disabled. See Plugins::Logging for more details.

  • :profile (String)

    Used when loading credentials from the shared credentials file at HOME/.aws/credentials. When not specified, 'default' is used. See Plugins::RequestSigner for more details.

  • :raise_response_errors (Boolean) — default: true

    When true, response errors are raised. See Seahorse::Client::Plugins::RaiseResponseErrors for more details.

  • :region (required, String)

    The AWS region to connect to. The region is used to construct the client endpoint. Defaults to ENV['AWS_REGION']. Also checks AMAZON_REGION and AWS_DEFAULT_REGION. See Plugins::RegionalEndpoint for more details.

  • :retry_limit (Integer) — default: 3

    The maximum number of times to retry failed requests. Only ~ 500 level server errors and certain ~ 400 level client errors are retried. Generally, these are throttling errors, data checksum errors, networking errors, timeout errors and auth errors from expired credentials. See Plugins::RetryErrors for more details.

  • :secret_access_key (String)

    Used to set credentials statically. See Plugins::RequestSigner for more details.

  • :session_token (String)

    Used to set credentials statically. See Plugins::RequestSigner for more details.

  • :simple_json (Boolean) — default: false

    Disables request parameter conversion, validation, and formatting. Also disable response data type conversions. This option is useful when you want to ensure the highest level of performance by avoiding overhead of walking request parameters and response data structures.

    When :simple_json is enabled, the request parameters hash must be formatted exactly as the DynamoDB API expects. See Plugins::Protocols::JsonRpc for more details.

  • :ssl_ca_bundle (String)

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :ssl_ca_directory (String)

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :ssl_ca_store (String)

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :ssl_verify_peer (Boolean) — default: true

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :stub_responses (Boolean) — default: false

    Causes the client to return stubbed responses. By default fake responses are generated and returned. You can specify the response data to return or errors to raise by calling ClientStubs#stub_responses. See ClientStubs for more information.

    Please note When response stubbing is enabled, no HTTP requests are made, and retries are disabled. See Plugins::StubResponses for more details.

  • :validate_params (Boolean) — default: true

    When true, request parameters are validated before sending the request. See Plugins::ParamValidator for more details.

Instance Method Details

#compare_faces(options = {}) ⇒ Types::CompareFacesResponse

Compares a face in the source input image with each face detected in the target input image.

If the source image contains multiple faces, the service detects the largest face and uses it to compare with each face detected in the target image.

In response, the operation returns an array of face matches ordered by similarity score with the highest similarity scores first. For each face match, the response provides a bounding box of the face and confidence value (indicating the level of confidence that the bounding box contains a face). The response also provides a similarity score, which indicates how closely the faces match.

By default, only faces with the similarity score of greater than or equal to 80% are returned in the response. You can change this value.

In addition to the face matches, the response returns information about the face in the source image, including the bounding box of the face and confidence value.

This is a stateless API operation. That is, the operation does not persist any data.

For an example, see get-started-exercise-compare-faces

This operation requires permissions to perform the rekognition:CompareFaces action.

Examples:

Example: To compare two images


# This operation compares the largest face detected in the source image with each face detected in the target image.

resp = client.compare_faces({
  similarity_threshold: 90, 
  source_image: {
    s3_object: {
      bucket: "mybucket", 
      name: "mysourceimage", 
    }, 
  }, 
  target_image: {
    s3_object: {
      bucket: "mybucket", 
      name: "mytargetimage", 
    }, 
  }, 
})

# resp.to_h outputs the following:
{
  face_matches: [
    {
      face: {
        bounding_box: {
          height: 0.33481481671333313, 
          left: 0.31888890266418457, 
          top: 0.4933333396911621, 
          width: 0.25, 
        }, 
        confidence: 99.9991226196289, 
      }, 
      similarity: 100, 
    }, 
  ], 
  source_image_face: {
    bounding_box: {
      height: 0.33481481671333313, 
      left: 0.31888890266418457, 
      top: 0.4933333396911621, 
      width: 0.25, 
    }, 
    confidence: 99.9991226196289, 
  }, 
}

Request syntax with placeholder values


resp = client.compare_faces({
  source_image: { # required
    bytes: "data",
    s3_object: {
      bucket: "S3Bucket",
      name: "S3ObjectName",
      version: "S3ObjectVersion",
    },
  },
  target_image: { # required
    bytes: "data",
    s3_object: {
      bucket: "S3Bucket",
      name: "S3ObjectName",
      version: "S3ObjectVersion",
    },
  },
  similarity_threshold: 1.0,
})

Response structure


resp.source_image_face.bounding_box.width #=> Float
resp.source_image_face.bounding_box.height #=> Float
resp.source_image_face.bounding_box.left #=> Float
resp.source_image_face.bounding_box.top #=> Float
resp.source_image_face.confidence #=> Float
resp.face_matches #=> Array
resp.face_matches[0].similarity #=> Float
resp.face_matches[0].face.bounding_box.width #=> Float
resp.face_matches[0].face.bounding_box.height #=> Float
resp.face_matches[0].face.bounding_box.left #=> Float
resp.face_matches[0].face.bounding_box.top #=> Float
resp.face_matches[0].face.confidence #=> Float

Options Hash (options):

  • :source_image (required, Types::Image)

    Source image either as bytes or an S3 object

  • :target_image (required, Types::Image)

    Target image either as bytes or an S3 object

  • :similarity_threshold (Float)

    The minimum level of confidence in the match you want included in the result.

Returns:

#create_collection(options = {}) ⇒ Types::CreateCollectionResponse

Creates a collection in an AWS Region. You can add faces to the collection using the operation.

For example, you might create collections, one for each of your application users. A user can then index faces using the IndexFaces operation and persist results in a specific collection. Then, a user can search the collection for faces in the user-specific container.

For an example, see example1.

This operation requires permissions to perform the rekognition:CreateCollection action.

Examples:

Example: To create a collection


# This operation creates a Rekognition collection for storing image data.

resp = client.create_collection({
  collection_id: "myphotos", 
})

# resp.to_h outputs the following:
{
  collection_arn: "aws:rekognition:us-west-2:123456789012:collection/myphotos", 
  status_code: 200, 
}

Request syntax with placeholder values


resp = client.create_collection({
  collection_id: "CollectionId", # required
})

Response structure


resp.status_code #=> Integer
resp.collection_arn #=> String

Options Hash (options):

  • :collection_id (required, String)

    ID for the collection that you are creating.

Returns:

#delete_collection(options = {}) ⇒ Types::DeleteCollectionResponse

Deletes the specified collection. Note that this operation removes all faces in the collection. For an example, see example1.

This operation requires permissions to perform the rekognition:DeleteCollection action.

Examples:

Example: To delete a collection


# This operation deletes a Rekognition collection.

resp = client.delete_collection({
  collection_id: "myphotos", 
})

# resp.to_h outputs the following:
{
  status_code: 200, 
}

Request syntax with placeholder values


resp = client.delete_collection({
  collection_id: "CollectionId", # required
})

Response structure


resp.status_code #=> Integer

Options Hash (options):

  • :collection_id (required, String)

    ID of the collection to delete.

Returns:

#delete_faces(options = {}) ⇒ Types::DeleteFacesResponse

Deletes faces from a collection. You specify a collection ID and an array of face IDs to remove from the collection.

This operation requires permissions to perform the rekognition:DeleteFaces action.

Examples:

Example: To delete a face


# This operation deletes one or more faces from a Rekognition collection.

resp = client.delete_faces({
  collection_id: "myphotos", 
  face_ids: [
    "ff43d742-0c13-5d16-a3e8-03d3f58e980b", 
  ], 
})

# resp.to_h outputs the following:
{
  deleted_faces: [
    "ff43d742-0c13-5d16-a3e8-03d3f58e980b", 
  ], 
}

Request syntax with placeholder values


resp = client.delete_faces({
  collection_id: "CollectionId", # required
  face_ids: ["FaceId"], # required
})

Response structure


resp.deleted_faces #=> Array
resp.deleted_faces[0] #=> String

Options Hash (options):

  • :collection_id (required, String)

    Collection from which to remove the specific faces.

  • :face_ids (required, Array<String>)

    An array of face IDs to delete.

Returns:

#detect_faces(options = {}) ⇒ Types::DetectFacesResponse

Detects faces within an image (JPEG or PNG) that is provided as input.

For each face detected, the operation returns face details including a bounding box of the face, a confidence value (that the bounding box contains a face), and a fixed set of attributes such as facial landmarks (for example, coordinates of eye and mouth), gender, presence of beard, sunglasses, etc.

The face-detection algorithm is most effective on frontal faces. For non-frontal or obscured faces, the algorithm may not detect the faces or might detect faces with lower confidence.

This is a stateless API operation. That is, the operation does not persist any data.

For an example, see get-started-exercise-detect-faces.

This operation requires permissions to perform the rekognition:DetectFaces action.

Examples:

Example: To detect faces in an image


# This operation detects faces in an image stored in an AWS S3 bucket.

resp = client.detect_faces({
  image: {
    s3_object: {
      bucket: "mybucket", 
      name: "myphoto", 
    }, 
  }, 
})

# resp.to_h outputs the following:
{
  face_details: [
    {
      bounding_box: {
        height: 0.18000000715255737, 
        left: 0.5555555820465088, 
        top: 0.33666667342185974, 
        width: 0.23999999463558197, 
      }, 
      confidence: 100, 
      landmarks: [
        {
          type: "EYE_LEFT", 
          x: 0.6394737362861633, 
          y: 0.40819624066352844, 
        }, 
        {
          type: "EYE_RIGHT", 
          x: 0.7266660928726196, 
          y: 0.41039225459098816, 
        }, 
        {
          type: "NOSE_LEFT", 
          x: 0.6912462115287781, 
          y: 0.44240960478782654, 
        }, 
        {
          type: "MOUTH_DOWN", 
          x: 0.6306198239326477, 
          y: 0.46700039505958557, 
        }, 
        {
          type: "MOUTH_UP", 
          x: 0.7215608954429626, 
          y: 0.47114261984825134, 
        }, 
      ], 
      pose: {
        pitch: 4.050806522369385, 
        roll: 0.9950747489929199, 
        yaw: 13.693790435791016, 
      }, 
      quality: {
        brightness: 37.60169982910156, 
        sharpness: 80, 
      }, 
    }, 
  ], 
  orientation_correction: "ROTATE_0", 
}

Request syntax with placeholder values


resp = client.detect_faces({
  image: { # required
    bytes: "data",
    s3_object: {
      bucket: "S3Bucket",
      name: "S3ObjectName",
      version: "S3ObjectVersion",
    },
  },
  attributes: ["DEFAULT"], # accepts DEFAULT, ALL
})

Response structure


resp.face_details #=> Array
resp.face_details[0].bounding_box.width #=> Float
resp.face_details[0].bounding_box.height #=> Float
resp.face_details[0].bounding_box.left #=> Float
resp.face_details[0].bounding_box.top #=> Float
resp.face_details[0].age_range.low #=> Integer
resp.face_details[0].age_range.high #=> Integer
resp.face_details[0].smile.value #=> true/false
resp.face_details[0].smile.confidence #=> Float
resp.face_details[0].eyeglasses.value #=> true/false
resp.face_details[0].eyeglasses.confidence #=> Float
resp.face_details[0].sunglasses.value #=> true/false
resp.face_details[0].sunglasses.confidence #=> Float
resp.face_details[0].gender.value #=> String, one of "MALE", "FEMALE"
resp.face_details[0].gender.confidence #=> Float
resp.face_details[0].beard.value #=> true/false
resp.face_details[0].beard.confidence #=> Float
resp.face_details[0].mustache.value #=> true/false
resp.face_details[0].mustache.confidence #=> Float
resp.face_details[0].eyes_open.value #=> true/false
resp.face_details[0].eyes_open.confidence #=> Float
resp.face_details[0].mouth_open.value #=> true/false
resp.face_details[0].mouth_open.confidence #=> Float
resp.face_details[0].emotions #=> Array
resp.face_details[0].emotions[0].type #=> String, one of "HAPPY", "SAD", "ANGRY", "CONFUSED", "DISGUSTED", "SURPRISED", "CALM", "UNKNOWN"
resp.face_details[0].emotions[0].confidence #=> Float
resp.face_details[0].landmarks #=> Array
resp.face_details[0].landmarks[0].type #=> String, one of "EYE_LEFT", "EYE_RIGHT", "NOSE", "MOUTH_LEFT", "MOUTH_RIGHT", "LEFT_EYEBROW_LEFT", "LEFT_EYEBROW_RIGHT", "LEFT_EYEBROW_UP", "RIGHT_EYEBROW_LEFT", "RIGHT_EYEBROW_RIGHT", "RIGHT_EYEBROW_UP", "LEFT_EYE_LEFT", "LEFT_EYE_RIGHT", "LEFT_EYE_UP", "LEFT_EYE_DOWN", "RIGHT_EYE_LEFT", "RIGHT_EYE_RIGHT", "RIGHT_EYE_UP", "RIGHT_EYE_DOWN", "NOSE_LEFT", "NOSE_RIGHT", "MOUTH_UP", "MOUTH_DOWN", "LEFT_PUPIL", "RIGHT_PUPIL"
resp.face_details[0].landmarks[0].x #=> Float
resp.face_details[0].landmarks[0].y #=> Float
resp.face_details[0].pose.roll #=> Float
resp.face_details[0].pose.yaw #=> Float
resp.face_details[0].pose.pitch #=> Float
resp.face_details[0].quality.brightness #=> Float
resp.face_details[0].quality.sharpness #=> Float
resp.face_details[0].confidence #=> Float
resp.orientation_correction #=> String, one of "ROTATE_0", "ROTATE_90", "ROTATE_180", "ROTATE_270"

Options Hash (options):

  • :image (required, Types::Image)

    The image in which you want to detect faces. You can specify a blob or an S3 object.

  • :attributes (Array<String>)

    A list of facial attributes you want to be returned. This can be the default list of attributes or all attributes. If you don\'t specify a value for Attributes or if you specify ["DEFAULT"], the API returns the following subset of facial attributes: BoundingBox, Confidence, Pose, Quality and Landmarks. If you provide ["ALL"], all facial attributes are returned but the operation will take longer to complete.

    If you provide both, ["ALL", "DEFAULT"], the service uses a logical AND operator to determine which attributes to return (in this case, all attributes).

Returns:

#detect_labels(options = {}) ⇒ Types::DetectLabelsResponse

Detects instances of real-world labels within an image (JPEG or PNG) provided as input. This includes objects like flower, tree, and table; events like wedding, graduation, and birthday party; and concepts like landscape, evening, and nature. For an example, see get-started-exercise-detect-labels.

For each object, scene, and concept the API returns one or more labels. Each label provides the object name, and the level of confidence that the image contains the object. For example, suppose the input image has a lighthouse, the sea, and a rock. The response will include all three labels, one for each object.

{Name: lighthouse, Confidence: 98.4629}

{Name: rock,Confidence: 79.2097}

{Name: sea,Confidence: 75.061}

In the preceding example, the operation returns one label for each of the three objects. The operation can also return multiple labels for the same object in the image. For example, if the input image shows a flower (for example, a tulip), the operation might return the following three labels.

{Name: flower,Confidence: 99.0562}

{Name: plant,Confidence: 99.0562}

{Name: tulip,Confidence: 99.0562}

In this example, the detection algorithm more precisely identifies the flower as a tulip.

You can provide the input image as an S3 object or as base64-encoded bytes. In response, the API returns an array of labels. In addition, the response also includes the orientation correction. Optionally, you can specify MinConfidence to control the confidence threshold for the labels returned. The default is 50%. You can also add the MaxLabels parameter to limit the number of labels returned.

If the object detected is a person, the operation doesn't provide the same facial details that the DetectFaces operation provides.

This is a stateless API operation. That is, the operation does not persist any data.

This operation requires permissions to perform the rekognition:DetectLabels action.

Examples:

Example: To detect labels


# This operation detects labels in the supplied image

resp = client.detect_labels({
  image: {
    s3_object: {
      bucket: "mybucket", 
      name: "myphoto", 
    }, 
  }, 
  max_labels: 123, 
  min_confidence: 70, 
})

# resp.to_h outputs the following:
{
  labels: [
    {
      confidence: 99.25072479248047, 
      name: "People", 
    }, 
    {
      confidence: 99.25074005126953, 
      name: "Person", 
    }, 
  ], 
}

Request syntax with placeholder values


resp = client.detect_labels({
  image: { # required
    bytes: "data",
    s3_object: {
      bucket: "S3Bucket",
      name: "S3ObjectName",
      version: "S3ObjectVersion",
    },
  },
  max_labels: 1,
  min_confidence: 1.0,
})

Response structure


resp.labels #=> Array
resp.labels[0].name #=> String
resp.labels[0].confidence #=> Float
resp.orientation_correction #=> String, one of "ROTATE_0", "ROTATE_90", "ROTATE_180", "ROTATE_270"

Options Hash (options):

  • :image (required, Types::Image)

    The input image. You can provide a blob of image bytes or an S3 object.

  • :max_labels (Integer)

    Maximum number of labels you want the service to return in the response. The service returns the specified number of highest confidence labels.

  • :min_confidence (Float)

    Specifies the minimum confidence level for the labels to return. Amazon Rekognition doesn\'t return any labels with confidence lower than this specified value.

    If MinConfidence is not specified, the operation returns labels with a confidence values greater than or equal to 50 percent.

Returns:

#detect_moderation_labels(options = {}) ⇒ Types::DetectModerationLabelsResponse

Detects explicit or suggestive adult content in a specified .jpeg or .png image. Use DetectModerationLabels to moderate images depending on your requirements. For example, you might want to filter images that contain nudity, but not images containing suggestive content.

To filter images, use the labels returned by DetectModerationLabels to determine which types of content are appropriate. For information about moderation labels, see howitworks-moderateimage.

Examples:

Request syntax with placeholder values


resp = client.detect_moderation_labels({
  image: { # required
    bytes: "data",
    s3_object: {
      bucket: "S3Bucket",
      name: "S3ObjectName",
      version: "S3ObjectVersion",
    },
  },
  min_confidence: 1.0,
})

Response structure


resp.moderation_labels #=> Array
resp.moderation_labels[0].confidence #=> Float
resp.moderation_labels[0].name #=> String
resp.moderation_labels[0].parent_name #=> String

Options Hash (options):

  • :image (required, Types::Image)

    Provides the source image either as bytes or an S3 object.

    The region for the S3 bucket containing the S3 object must match the region you use for Amazon Rekognition operations.

    You may need to Base64-encode the image bytes depending on the language you are using and whether or not you are using the AWS SDK. For more information, see example4.

    If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes using the Bytes property is not supported. You must first upload the image to an Amazon S3 bucket and then call the operation using the S3Object property.

    For Amazon Rekognition to process an S3 object, the user must have permission to access the S3 object. For more information, see manage-access-resource-policies.

  • :min_confidence (Float)

    Specifies the minimum confidence level for the labels to return. Amazon Rekognition doesn\'t return any labels with a confidence level lower than this specified value.

    If you don\'t specify MinConfidence, the operation returns labels with confidence values greater than or equal to 50 percent.

Returns:

#index_faces(options = {}) ⇒ Types::IndexFacesResponse

Detects faces in the input image and adds them to the specified collection.

Amazon Rekognition does not save the actual faces detected. Instead, the underlying detection algorithm first detects the faces in the input image, and for each face extracts facial features into a feature vector, and stores it in the back-end database. Amazon Rekognition uses feature vectors when performing face match and search operations using the and operations.

If you provide the optional externalImageID for the input image you provided, Amazon Rekognition associates this ID with all faces that it detects. When you call the operation, the response returns the external ID. You can use this external image ID to create a client-side index to associate the faces with each image. You can then use the index to find all faces in an image.

In response, the operation returns an array of metadata for all detected faces. This includes, the bounding box of the detected face, confidence value (indicating the bounding box contains a face), a face ID assigned by the service for each face that is detected and stored, and an image ID assigned by the service for the input image If you request all facial attributes (using the detectionAttributes parameter, Amazon Rekognition returns detailed facial attributes such as facial landmarks (for example, location of eye and mount) and other facial attributes such gender. If you provide the same image, specify the same collection, and use the same external ID in the IndexFaces operation, Amazon Rekognition doesn't save duplicate face metadata.

For an example, see example2.

This operation requires permissions to perform the rekognition:IndexFaces action.

Examples:

Example: To add a face to a collection


# This operation detects faces in an image and adds them to the specified Rekognition collection.

resp = client.index_faces({
  collection_id: "myphotos", 
  detection_attributes: [
  ], 
  external_image_id: "myphotoid", 
  image: {
    s3_object: {
      bucket: "mybucket", 
      name: "myphoto", 
    }, 
  }, 
})

# resp.to_h outputs the following:
{
  face_records: [
    {
      face: {
        bounding_box: {
          height: 0.33481481671333313, 
          left: 0.31888890266418457, 
          top: 0.4933333396911621, 
          width: 0.25, 
        }, 
        confidence: 99.9991226196289, 
        face_id: "ff43d742-0c13-5d16-a3e8-03d3f58e980b", 
        image_id: "465f4e93-763e-51d0-b030-b9667a2d94b1", 
      }, 
      face_detail: {
        bounding_box: {
          height: 0.33481481671333313, 
          left: 0.31888890266418457, 
          top: 0.4933333396911621, 
          width: 0.25, 
        }, 
        confidence: 99.9991226196289, 
        landmarks: [
          {
            type: "EYE_LEFT", 
            x: 0.3976764678955078, 
            y: 0.6248345971107483, 
          }, 
          {
            type: "EYE_RIGHT", 
            x: 0.4810936450958252, 
            y: 0.6317117214202881, 
          }, 
          {
            type: "NOSE_LEFT", 
            x: 0.41986238956451416, 
            y: 0.7111940383911133, 
          }, 
          {
            type: "MOUTH_DOWN", 
            x: 0.40525302290916443, 
            y: 0.7497701048851013, 
          }, 
          {
            type: "MOUTH_UP", 
            x: 0.4753248989582062, 
            y: 0.7558549642562866, 
          }, 
        ], 
        pose: {
          pitch: -9.713645935058594, 
          roll: 4.707281112670898, 
          yaw: -24.438663482666016, 
        }, 
        quality: {
          brightness: 29.23358917236328, 
          sharpness: 80, 
        }, 
      }, 
    }, 
    {
      face: {
        bounding_box: {
          height: 0.32592591643333435, 
          left: 0.5144444704055786, 
          top: 0.15111111104488373, 
          width: 0.24444444477558136, 
        }, 
        confidence: 99.99950408935547, 
        face_id: "8be04dba-4e58-520d-850e-9eae4af70eb2", 
        image_id: "465f4e93-763e-51d0-b030-b9667a2d94b1", 
      }, 
      face_detail: {
        bounding_box: {
          height: 0.32592591643333435, 
          left: 0.5144444704055786, 
          top: 0.15111111104488373, 
          width: 0.24444444477558136, 
        }, 
        confidence: 99.99950408935547, 
        landmarks: [
          {
            type: "EYE_LEFT", 
            x: 0.6006892323493958, 
            y: 0.290842205286026, 
          }, 
          {
            type: "EYE_RIGHT", 
            x: 0.6808141469955444, 
            y: 0.29609042406082153, 
          }, 
          {
            type: "NOSE_LEFT", 
            x: 0.6395332217216492, 
            y: 0.3522595763206482, 
          }, 
          {
            type: "MOUTH_DOWN", 
            x: 0.5892083048820496, 
            y: 0.38689887523651123, 
          }, 
          {
            type: "MOUTH_UP", 
            x: 0.674560010433197, 
            y: 0.394125759601593, 
          }, 
        ], 
        pose: {
          pitch: -4.683138370513916, 
          roll: 2.1029529571533203, 
          yaw: 6.716655254364014, 
        }, 
        quality: {
          brightness: 34.951698303222656, 
          sharpness: 160, 
        }, 
      }, 
    }, 
  ], 
  orientation_correction: "ROTATE_0", 
}

Request syntax with placeholder values


resp = client.index_faces({
  collection_id: "CollectionId", # required
  image: { # required
    bytes: "data",
    s3_object: {
      bucket: "S3Bucket",
      name: "S3ObjectName",
      version: "S3ObjectVersion",
    },
  },
  external_image_id: "ExternalImageId",
  detection_attributes: ["DEFAULT"], # accepts DEFAULT, ALL
})

Response structure


resp.face_records #=> Array
resp.face_records[0].face.face_id #=> String
resp.face_records[0].face.bounding_box.width #=> Float
resp.face_records[0].face.bounding_box.height #=> Float
resp.face_records[0].face.bounding_box.left #=> Float
resp.face_records[0].face.bounding_box.top #=> Float
resp.face_records[0].face.image_id #=> String
resp.face_records[0].face.external_image_id #=> String
resp.face_records[0].face.confidence #=> Float
resp.face_records[0].face_detail.bounding_box.width #=> Float
resp.face_records[0].face_detail.bounding_box.height #=> Float
resp.face_records[0].face_detail.bounding_box.left #=> Float
resp.face_records[0].face_detail.bounding_box.top #=> Float
resp.face_records[0].face_detail.age_range.low #=> Integer
resp.face_records[0].face_detail.age_range.high #=> Integer
resp.face_records[0].face_detail.smile.value #=> true/false
resp.face_records[0].face_detail.smile.confidence #=> Float
resp.face_records[0].face_detail.eyeglasses.value #=> true/false
resp.face_records[0].face_detail.eyeglasses.confidence #=> Float
resp.face_records[0].face_detail.sunglasses.value #=> true/false
resp.face_records[0].face_detail.sunglasses.confidence #=> Float
resp.face_records[0].face_detail.gender.value #=> String, one of "MALE", "FEMALE"
resp.face_records[0].face_detail.gender.confidence #=> Float
resp.face_records[0].face_detail.beard.value #=> true/false
resp.face_records[0].face_detail.beard.confidence #=> Float
resp.face_records[0].face_detail.mustache.value #=> true/false
resp.face_records[0].face_detail.mustache.confidence #=> Float
resp.face_records[0].face_detail.eyes_open.value #=> true/false
resp.face_records[0].face_detail.eyes_open.confidence #=> Float
resp.face_records[0].face_detail.mouth_open.value #=> true/false
resp.face_records[0].face_detail.mouth_open.confidence #=> Float
resp.face_records[0].face_detail.emotions #=> Array
resp.face_records[0].face_detail.emotions[0].type #=> String, one of "HAPPY", "SAD", "ANGRY", "CONFUSED", "DISGUSTED", "SURPRISED", "CALM", "UNKNOWN"
resp.face_records[0].face_detail.emotions[0].confidence #=> Float
resp.face_records[0].face_detail.landmarks #=> Array
resp.face_records[0].face_detail.landmarks[0].type #=> String, one of "EYE_LEFT", "EYE_RIGHT", "NOSE", "MOUTH_LEFT", "MOUTH_RIGHT", "LEFT_EYEBROW_LEFT", "LEFT_EYEBROW_RIGHT", "LEFT_EYEBROW_UP", "RIGHT_EYEBROW_LEFT", "RIGHT_EYEBROW_RIGHT", "RIGHT_EYEBROW_UP", "LEFT_EYE_LEFT", "LEFT_EYE_RIGHT", "LEFT_EYE_UP", "LEFT_EYE_DOWN", "RIGHT_EYE_LEFT", "RIGHT_EYE_RIGHT", "RIGHT_EYE_UP", "RIGHT_EYE_DOWN", "NOSE_LEFT", "NOSE_RIGHT", "MOUTH_UP", "MOUTH_DOWN", "LEFT_PUPIL", "RIGHT_PUPIL"
resp.face_records[0].face_detail.landmarks[0].x #=> Float
resp.face_records[0].face_detail.landmarks[0].y #=> Float
resp.face_records[0].face_detail.pose.roll #=> Float
resp.face_records[0].face_detail.pose.yaw #=> Float
resp.face_records[0].face_detail.pose.pitch #=> Float
resp.face_records[0].face_detail.quality.brightness #=> Float
resp.face_records[0].face_detail.quality.sharpness #=> Float
resp.face_records[0].face_detail.confidence #=> Float
resp.orientation_correction #=> String, one of "ROTATE_0", "ROTATE_90", "ROTATE_180", "ROTATE_270"

Options Hash (options):

  • :collection_id (required, String)

    The ID of an existing collection to which you want to add the faces that are detected in the input images.

  • :image (required, Types::Image)

    Provides the source image either as bytes or an S3 object.

    The region for the S3 bucket containing the S3 object must match the region you use for Amazon Rekognition operations.

    You may need to Base64-encode the image bytes depending on the language you are using and whether or not you are using the AWS SDK. For more information, see example4.

    If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes using the Bytes property is not supported. You must first upload the image to an Amazon S3 bucket and then call the operation using the S3Object property.

    For Amazon Rekognition to process an S3 object, the user must have permission to access the S3 object. For more information, see manage-access-resource-policies.

  • :external_image_id (String)

    ID you want to assign to all the faces detected in the image.

  • :detection_attributes (Array<String>)

    A list of facial attributes that you want to be returned. This can be the default list of attributes or all attributes. If you don\'t specify a value for Attributes or if you specify ["DEFAULT"], the API returns the following subset of facial attributes: BoundingBox, Confidence, Pose, Quality and Landmarks. If you provide ["ALL"], all facial attributes are returned but the operation will take longer to complete.

    If you provide both, ["ALL", "DEFAULT"], the service uses a logical AND operator to determine which attributes to return (in this case, all attributes).

Returns:

#list_collections(options = {}) ⇒ Types::ListCollectionsResponse

Returns list of collection IDs in your account. If the result is truncated, the response also provides a NextToken that you can use in the subsequent request to fetch the next set of collection IDs.

For an example, see example1.

This operation requires permissions to perform the rekognition:ListCollections action.

Examples:

Example: To list the collections


# This operation returns a list of Rekognition collections.

resp = client.list_collections({
})

# resp.to_h outputs the following:
{
  collection_ids: [
    "myphotos", 
  ], 
}

Request syntax with placeholder values


resp = client.list_collections({
  next_token: "PaginationToken",
  max_results: 1,
})

Response structure


resp.collection_ids #=> Array
resp.collection_ids[0] #=> String
resp.next_token #=> String

Options Hash (options):

  • :next_token (String)

    Pagination token from the previous response.

  • :max_results (Integer)

    Maximum number of collection IDs to return.

Returns:

#list_faces(options = {}) ⇒ Types::ListFacesResponse

Returns metadata for faces in the specified collection. This metadata includes information such as the bounding box coordinates, the confidence (that the bounding box contains a face), and face ID. For an example, see example3.

This operation requires permissions to perform the rekognition:ListFaces action.

Examples:

Example: To list the faces in a collection


# This operation lists the faces in a Rekognition collection.

resp = client.list_faces({
  collection_id: "myphotos", 
  max_results: 20, 
})

# resp.to_h outputs the following:
{
  faces: [
    {
      bounding_box: {
        height: 0.18000000715255737, 
        left: 0.5555559992790222, 
        top: 0.336667001247406, 
        width: 0.23999999463558197, 
      }, 
      confidence: 100, 
      face_id: "1c62e8b5-69a7-5b7d-b3cd-db4338a8a7e7", 
      image_id: "147fdf82-7a71-52cf-819b-e786c7b9746e", 
    }, 
    {
      bounding_box: {
        height: 0.16555599868297577, 
        left: 0.30963000655174255, 
        top: 0.7066670060157776, 
        width: 0.22074100375175476, 
      }, 
      confidence: 100, 
      face_id: "29a75abe-397b-5101-ba4f-706783b2246c", 
      image_id: "147fdf82-7a71-52cf-819b-e786c7b9746e", 
    }, 
    {
      bounding_box: {
        height: 0.3234420120716095, 
        left: 0.3233329951763153, 
        top: 0.5, 
        width: 0.24222199618816376, 
      }, 
      confidence: 99.99829864501953, 
      face_id: "38271d79-7bc2-5efb-b752-398a8d575b85", 
      image_id: "d5631190-d039-54e4-b267-abd22c8647c5", 
    }, 
    {
      bounding_box: {
        height: 0.03555560111999512, 
        left: 0.37388700246810913, 
        top: 0.2477779984474182, 
        width: 0.04747769981622696, 
      }, 
      confidence: 99.99210357666016, 
      face_id: "3b01bef0-c883-5654-ba42-d5ad28b720b3", 
      image_id: "812d9f04-86f9-54fc-9275-8d0dcbcb6784", 
    }, 
    {
      bounding_box: {
        height: 0.05333330109715462, 
        left: 0.2937690019607544, 
        top: 0.35666701197624207, 
        width: 0.07121659815311432, 
      }, 
      confidence: 99.99919891357422, 
      face_id: "4839a608-49d0-566c-8301-509d71b534d1", 
      image_id: "812d9f04-86f9-54fc-9275-8d0dcbcb6784", 
    }, 
    {
      bounding_box: {
        height: 0.3249259889125824, 
        left: 0.5155559778213501, 
        top: 0.1513350009918213, 
        width: 0.24333299696445465, 
      }, 
      confidence: 99.99949645996094, 
      face_id: "70008e50-75e4-55d0-8e80-363fb73b3a14", 
      image_id: "d5631190-d039-54e4-b267-abd22c8647c5", 
    }, 
    {
      bounding_box: {
        height: 0.03777780011296272, 
        left: 0.7002969980239868, 
        top: 0.18777799606323242, 
        width: 0.05044509842991829, 
      }, 
      confidence: 99.92639923095703, 
      face_id: "7f5f88ed-d684-5a88-b0df-01e4a521552b", 
      image_id: "812d9f04-86f9-54fc-9275-8d0dcbcb6784", 
    }, 
    {
      bounding_box: {
        height: 0.05555560067296028, 
        left: 0.13946600258350372, 
        top: 0.46333301067352295, 
        width: 0.07270029932260513, 
      }, 
      confidence: 99.99469757080078, 
      face_id: "895b4e2c-81de-5902-a4bd-d1792bda00b2", 
      image_id: "812d9f04-86f9-54fc-9275-8d0dcbcb6784", 
    }, 
    {
      bounding_box: {
        height: 0.3259260058403015, 
        left: 0.5144439935684204, 
        top: 0.15111100673675537, 
        width: 0.24444399774074554, 
      }, 
      confidence: 99.99949645996094, 
      face_id: "8be04dba-4e58-520d-850e-9eae4af70eb2", 
      image_id: "465f4e93-763e-51d0-b030-b9667a2d94b1", 
    }, 
    {
      bounding_box: {
        height: 0.18888899683952332, 
        left: 0.3783380091190338, 
        top: 0.2355560064315796, 
        width: 0.25222599506378174, 
      }, 
      confidence: 99.9999008178711, 
      face_id: "908544ad-edc3-59df-8faf-6a87cc256cf5", 
      image_id: "3c731605-d772-541a-a5e7-0375dbc68a07", 
    }, 
    {
      bounding_box: {
        height: 0.33481499552726746, 
        left: 0.31888899207115173, 
        top: 0.49333301186561584, 
        width: 0.25, 
      }, 
      confidence: 99.99909973144531, 
      face_id: "ff43d742-0c13-5d16-a3e8-03d3f58e980b", 
      image_id: "465f4e93-763e-51d0-b030-b9667a2d94b1", 
    }, 
  ], 
}

Request syntax with placeholder values


resp = client.list_faces({
  collection_id: "CollectionId", # required
  next_token: "PaginationToken",
  max_results: 1,
})

Response structure


resp.faces #=> Array
resp.faces[0].face_id #=> String
resp.faces[0].bounding_box.width #=> Float
resp.faces[0].bounding_box.height #=> Float
resp.faces[0].bounding_box.left #=> Float
resp.faces[0].bounding_box.top #=> Float
resp.faces[0].image_id #=> String
resp.faces[0].external_image_id #=> String
resp.faces[0].confidence #=> Float
resp.next_token #=> String

Options Hash (options):

  • :collection_id (required, String)

    ID of the collection from which to list the faces.

  • :next_token (String)

    If the previous response was incomplete (because there is more data to retrieve), Amazon Rekognition returns a pagination token in the response. You can use this pagination token to retrieve the next set of faces.

  • :max_results (Integer)

    Maximum number of faces to return.

Returns:

#search_faces(options = {}) ⇒ Types::SearchFacesResponse

For a given input face ID, searches for matching faces in the collection the face belongs to. You get a face ID when you add a face to the collection using the IndexFaces operation. The operation compares the features of the input face with faces in the specified collection.

You can also search faces without indexing faces by using the SearchFacesByImage operation.

The operation response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match that is found. Along with the metadata, the response also includes a confidence value for each face match, indicating the confidence that the specific face matches the input face.

For an example, see example3.

This operation requires permissions to perform the rekognition:SearchFaces action.

Examples:

Example: To delete a face


# This operation searches for matching faces in the collection the supplied face belongs to.

resp = client.search_faces({
  collection_id: "myphotos", 
  face_id: "70008e50-75e4-55d0-8e80-363fb73b3a14", 
  face_match_threshold: 90, 
  max_faces: 10, 
})

# resp.to_h outputs the following:
{
  face_matches: [
    {
      face: {
        bounding_box: {
          height: 0.3259260058403015, 
          left: 0.5144439935684204, 
          top: 0.15111100673675537, 
          width: 0.24444399774074554, 
        }, 
        confidence: 99.99949645996094, 
        face_id: "8be04dba-4e58-520d-850e-9eae4af70eb2", 
        image_id: "465f4e93-763e-51d0-b030-b9667a2d94b1", 
      }, 
      similarity: 99.97222137451172, 
    }, 
    {
      face: {
        bounding_box: {
          height: 0.16555599868297577, 
          left: 0.30963000655174255, 
          top: 0.7066670060157776, 
          width: 0.22074100375175476, 
        }, 
        confidence: 100, 
        face_id: "29a75abe-397b-5101-ba4f-706783b2246c", 
        image_id: "147fdf82-7a71-52cf-819b-e786c7b9746e", 
      }, 
      similarity: 97.04154968261719, 
    }, 
    {
      face: {
        bounding_box: {
          height: 0.18888899683952332, 
          left: 0.3783380091190338, 
          top: 0.2355560064315796, 
          width: 0.25222599506378174, 
        }, 
        confidence: 99.9999008178711, 
        face_id: "908544ad-edc3-59df-8faf-6a87cc256cf5", 
        image_id: "3c731605-d772-541a-a5e7-0375dbc68a07", 
      }, 
      similarity: 95.94520568847656, 
    }, 
  ], 
  searched_face_id: "70008e50-75e4-55d0-8e80-363fb73b3a14", 
}

Request syntax with placeholder values


resp = client.search_faces({
  collection_id: "CollectionId", # required
  face_id: "FaceId", # required
  max_faces: 1,
  face_match_threshold: 1.0,
})

Response structure


resp.searched_face_id #=> String
resp.face_matches #=> Array
resp.face_matches[0].similarity #=> Float
resp.face_matches[0].face.face_id #=> String
resp.face_matches[0].face.bounding_box.width #=> Float
resp.face_matches[0].face.bounding_box.height #=> Float
resp.face_matches[0].face.bounding_box.left #=> Float
resp.face_matches[0].face.bounding_box.top #=> Float
resp.face_matches[0].face.image_id #=> String
resp.face_matches[0].face.external_image_id #=> String
resp.face_matches[0].face.confidence #=> Float

Options Hash (options):

  • :collection_id (required, String)

    ID of the collection the face belongs to.

  • :face_id (required, String)

    ID of a face to find matches for in the collection.

  • :max_faces (Integer)

    Maximum number of faces to return. The operation returns the maximum number of faces with the highest confidence in the match.

  • :face_match_threshold (Float)

    Optional value specifying the minimum confidence in the face match to return. For example, don\'t return any matches where confidence in matches is less than 70%.

Returns:

#search_faces_by_image(options = {}) ⇒ Types::SearchFacesByImageResponse

For a given input image, first detects the largest face in the image, and then searches the specified collection for matching faces. The operation compares the features of the input face with faces in the specified collection.

To search for all faces in an input image, you might first call the operation, and then use the face IDs returned in subsequent calls to the operation.

You can also call the DetectFaces operation and use the bounding boxes in the response to make face crops, which then you can pass in to the SearchFacesByImage operation.

The response returns an array of faces that match, ordered by similarity score with the highest similarity first. More specifically, it is an array of metadata for each face match found. Along with the metadata, the response also includes a similarity indicating how similar the face is to the input face. In the response, the operation also returns the bounding box (and a confidence level that the bounding box contains a face) of the face that Amazon Rekognition used for the input image.

For an example, see example3.

This operation requires permissions to perform the rekognition:SearchFacesByImage action.

Examples:

Example: To search for faces matching a supplied image


# This operation searches for faces in a Rekognition collection that match the largest face in an S3 bucket stored image.

resp = client.search_faces_by_image({
  collection_id: "myphotos", 
  face_match_threshold: 95, 
  image: {
    s3_object: {
      bucket: "mybucket", 
      name: "myphoto", 
    }, 
  }, 
  max_faces: 5, 
})

# resp.to_h outputs the following:
{
  face_matches: [
    {
      face: {
        bounding_box: {
          height: 0.3234420120716095, 
          left: 0.3233329951763153, 
          top: 0.5, 
          width: 0.24222199618816376, 
        }, 
        confidence: 99.99829864501953, 
        face_id: "38271d79-7bc2-5efb-b752-398a8d575b85", 
        image_id: "d5631190-d039-54e4-b267-abd22c8647c5", 
      }, 
      similarity: 99.97036743164062, 
    }, 
  ], 
  searched_face_bounding_box: {
    height: 0.33481481671333313, 
    left: 0.31888890266418457, 
    top: 0.4933333396911621, 
    width: 0.25, 
  }, 
  searched_face_confidence: 99.9991226196289, 
}

Request syntax with placeholder values


resp = client.search_faces_by_image({
  collection_id: "CollectionId", # required
  image: { # required
    bytes: "data",
    s3_object: {
      bucket: "S3Bucket",
      name: "S3ObjectName",
      version: "S3ObjectVersion",
    },
  },
  max_faces: 1,
  face_match_threshold: 1.0,
})

Response structure


resp.searched_face_bounding_box.width #=> Float
resp.searched_face_bounding_box.height #=> Float
resp.searched_face_bounding_box.left #=> Float
resp.searched_face_bounding_box.top #=> Float
resp.searched_face_confidence #=> Float
resp.face_matches #=> Array
resp.face_matches[0].similarity #=> Float
resp.face_matches[0].face.face_id #=> String
resp.face_matches[0].face.bounding_box.width #=> Float
resp.face_matches[0].face.bounding_box.height #=> Float
resp.face_matches[0].face.bounding_box.left #=> Float
resp.face_matches[0].face.bounding_box.top #=> Float
resp.face_matches[0].face.image_id #=> String
resp.face_matches[0].face.external_image_id #=> String
resp.face_matches[0].face.confidence #=> Float

Options Hash (options):

  • :collection_id (required, String)

    ID of the collection to search.

  • :image (required, Types::Image)

    Provides the source image either as bytes or an S3 object.

    The region for the S3 bucket containing the S3 object must match the region you use for Amazon Rekognition operations.

    You may need to Base64-encode the image bytes depending on the language you are using and whether or not you are using the AWS SDK. For more information, see example4.

    If you use the Amazon CLI to call Amazon Rekognition operations, passing image bytes using the Bytes property is not supported. You must first upload the image to an Amazon S3 bucket and then call the operation using the S3Object property.

    For Amazon Rekognition to process an S3 object, the user must have permission to access the S3 object. For more information, see manage-access-resource-policies.

  • :max_faces (Integer)

    Maximum number of faces to return. The operation returns the maximum number of faces with the highest confidence in the match.

  • :face_match_threshold (Float) — default: Optional

    Specifies the minimum confidence in the face match to return. For example, don\'t return any matches where confidence in matches is less than 70%.

Returns:

#wait_until(waiter_name, params = {}) {|waiter| ... } ⇒ Boolean

Waiters polls an API operation until a resource enters a desired state.

Basic Usage

Waiters will poll until they are succesful, they fail by entering a terminal state, or until a maximum number of attempts are made.

# polls in a loop, sleeping between attempts client.waiter_until(waiter_name, params)

Configuration

You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. You configure waiters by passing a block to #wait_until:

# poll for ~25 seconds
client.wait_until(...) do |w|
  w.max_attempts = 5
  w.delay = 5
end

Callbacks

You can be notified before each polling attempt and before each delay. If you throw :success or :failure from these callbacks, it will terminate the waiter.

started_at = Time.now
client.wait_until(...) do |w|

  # disable max attempts
  w.max_attempts = nil

  # poll for 1 hour, instead of a number of attempts
  w.before_wait do |attempts, response|
    throw :failure if Time.now - started_at > 3600
  end

end

Handling Errors

When a waiter is successful, it returns true. When a waiter fails, it raises an error. All errors raised extend from Waiters::Errors::WaiterFailed.

begin
  client.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
  # resource did not enter the desired state in time
end

Parameters:

  • waiter_name (Symbol)

    The name of the waiter. See #waiter_names for a full list of supported waiters.

  • params (Hash) (defaults to: {})

    Additional request parameters. See the #waiter_names for a list of supported waiters and what request they call. The called request determines the list of accepted parameters.

Yield Parameters:

Returns:

  • (Boolean)

    Returns true if the waiter was successful.

Raises:

  • (Errors::FailureStateError)

    Raised when the waiter terminates because the waiter has entered a state that it will not transition out of, preventing success.

  • (Errors::TooManyAttemptsError)

    Raised when the configured maximum number of attempts have been made, and the waiter is not yet successful.

  • (Errors::UnexpectedError)

    Raised when an error is encounted while polling for a resource that is not expected.

  • (Errors::NoSuchWaiterError)

    Raised when you request to wait for an unknown state.

#waiter_namesArray<Symbol>

Returns the list of supported waiters. The following table lists the supported waiters and the client method they call:

Waiter NameClient MethodDefault Delay:Default Max Attempts:

Returns:

  • (Array<Symbol>)

    the list of supported waiters.