Skip to content

detach_image_watermark

detach_image_watermark(
    *,
    config_overrides: Optional[EC2ClientConfig] = None,
    image_id: Optional[ImageId] = None,
    watermark_key: Optional[String] = None,
    dry_run: Optional[Boolean] = None,
) -> DetachImageWatermarkResult

Removes a watermark from the specified AMI. This is an idempotent operation. It succeeds even if the watermark does not exist on the image.

Removing a watermark from an image does not affect derivative images that already carry the watermark.

Only the AMI owner can detach watermarks.

Parameters:

  • image_id (Optional[ImageId], default: None ) –

    The ID of the AMI.

  • watermark_key (Optional[String], default: None ) –

    The watermark key to remove, in accountId:watermarkName format (for example, 123456789012:approvedAmi).

  • dry_run (Optional[Boolean], default: None ) –

    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.

Raises:

Source code in docs_src/capo_ec2/_services/ec2.py
def detach_image_watermark(
    self,
    *,
    config_overrides: Optional[EC2ClientConfig] = None,
    image_id: Optional["capo_ec2.types.image_id.ImageId"] = None,
    watermark_key: Optional["capo_ec2.types.string.String"] = None,
    dry_run: Optional["capo_ec2.types.boolean.Boolean"] = None,
) -> "capo_ec2.types.detach_image_watermark_result.DetachImageWatermarkResult":
    """<p>Removes a watermark from the specified AMI. This is an idempotent operation. It succeeds even if the watermark does not exist on the image.</p> <p>Removing a watermark from an image does not affect derivative images that already carry the watermark.</p> <p>Only the AMI owner can detach watermarks.</p>

    Args:
        image_id: <p>The ID of the AMI.</p>
        watermark_key: <p>The watermark key to remove, in <code>accountId:watermarkName</code> format (for example, <code>123456789012:approvedAmi</code>).</p>
        dry_run: <p>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 <code>DryRunOperation</code>. Otherwise, it is <code>UnauthorizedOperation</code>.</p>

    Raises:
        capo_ec2.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_ec2.types.detach_image_watermark_request.DetachImageWatermarkRequest]",
    ) -> OperationResponse[
        "capo_ec2.types.detach_image_watermark_result.DetachImageWatermarkResult"
    ]:
        import capo_ec2._operations.amazon_ec2.detach_image_watermark

        output, http_response = (
            capo_ec2._operations.amazon_ec2.detach_image_watermark.detach_image_watermark(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("DetachImageWatermark")
    )
    input_: capo_ec2.types.detach_image_watermark_request.DetachImageWatermarkRequest = {}
    if image_id is not None:
        input_["image_id"] = image_id
    if watermark_key is not None:
        input_["watermark_key"] = watermark_key
    if dry_run is not None:
        input_["dry_run"] = dry_run

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output