Associates an Amazon Kinesis data stream to receive segment membership events for a given domain. This is a domain-level configuration that applies to all segment subscriptions within the domain. A domain can have only one associated stream at a time.
Parameters:
-
domain_name
(name)
–
The unique name of the domain.
-
destination_arn
(DestinationArnString)
–
The Amazon Resource Name (ARN) of the Amazon Kinesis data stream to deliver segment membership events to. For example, arn:aws:kinesis:region:account-id:stream/stream-name.
-
destination_role_arn
(DestinationRoleArn)
–
The Amazon Resource Name (ARN) of the IAM role that allows Customer Profiles service principal to assume the role for conducting AWS Key Management Service (KMS) and Amazon Kinesis operations. The role must grant the following Amazon Kinesis permissions to deliver segment membership events to the stream:
-
kinesis:PutRecord
-
kinesis:PutRecords
-
kinesis:DescribeStream
Raises:
Source code in docs_src/capo_customer_profiles/_services/async_customer_profiles.py
| async def associate_stream_for_segments(
self,
domain_name: "capo_customer_profiles.types.name.name",
destination_arn: "capo_customer_profiles.types.destination_arn_string.DestinationArnString",
destination_role_arn: "capo_customer_profiles.types.destination_role_arn.DestinationRoleArn",
*,
config_overrides: Optional[AsyncCustomerProfilesClientConfig] = None,
) -> "capo_customer_profiles.types.associate_stream_for_segments_response.AssociateStreamForSegmentsResponse":
"""<p>Associates an Amazon Kinesis data stream to receive segment membership events for a given domain. This is a domain-level configuration that applies to all segment subscriptions within the domain. A domain can have only one associated stream at a time. </p>
Args:
domain_name: <p>The unique name of the domain.</p>
destination_arn: <p>The Amazon Resource Name (ARN) of the Amazon Kinesis data stream to deliver segment membership events to. For example, <code>arn:aws:kinesis:region:account-id:stream/stream-name</code>. </p>
destination_role_arn: <p>The Amazon Resource Name (ARN) of the IAM role that allows Customer Profiles service principal to assume the role for conducting AWS Key Management Service (KMS) and Amazon Kinesis operations. The role must grant the following Amazon Kinesis permissions to deliver segment membership events to the stream: </p> <ul> <li> <p> <code>kinesis:PutRecord</code> </p> </li> <li> <p> <code>kinesis:PutRecords</code> </p> </li> <li> <p> <code>kinesis:DescribeStream</code> </p> </li> </ul>
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.associate_stream_for_segments_request.AssociateStreamForSegmentsRequest]",
) -> AsyncOperationResponse[
"capo_customer_profiles.types.associate_stream_for_segments_response.AssociateStreamForSegmentsResponse"
]:
import capo_customer_profiles._operations.customer_profiles_20200815.associate_stream_for_segments
(
output,
http_response,
) = await capo_customer_profiles._operations.customer_profiles_20200815.associate_stream_for_segments.async_associate_stream_for_segments(
req.options, req.input
)
return AsyncOperationResponse(output=output, response=http_response)
interceptors_, options_ = self.operation_options(
config_overrides, OperationLogging("AssociateStreamForSegments")
)
input_: capo_customer_profiles.types.associate_stream_for_segments_request.AssociateStreamForSegmentsRequest = {
"domain_name": domain_name,
"destination_arn": destination_arn,
"destination_role_arn": destination_role_arn,
}
response = await aexecute_pipeline(
AsyncOperationRequest(input=input_, options=options_),
handler=_handler,
interceptors=list(interceptors_),
)
await response.response.aclose()
return response.output
|