def describe_attribute(options = {})
      options = options.merge(image_id: @id)
      resp = @client.describe_image_attribute(options)
      resp.data
    end
def describe_attribute(options = {})
      options = options.merge(image_id: @id)
      resp = @client.describe_image_attribute(options)
      resp.data
    end
@example Request syntax with placeholder values

   image.describe_attribute({
     attribute: "description", # required, accepts description, kernel, ramdisk, launchPermission, productCodes, blockDeviceMapping, sriovNetSupport
     dry_run: false,
   })
 @param [Hash] options ({})
 @option options [required, String] :attribute
   The AMI attribute.

   **Note**\: Depending on your account privileges, the
   `blockDeviceMapping` attribute may return a `Client.AuthFailure`
   error. If this happens, use DescribeImages to get information about
   the block device mapping for the AMI.
 @option options [Boolean] :dry_run
   Checks whether you have the required permissions for the action,
   without actually making the request, and provides an error response.
   If you have the required permissions, the error response is
   `DryRunOperation`. Otherwise, it is `UnauthorizedOperation`.
 @return [Types::ImageAttribute]