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

   image.modify_attribute({
     attribute: "String",
     description: "value", # value <Hash,Array,String,Numeric,Boolean,IO,Set,nil>
     launch_permission: {
       add: [
         {
           group: "all", # accepts all
           user_id: "String",
         },
       ],
       remove: [
         {
           group: "all", # accepts all
           user_id: "String",
         },
       ],
     },
     operation_type: "add", # accepts add, remove
     product_codes: ["String"],
     user_groups: ["String"],
     user_ids: ["String"],
     value: "String",
     dry_run: false,
   })
 @param [Hash] options ({})
 @option options [String] :attribute
   The name of the attribute to modify. The valid values are
   `description`, `launchPermission`, and `productCodes`.
 @option options [Types::AttributeValue] :description
   A new description for the AMI.
 @option options [Types::LaunchPermissionModifications] :launch_permission
   A new launch permission for the AMI.
 @option options [String] :operation_type
   The operation type. This parameter can be used only when the
   `Attribute` parameter is `launchPermission`.
 @option options [Array<String>] :product_codes
   The DevPay product codes. After you add a product code to an AMI, it
   can't be removed.
 @option options [Array<String>] :user_groups
   The user groups. This parameter can be used only when the `Attribute`
   parameter is `launchPermission`.
 @option options [Array<String>] :user_ids
   The AWS account IDs. This parameter can be used only when the
   `Attribute` parameter is `launchPermission`.
 @option options [String] :value
   The value of the attribute being modified. This parameter can be used
   only when the `Attribute` parameter is `description` or
   `productCodes`.
 @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 [EmptyStructure]