Skip to content

update_calculated_attribute_definition async

update_calculated_attribute_definition(
    domain_name: name,
    calculated_attribute_name: typeName,
    *,
    config_overrides: Optional[AsyncCustomerProfilesClientConfig] = None,
    display_name: Optional[displayName] = None,
    description: Optional[sensitiveText] = None,
    conditions: Optional[Conditions] = None,
) -> UpdateCalculatedAttributeDefinitionResponse

Updates an existing calculated attribute definition. When updating the Conditions, note that increasing the date range of a calculated attribute will not trigger inclusion of historical data greater than the current date range.

Parameters:

  • domain_name (name) –

    The unique name of the domain.

  • calculated_attribute_name (typeName) –

    The unique name of the calculated attribute.

  • display_name (Optional[displayName], default: None ) –

    The display name of the calculated attribute.

  • description (Optional[sensitiveText], default: None ) –

    The description of the calculated attribute.

  • conditions (Optional[Conditions], default: None ) –

    The conditions including range, object count, and threshold for the calculated attribute.

Raises:

Source code in docs_src/capo_customer_profiles/_services/async_customer_profiles.py
async def update_calculated_attribute_definition(
    self,
    domain_name: "capo_customer_profiles.types.name.name",
    calculated_attribute_name: "capo_customer_profiles.types.type_name.typeName",
    *,
    config_overrides: Optional[AsyncCustomerProfilesClientConfig] = None,
    display_name: Optional[
        "capo_customer_profiles.types.display_name.displayName"
    ] = None,
    description: Optional[
        "capo_customer_profiles.types.sensitive_text.sensitiveText"
    ] = None,
    conditions: Optional[
        "capo_customer_profiles.types.conditions.Conditions"
    ] = None,
) -> "capo_customer_profiles.types.update_calculated_attribute_definition_response.UpdateCalculatedAttributeDefinitionResponse":
    """<p>Updates an existing calculated attribute definition. When updating the Conditions, note that increasing the date range of a calculated attribute will not trigger inclusion of historical data greater than the current date range.</p>

    Args:
        domain_name: <p>The unique name of the domain.</p>
        calculated_attribute_name: <p>The unique name of the calculated attribute.</p>
        display_name: <p>The display name of the calculated attribute.</p>
        description: <p>The description of the calculated attribute.</p>
        conditions: <p>The conditions including range, object count, and threshold for the calculated attribute.</p>

    Raises:
        capo_customer_profiles.errors.access_denied_exception.AccessDeniedException: <p>You do not have sufficient access to perform this action.</p>
        capo_customer_profiles.errors.bad_request_exception.BadRequestException: <p>The input you provided is invalid.</p>
        capo_customer_profiles.errors.internal_server_exception.InternalServerException: <p>An internal service error occurred.</p>
        capo_customer_profiles.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource does not exist, or access was denied.</p>
        capo_customer_profiles.errors.throttling_exception.ThrottlingException: <p>You exceeded the maximum number of requests.</p>
        capo_customer_profiles.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_customer_profiles.types.update_calculated_attribute_definition_request.UpdateCalculatedAttributeDefinitionRequest]",
    ) -> AsyncOperationResponse[
        "capo_customer_profiles.types.update_calculated_attribute_definition_response.UpdateCalculatedAttributeDefinitionResponse"
    ]:
        import capo_customer_profiles._operations.customer_profiles_20200815.update_calculated_attribute_definition

        (
            output,
            http_response,
        ) = await capo_customer_profiles._operations.customer_profiles_20200815.update_calculated_attribute_definition.async_update_calculated_attribute_definition(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    def _redact_input(
        input_: "capo_customer_profiles.types.update_calculated_attribute_definition_request.UpdateCalculatedAttributeDefinitionRequest",
    ) -> dict[str, Any]:
        import capo_customer_profiles.types.update_calculated_attribute_definition_request

        return capo_customer_profiles.types.update_calculated_attribute_definition_request.redact_sensitive(
            input_
        )

    def _redact_output(
        output: "capo_customer_profiles.types.update_calculated_attribute_definition_response.UpdateCalculatedAttributeDefinitionResponse",
    ) -> dict[str, Any]:
        import capo_customer_profiles.types.update_calculated_attribute_definition_response

        return capo_customer_profiles.types.update_calculated_attribute_definition_response.redact_sensitive(
            output
        )

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging(
            "UpdateCalculatedAttributeDefinition",
            redact_input=_redact_input,
            redact_output=_redact_output,
        ),
    )
    input_: capo_customer_profiles.types.update_calculated_attribute_definition_request.UpdateCalculatedAttributeDefinitionRequest = {
        "domain_name": domain_name,
        "calculated_attribute_name": calculated_attribute_name,
    }
    if display_name is not None:
        input_["display_name"] = display_name
    if description is not None:
        input_["description"] = description
    if conditions is not None:
        input_["conditions"] = conditions

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