Skip to content

create_service_network_service_association async

create_service_network_service_association(
    service_identifier: ServiceIdentifier,
    service_network_identifier: ServiceNetworkIdentifier,
    *,
    config_overrides: Optional[AsyncVPCLatticeClientConfig] = None,
    client_token: Optional[ClientToken] = None,
    tags: Optional[TagMap] = None,
) -> CreateServiceNetworkServiceAssociationResponse

Associates the specified service with the specified service network. For more information, see Manage service associations in the Amazon VPC Lattice User Guide.

You can't use this operation if the service and service network are already associated or if there is a disassociation or deletion in progress. If the association fails, you can retry the operation by deleting the association and recreating it.

You cannot associate a service and service network that are shared with a caller. The caller must own either the service or the service network.

As a result of this operation, the association is created in the service network account and the association owner account.

Parameters:

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

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry succeeds without performing any actions. If the parameters aren't identical, the retry fails.

  • service_identifier (ServiceIdentifier) –

    The ID or ARN of the service.

  • service_network_identifier (ServiceNetworkIdentifier) –

    The ID or ARN of the service network. You must use an ARN if the resources are in different accounts.

  • tags (Optional[TagMap], default: None ) –

    The tags for the association.

Raises:

Source code in docs_src/capo_vpc_lattice/_services/async_vpc_lattice.py
async def create_service_network_service_association(
    self,
    service_identifier: "capo_vpc_lattice.types.service_identifier.ServiceIdentifier",
    service_network_identifier: "capo_vpc_lattice.types.service_network_identifier.ServiceNetworkIdentifier",
    *,
    config_overrides: Optional[AsyncVPCLatticeClientConfig] = None,
    client_token: Optional[
        "capo_vpc_lattice.types.client_token.ClientToken"
    ] = None,
    tags: Optional["capo_vpc_lattice.types.tag_map.TagMap"] = None,
) -> "capo_vpc_lattice.types.create_service_network_service_association_response.CreateServiceNetworkServiceAssociationResponse":
    """<p>Associates the specified service with the specified service network. For more information, see <a href="https://docs.aws.amazon.com/vpc-lattice/latest/ug/service-network-associations.html#service-network-service-associations">Manage service associations</a> in the <i>Amazon VPC Lattice User Guide</i>.</p> <p>You can't use this operation if the service and service network are already associated or if there is a disassociation or deletion in progress. If the association fails, you can retry the operation by deleting the association and recreating it.</p> <p>You cannot associate a service and service network that are shared with a caller. The caller must own either the service or the service network.</p> <p>As a result of this operation, the association is created in the service network account and the association owner account.</p>

    Args:
        client_token: <p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If you retry a request that completed successfully using the same client token and parameters, the retry succeeds without performing any actions. If the parameters aren't identical, the retry fails.</p>
        service_identifier: <p>The ID or ARN of the service.</p>
        service_network_identifier: <p>The ID or ARN of the service network. You must use an ARN if the resources are in different accounts.</p>
        tags: <p>The tags for the association.</p>

    Raises:
        capo_vpc_lattice.errors.access_denied_exception.AccessDeniedException: <p>The user does not have sufficient access to perform this action.</p>
        capo_vpc_lattice.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource. Updating or deleting a resource can cause an inconsistent state.</p>
        capo_vpc_lattice.errors.internal_server_exception.InternalServerException: <p>An unexpected error occurred while processing the request.</p>
        capo_vpc_lattice.errors.resource_not_found_exception.ResourceNotFoundException: <p>The request references a resource that does not exist.</p>
        capo_vpc_lattice.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would cause a service quota to be exceeded.</p>
        capo_vpc_lattice.errors.throttling_exception.ThrottlingException: <p>The limit on the number of requests per second was exceeded.</p>
        capo_vpc_lattice.errors.validation_exception.ValidationException: <p>The input does not satisfy the constraints specified by an Amazon Web Services service.</p>
        capo_vpc_lattice.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_vpc_lattice.types.create_service_network_service_association_request.CreateServiceNetworkServiceAssociationRequest]",
    ) -> AsyncOperationResponse[
        "capo_vpc_lattice.types.create_service_network_service_association_response.CreateServiceNetworkServiceAssociationResponse"
    ]:
        import capo_vpc_lattice._operations.mercury_control_plane.create_service_network_service_association

        (
            output,
            http_response,
        ) = await capo_vpc_lattice._operations.mercury_control_plane.create_service_network_service_association.async_create_service_network_service_association(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateServiceNetworkServiceAssociation")
    )
    input_: capo_vpc_lattice.types.create_service_network_service_association_request.CreateServiceNetworkServiceAssociationRequest = {
        "service_identifier": service_identifier,
        "service_network_identifier": service_network_identifier,
    }
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token
    if tags is not None:
        input_["tags"] = tags

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