Skip to content

start_revenue_attribution_allocations_task

start_revenue_attribution_allocations_task(
    catalog: CatalogName,
    revenue_attribution_identifier: RevenueAttributionIdentifier,
    revenue_attribution_revision: RevisionToken,
    revenue_share_allocations: RevenueShareAllocationChangeList,
    *,
    config_overrides: Optional[PartnerCentralRevenueMeasurementClientConfig] = None,
    client_token: Optional[ClientToken] = None,
    description: Optional[str] = None,
) -> StartRevenueAttributionAllocationsTaskOutput

Submits a batch of up to 250 allocation changes (CREATE and/or UPDATE) for asynchronous processing. Returns a TaskId for tracking.

Parameters:

  • catalog (CatalogName) –

    The catalog context for this operation.

  • revenue_attribution_identifier (RevenueAttributionIdentifier) –

    The revenue attribution identifier.

  • revenue_attribution_revision (RevisionToken) –

    Current revision of the revenue attribution for optimistic locking.

  • revenue_share_allocations (RevenueShareAllocationChangeList) –

    The list of allocation changes to process in this batch.

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

    Idempotency token for deduplication and retry.

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

    Human-readable description of the batch.

Raises:

Examples:

Example for StartRevenueAttributionAllocationsTask

>>> client.start_revenue_attribution_allocations_task(catalog='AWS', revenue_attribution_identifier='ra-0a1b2c3d4e5f6', revenue_attribution_revision='1', revenue_share_allocations=[{'Action': 'CREATE', 'EntityType': 'OFFER', 'EntityIdentifier': 'offer-abc123', 'CustomerAwsAccountId': '123456789012', 'RevenueSharePercent': '15.50', 'EffectiveFrom': '2026-07-01', 'EffectiveUntil': '2026-07-31'}], client_token='unique-token-123')
Source code in docs_src/capo_partnercentral_revenue_measurement/_services/partner_central_revenue_measurement.py
def start_revenue_attribution_allocations_task(
    self,
    catalog: "capo_partnercentral_revenue_measurement.types.catalog_name.CatalogName",
    revenue_attribution_identifier: "capo_partnercentral_revenue_measurement.types.revenue_attribution_identifier.RevenueAttributionIdentifier",
    revenue_attribution_revision: "capo_partnercentral_revenue_measurement.types.revision_token.RevisionToken",
    revenue_share_allocations: "capo_partnercentral_revenue_measurement.types.revenue_share_allocation_change_list.RevenueShareAllocationChangeList",
    *,
    config_overrides: Optional[PartnerCentralRevenueMeasurementClientConfig] = None,
    client_token: Optional[
        "capo_partnercentral_revenue_measurement.types.client_token.ClientToken"
    ] = None,
    description: Optional[str] = None,
) -> "capo_partnercentral_revenue_measurement.types.start_revenue_attribution_allocations_task_output.StartRevenueAttributionAllocationsTaskOutput":
    """<p>Submits a batch of up to 250 allocation changes (CREATE and/or UPDATE) for asynchronous processing. Returns a TaskId for tracking.</p>

    Args:
        catalog: <p>The catalog context for this operation.</p>
        revenue_attribution_identifier: <p>The revenue attribution identifier.</p>
        revenue_attribution_revision: <p>Current revision of the revenue attribution for optimistic locking.</p>
        revenue_share_allocations: <p>The list of allocation changes to process in this batch.</p>
        client_token: <p>Idempotency token for deduplication and retry.</p>
        description: <p>Human-readable description of the batch.</p>

    Raises:
        capo_partnercentral_revenue_measurement.errors.access_denied_exception.AccessDeniedException: <p>The request was denied due to insufficient permissions.</p>
        capo_partnercentral_revenue_measurement.errors.conflict_exception.ConflictException: <p>The request could not be completed due to a conflict with the current state of the resource.</p>
        capo_partnercentral_revenue_measurement.errors.internal_server_exception.InternalServerException: <p>An internal server error occurred. Retry your request.</p>
        capo_partnercentral_revenue_measurement.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified resource was not found.</p>
        capo_partnercentral_revenue_measurement.errors.throttling_exception.ThrottlingException: <p>The request was throttled due to too many requests. Retry your request.</p>
        capo_partnercentral_revenue_measurement.errors.validation_exception.ValidationException: <p>The request failed validation due to invalid input parameters.</p>
        capo_partnercentral_revenue_measurement.errors.UnknownServiceError: The service returned an error code this client does not model.

    Examples:
        Example for StartRevenueAttributionAllocationsTask

        >>> client.start_revenue_attribution_allocations_task(catalog='AWS', revenue_attribution_identifier='ra-0a1b2c3d4e5f6', revenue_attribution_revision='1', revenue_share_allocations=[{'Action': 'CREATE', 'EntityType': 'OFFER', 'EntityIdentifier': 'offer-abc123', 'CustomerAwsAccountId': '123456789012', 'RevenueSharePercent': '15.50', 'EffectiveFrom': '2026-07-01', 'EffectiveUntil': '2026-07-31'}], client_token='unique-token-123')
    """

    def _handler(
        req: "OperationRequest[capo_partnercentral_revenue_measurement.types.start_revenue_attribution_allocations_task_input.StartRevenueAttributionAllocationsTaskInput]",
    ) -> OperationResponse[
        "capo_partnercentral_revenue_measurement.types.start_revenue_attribution_allocations_task_output.StartRevenueAttributionAllocationsTaskOutput"
    ]:
        import capo_partnercentral_revenue_measurement._operations.partner_central_revenue_measurement.start_revenue_attribution_allocations_task

        output, http_response = (
            capo_partnercentral_revenue_measurement._operations.partner_central_revenue_measurement.start_revenue_attribution_allocations_task.start_revenue_attribution_allocations_task(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    def _redact_input(
        input_: "capo_partnercentral_revenue_measurement.types.start_revenue_attribution_allocations_task_input.StartRevenueAttributionAllocationsTaskInput",
    ) -> dict[str, Any]:
        import capo_partnercentral_revenue_measurement.types.start_revenue_attribution_allocations_task_input

        return capo_partnercentral_revenue_measurement.types.start_revenue_attribution_allocations_task_input.redact_sensitive(
            input_
        )

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging(
            "StartRevenueAttributionAllocationsTask", redact_input=_redact_input
        ),
    )
    input_: capo_partnercentral_revenue_measurement.types.start_revenue_attribution_allocations_task_input.StartRevenueAttributionAllocationsTaskInput = {
        "catalog": catalog,
        "revenue_attribution_identifier": revenue_attribution_identifier,
        "revenue_attribution_revision": revenue_attribution_revision,
        "revenue_share_allocations": revenue_share_allocations,
    }
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token
    if description is not None:
        input_["description"] = description

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