Skip to content

update_license_specifications_for_resource async

update_license_specifications_for_resource(
    resource_arn: String,
    *,
    config_overrides: Optional[AsyncLicenseManagerClientConfig] = None,
    add_license_specifications: Optional[LicenseSpecifications] = None,
    remove_license_specifications: Optional[LicenseSpecifications] = None,
) -> UpdateLicenseSpecificationsForResourceResponse

Adds or removes the specified license configurations for the specified Amazon Web Services resource.

You can update the license specifications of AMIs, instances, and hosts. You cannot update the license specifications for launch templates and CloudFormation templates, as they send license configurations to the operation that creates the resource.

Parameters:

  • resource_arn (String) –

    Amazon Resource Name (ARN) of the Amazon Web Services resource.

  • add_license_specifications (Optional[LicenseSpecifications], default: None ) –

    ARNs of the license configurations to add.

  • remove_license_specifications (Optional[LicenseSpecifications], default: None ) –

    ARNs of the license configurations to remove.

Raises:

Source code in docs_src/capo_license_manager/_services/async_license_manager.py
async def update_license_specifications_for_resource(
    self,
    resource_arn: "capo_license_manager.types.string.String",
    *,
    config_overrides: Optional[AsyncLicenseManagerClientConfig] = None,
    add_license_specifications: Optional[
        "capo_license_manager.types.license_specifications.LicenseSpecifications"
    ] = None,
    remove_license_specifications: Optional[
        "capo_license_manager.types.license_specifications.LicenseSpecifications"
    ] = None,
) -> "capo_license_manager.types.update_license_specifications_for_resource_response.UpdateLicenseSpecificationsForResourceResponse":
    """<p>Adds or removes the specified license configurations for the specified Amazon Web Services resource.</p> <p>You can update the license specifications of AMIs, instances, and hosts. You cannot update the license specifications for launch templates and CloudFormation templates, as they send license configurations to the operation that creates the resource.</p>

    Args:
        resource_arn: <p>Amazon Resource Name (ARN) of the Amazon Web Services resource.</p>
        add_license_specifications: <p>ARNs of the license configurations to add.</p>
        remove_license_specifications: <p>ARNs of the license configurations to remove.</p>

    Raises:
        capo_license_manager.errors.access_denied_exception.AccessDeniedException: <p>Access to resource denied.</p>
        capo_license_manager.errors.authorization_exception.AuthorizationException: <p>The Amazon Web Services user account does not have permission to perform the action. Check the IAM policy associated with this account.</p>
        capo_license_manager.errors.conflict_exception.ConflictException: <p>There was a conflict processing the request. Try your request again.</p>
        capo_license_manager.errors.invalid_parameter_value_exception.InvalidParameterValueException: <p>One or more parameter values are not valid.</p>
        capo_license_manager.errors.invalid_resource_state_exception.InvalidResourceStateException: <p>License Manager cannot allocate a license to a resource because of its state. </p> <p>For example, you cannot allocate a license to an instance in the process of shutting down.</p>
        capo_license_manager.errors.license_usage_exception.LicenseUsageException: <p>You do not have enough licenses available to support a new resource launch.</p>
        capo_license_manager.errors.rate_limit_exceeded_exception.RateLimitExceededException: <p>Too many requests have been submitted. Try again after a brief wait.</p>
        capo_license_manager.errors.server_internal_exception.ServerInternalException: <p>The server experienced an internal error. Try again.</p>
        capo_license_manager.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_license_manager.types.update_license_specifications_for_resource_request.UpdateLicenseSpecificationsForResourceRequest]",
    ) -> AsyncOperationResponse[
        "capo_license_manager.types.update_license_specifications_for_resource_response.UpdateLicenseSpecificationsForResourceResponse"
    ]:
        import capo_license_manager._operations.aws_license_manager.update_license_specifications_for_resource

        (
            output,
            http_response,
        ) = await capo_license_manager._operations.aws_license_manager.update_license_specifications_for_resource.async_update_license_specifications_for_resource(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateLicenseSpecificationsForResource")
    )
    input_: capo_license_manager.types.update_license_specifications_for_resource_request.UpdateLicenseSpecificationsForResourceRequest = {
        "resource_arn": resource_arn
    }
    if add_license_specifications is not None:
        input_["add_license_specifications"] = add_license_specifications
    if remove_license_specifications is not None:
        input_["remove_license_specifications"] = remove_license_specifications

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