Skip to content

create_image_usage_report async

create_image_usage_report(
    *,
    config_overrides: Optional[AsyncEC2ClientConfig] = None,
    image_id: Optional[ImageId] = None,
    dry_run: Optional[Boolean] = None,
    resource_types: Optional[ImageUsageResourceTypeRequestList] = None,
    account_ids: Optional[ImageUsageReportUserIdStringList] = None,
    client_token: Optional[CreateImageUsageReportClientToken] = None,
    tag_specifications: Optional[TagSpecificationList] = None,
) -> CreateImageUsageReportResult

Creates a report that shows how your image is used across other Amazon Web Services accounts. The report provides visibility into which accounts are using the specified image, and how many resources (EC2 instances or launch templates) are referencing it.

For more information, see View your AMI usage in the Amazon EC2 User Guide.

Parameters:

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

    The ID of the image to report on.

  • 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.

  • resource_types (Optional[ImageUsageResourceTypeRequestList], default: None ) –

    The resource types to include in the report.

  • account_ids (Optional[ImageUsageReportUserIdStringList], default: None ) –

    The Amazon Web Services account IDs to include in the report. To include all accounts, omit this parameter.

  • client_token (Optional[CreateImageUsageReportClientToken], default: None ) –

    A unique, case-sensitive identifier that you provide to ensure idempotency of the request.

  • tag_specifications (Optional[TagSpecificationList], default: None ) –

    The tags to apply to the report on creation. The ResourceType must be set to image-usage-report; any other value will cause the report creation to fail.

    To tag a report after it has been created, see CreateTags.

Raises:

Source code in docs_src/capo_ec2/_services/async_ec2.py
async def create_image_usage_report(
    self,
    *,
    config_overrides: Optional[AsyncEC2ClientConfig] = None,
    image_id: Optional["capo_ec2.types.image_id.ImageId"] = None,
    dry_run: Optional["capo_ec2.types.boolean.Boolean"] = None,
    resource_types: Optional[
        "capo_ec2.types.image_usage_resource_type_request_list.ImageUsageResourceTypeRequestList"
    ] = None,
    account_ids: Optional[
        "capo_ec2.types.image_usage_report_user_id_string_list.ImageUsageReportUserIdStringList"
    ] = None,
    client_token: Optional[
        "capo_ec2.types.create_image_usage_report_client_token.CreateImageUsageReportClientToken"
    ] = None,
    tag_specifications: Optional[
        "capo_ec2.types.tag_specification_list.TagSpecificationList"
    ] = None,
) -> "capo_ec2.types.create_image_usage_report_result.CreateImageUsageReportResult":
    """<p>Creates a report that shows how your image is used across other Amazon Web Services accounts. The report provides visibility into which accounts are using the specified image, and how many resources (EC2 instances or launch templates) are referencing it.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/your-ec2-ami-usage.html">View your AMI usage</a> in the <i>Amazon EC2 User Guide</i>.</p>

    Args:
        image_id: <p>The ID of the image to report on.</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>
        resource_types: <p>The resource types to include in the report.</p>
        account_ids: <p>The Amazon Web Services account IDs to include in the report. To include all accounts, omit this parameter.</p>
        client_token: <p>A unique, case-sensitive identifier that you provide to ensure idempotency of the request.</p>
        tag_specifications: <p>The tags to apply to the report on creation. The <code>ResourceType</code> must be set to <code>image-usage-report</code>; any other value will cause the report creation to fail.</p> <p>To tag a report after it has been created, see <a href="https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateTags.html">CreateTags</a>.</p>

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

    async def _handler(
        req: "AsyncOperationRequest[capo_ec2.types.create_image_usage_report_request.CreateImageUsageReportRequest]",
    ) -> AsyncOperationResponse[
        "capo_ec2.types.create_image_usage_report_result.CreateImageUsageReportResult"
    ]:
        import capo_ec2._operations.amazon_ec2.create_image_usage_report

        (
            output,
            http_response,
        ) = await capo_ec2._operations.amazon_ec2.create_image_usage_report.async_create_image_usage_report(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateImageUsageReport")
    )
    input_: capo_ec2.types.create_image_usage_report_request.CreateImageUsageReportRequest = {}
    if image_id is not None:
        input_["image_id"] = image_id
    if dry_run is not None:
        input_["dry_run"] = dry_run
    if resource_types is not None:
        input_["resource_types"] = resource_types
    if account_ids is not None:
        input_["account_ids"] = account_ids
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token
    if tag_specifications is not None:
        input_["tag_specifications"] = tag_specifications

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output