Skip to content

create_subscription_request

create_subscription_request(
    domain_identifier: DomainId,
    subscribed_principals: SubscribedPrincipalInputs,
    subscribed_listings: SubscribedListingInputs,
    request_reason: RequestReason,
    *,
    config_overrides: Optional[DataZoneClientConfig] = None,
    client_token: Optional[str] = None,
    metadata_forms: Optional[MetadataFormInputs] = None,
    asset_permissions: Optional[AssetPermissions] = None,
    asset_scopes: Optional[AcceptedAssetScopes] = None,
) -> CreateSubscriptionRequestOutput

Creates a subscription request in Amazon DataZone.

Parameters:

  • domain_identifier (DomainId) –

    The ID of the Amazon DataZone domain in which the subscription request is created.

  • subscribed_principals (SubscribedPrincipalInputs) –

    The Amazon DataZone principals for whom the subscription request is created.

  • subscribed_listings (SubscribedListingInputs) –

    The published asset for which the subscription grant is to be created.

  • request_reason (RequestReason) –

    The reason for the subscription request.

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

    A unique, case-sensitive identifier that is provided to ensure the idempotency of the request.

  • metadata_forms (Optional[MetadataFormInputs], default: None ) –

    The metadata form included in the subscription request.

  • asset_permissions (Optional[AssetPermissions], default: None ) –

    The asset permissions of the subscription request.

  • asset_scopes (Optional[AcceptedAssetScopes], default: None ) –

    The asset scopes of the subscription request.

Raises:

Source code in docs_src/capo_datazone/_services/data_zone.py
def create_subscription_request(
    self,
    domain_identifier: "capo_datazone.types.domain_id.DomainId",
    subscribed_principals: "capo_datazone.types.subscribed_principal_inputs.SubscribedPrincipalInputs",
    subscribed_listings: "capo_datazone.types.subscribed_listing_inputs.SubscribedListingInputs",
    request_reason: "capo_datazone.types.request_reason.RequestReason",
    *,
    config_overrides: Optional[DataZoneClientConfig] = None,
    client_token: Optional[str] = None,
    metadata_forms: Optional[
        "capo_datazone.types.metadata_form_inputs.MetadataFormInputs"
    ] = None,
    asset_permissions: Optional[
        "capo_datazone.types.asset_permissions.AssetPermissions"
    ] = None,
    asset_scopes: Optional[
        "capo_datazone.types.accepted_asset_scopes.AcceptedAssetScopes"
    ] = None,
) -> "capo_datazone.types.create_subscription_request_output.CreateSubscriptionRequestOutput":
    """<p>Creates a subscription request in Amazon DataZone.</p>

    Args:
        domain_identifier: <p>The ID of the Amazon DataZone domain in which the subscription request is created.</p>
        subscribed_principals: <p>The Amazon DataZone principals for whom the subscription request is created.</p>
        subscribed_listings: <p>The published asset for which the subscription grant is to be created.</p>
        request_reason: <p>The reason for the subscription request.</p>
        client_token: <p>A unique, case-sensitive identifier that is provided to ensure the idempotency of the request.</p>
        metadata_forms: <p>The metadata form included in the subscription request.</p>
        asset_permissions: <p>The asset permissions of the subscription request.</p>
        asset_scopes: <p>The asset scopes of the subscription request.</p>

    Raises:
        capo_datazone.errors.access_denied_exception.AccessDeniedException: <p>You do not have sufficient access to perform this action.</p>
        capo_datazone.errors.throttling_exception.ThrottlingException: <p>The request was denied due to request throttling.</p>
        capo_datazone.errors.unauthorized_exception.UnauthorizedException: <p>You do not have permission to perform this action.</p>
        capo_datazone.errors.conflict_exception.ConflictException: <p>There is a conflict while performing this action.</p>
        capo_datazone.errors.internal_server_exception.InternalServerException: <p>The request has failed because of an unknown error, exception or failure.</p>
        capo_datazone.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified resource cannot be found.</p>
        capo_datazone.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request has exceeded the specified service quota.</p>
        capo_datazone.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by the Amazon Web Services service.</p>
        capo_datazone.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_datazone.types.create_subscription_request_input.CreateSubscriptionRequestInput]",
    ) -> OperationResponse[
        "capo_datazone.types.create_subscription_request_output.CreateSubscriptionRequestOutput"
    ]:
        import capo_datazone._operations.data_zone.create_subscription_request

        output, http_response = (
            capo_datazone._operations.data_zone.create_subscription_request.create_subscription_request(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    def _redact_input(
        input_: "capo_datazone.types.create_subscription_request_input.CreateSubscriptionRequestInput",
    ) -> dict[str, Any]:
        import capo_datazone.types.create_subscription_request_input

        return (
            capo_datazone.types.create_subscription_request_input.redact_sensitive(
                input_
            )
        )

    def _redact_output(
        output: "capo_datazone.types.create_subscription_request_output.CreateSubscriptionRequestOutput",
    ) -> dict[str, Any]:
        import capo_datazone.types.create_subscription_request_output

        return (
            capo_datazone.types.create_subscription_request_output.redact_sensitive(
                output
            )
        )

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging(
            "CreateSubscriptionRequest",
            redact_input=_redact_input,
            redact_output=_redact_output,
        ),
    )
    input_: capo_datazone.types.create_subscription_request_input.CreateSubscriptionRequestInput = {
        "domain_identifier": domain_identifier,
        "subscribed_principals": subscribed_principals,
        "subscribed_listings": subscribed_listings,
        "request_reason": request_reason,
    }
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token
    if metadata_forms is not None:
        input_["metadata_forms"] = metadata_forms
    if asset_permissions is not None:
        input_["asset_permissions"] = asset_permissions
    if asset_scopes is not None:
        input_["asset_scopes"] = asset_scopes

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