Skip to content

put_investigation_group_policy async

put_investigation_group_policy(
    identifier: InvestigationGroupIdentifier,
    policy: InvestigationGroupPolicyDocument,
    *,
    config_overrides: Optional[AsyncAIOpsClientConfig] = None,
) -> PutInvestigationGroupPolicyResponse

Creates an IAM resource policy and assigns it to the specified investigation group.

If you create your investigation group with CreateInvestigationGroup and you want to enable CloudWatch alarms to create investigations and add events to investigations, you must use this operation to create a policy similar to this example.

{ "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "aiops.alarms.cloudwatch.amazonaws.com" }, "Action": [ "aiops:CreateInvestigation", "aiops:CreateInvestigationEvent" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:cloudwatch:region:account-id:alarm:*" } } } ] }

Parameters:

Raises:

Source code in docs_src/capo_aiops/_services/async_ai_ops.py
async def put_investigation_group_policy(
    self,
    identifier: "capo_aiops.types.investigation_group_identifier.InvestigationGroupIdentifier",
    policy: "capo_aiops.types.investigation_group_policy_document.InvestigationGroupPolicyDocument",
    *,
    config_overrides: Optional[AsyncAIOpsClientConfig] = None,
) -> "capo_aiops.types.put_investigation_group_policy_response.PutInvestigationGroupPolicyResponse":
    """<p>Creates an IAM resource policy and assigns it to the specified investigation group.</p> <p>If you create your investigation group with <code>CreateInvestigationGroup</code> and you want to enable CloudWatch alarms to create investigations and add events to investigations, you must use this operation to create a policy similar to this example.</p> <p> <code> { "Version": "2008-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "aiops.alarms.cloudwatch.amazonaws.com" }, "Action": [ "aiops:CreateInvestigation", "aiops:CreateInvestigationEvent" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:cloudwatch:region:account-id:alarm:*" } } } ] } </code> </p>

    Args:
        identifier: <p>Specify either the name or the ARN of the investigation group that you want to assign the policy to.</p>
        policy: <p>The policy, in JSON format.</p>

    Raises:
        capo_aiops.errors.access_denied_exception.AccessDeniedException: <p>You don't have sufficient permissions to perform this action.</p>
        capo_aiops.errors.conflict_exception.ConflictException: <p>This operation couldn't be completed because of a conflict in resource states.</p>
        capo_aiops.errors.forbidden_exception.ForbiddenException: <p>Access id denied for this operation, or this operation is not valid for the specified resource.</p>
        capo_aiops.errors.internal_server_exception.InternalServerException: <p>An internal server error occurred. You can try again later.</p>
        capo_aiops.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified resource doesn't exist.</p>
        capo_aiops.errors.validation_exception.ValidationException: <p>This operation or its parameters aren't formatted correctly.</p>
        capo_aiops.errors.throttling_exception.ThrottlingException: <p>The request was throttled because of quota limits. You can try again later.</p>
        capo_aiops.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_aiops.types.put_investigation_group_policy_request.PutInvestigationGroupPolicyRequest]",
    ) -> AsyncOperationResponse[
        "capo_aiops.types.put_investigation_group_policy_response.PutInvestigationGroupPolicyResponse"
    ]:
        import capo_aiops._operations.ai_ops.put_investigation_group_policy

        (
            output,
            http_response,
        ) = await capo_aiops._operations.ai_ops.put_investigation_group_policy.async_put_investigation_group_policy(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("PutInvestigationGroupPolicy")
    )
    input_: capo_aiops.types.put_investigation_group_policy_request.PutInvestigationGroupPolicyRequest = {
        "identifier": identifier,
        "policy": policy,
    }

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