def register_image(options = {})
      resp = @client.register_image(options)
      Image.new(
        id: resp.data.image_id,
        client: @client
      )
    end
def register_image(options = {})
      resp = @client.register_image(options)
      Image.new(
        id: resp.data.image_id,
        client: @client
      )
    end
@example Request syntax with placeholder values

   image = ec2.register_image({
     image_location: "String",
     architecture: "i386", # accepts i386, x86_64, arm64
     block_device_mappings: [
       {
         device_name: "String",
         virtual_name: "String",
         ebs: {
           delete_on_termination: false,
           iops: 1,
           snapshot_id: "String",
           volume_size: 1,
           volume_type: "standard", # accepts standard, io1, gp2, sc1, st1
           encrypted: false,
           kms_key_id: "String",
         },
         no_device: "String",
       },
     ],
     description: "String",
     dry_run: false,
     ena_support: false,
     kernel_id: "String",
     name: "String", # required
     billing_products: ["String"],
     ramdisk_id: "String",
     root_device_name: "String",
     sriov_net_support: "String",
     virtualization_type: "String",
   })
 @param [Hash] options ({})
 @option options [String] :image_location
   The full path to your AMI manifest in Amazon S3 storage.
 @option options [String] :architecture
   The architecture of the AMI.

   Default: For Amazon EBS-backed AMIs, `i386`. For instance store-backed
   AMIs, the architecture specified in the manifest file.
 @option options [Array<Types::BlockDeviceMapping>] :block_device_mappings
   The block device mapping entries.
 @option options [String] :description
   A description for your 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`.
 @option options [Boolean] :ena_support
   Set to `true` to enable enhanced networking with ENA for the AMI and
   any instances that you launch from the AMI.

   This option is supported only for HVM AMIs. Specifying this option
   with a PV AMI can make instances launched from the AMI unreachable.
 @option options [String] :kernel_id
   The ID of the kernel.
 @option options [required, String] :name
   A name for your AMI.

   Constraints: 3-128 alphanumeric characters, parentheses (()), square
   brackets (\[\]), spaces ( ), periods (.), slashes (/), dashes (-),
   single quotes ('), at-signs (@), or underscores(\_)
 @option options [Array<String>] :billing_products
   The billing product codes. Your account must be authorized to specify
   billing product codes. Otherwise, you can use the AWS Marketplace to
   bill for the use of an AMI.
 @option options [String] :ramdisk_id
   The ID of the RAM disk.
 @option options [String] :root_device_name
   The device name of the root device volume (for example, `/dev/sda1`).
 @option options [String] :sriov_net_support
   Set to `simple` to enable enhanced networking with the Intel 82599
   Virtual Function interface for the AMI and any instances that you
   launch from the AMI.

   There is no way to disable `sriovNetSupport` at this time.

   This option is supported only for HVM AMIs. Specifying this option
   with a PV AMI can make instances launched from the AMI unreachable.
 @option options [String] :virtualization_type
   The type of virtualization (`hvm` \| `paravirtual`).

   Default: `paravirtual`
 @return [Image]