def METHOD_NAME(
    self,
    request: Request,
    organization_context: RpcUserOrganizationContext,
    organization: RpcOrganization,
) -> Response:
    token_str = generate_token(organization.slug, generate_region_url())
    token_hashed = hash_token(token_str)
    name = request.data.get("name")
    # Main validation cases with specific error messages
    if not name:
        return Response({"detail": ["The name cannot be blank."]}, status=400)
    if len(name) > MAX_NAME_LENGTH:
        return Response(
            {"detail": ["The name cannot be longer than 255 characters."]}, status=400
        )
    token = OrgAuthToken.objects.create(
        name=name,
        organization_id=organization.id,
        scope_list=["org:ci"],
        created_by_id=request.user.id,
        token_last_characters=token_str[-4:],
        token_hashed=token_hashed,
    )
    try:
        token.full_clean()
    except ValidationError as e:
        return Response({"detail": list(e.messages)}, status=400)
    self.create_audit_entry(
        request,
        organization=organization,
        target_object=token.id,
        event=audit_log.get_event_id("ORGAUTHTOKEN_ADD"),
        data=token.get_audit_log_data(),
    )
    # Notify all owners of org of new token
    owner_ids = OrganizationMemberMapping.objects.filter(
        organization_id=organization.id, role=roles.get_top_dog().id
    ).values_list("user_id", flat=True)
    owners = User.objects.filter(id__in=owner_ids)
    for owner in owners:
        capture_security_activity(
            account=owner,
            type="org-auth-token-created",
            actor=request.user,
            ip_address=request.META["REMOTE_ADDR"],
            context={"organization": organization, "token_name": token.name},
            send_email=True,
        )
    analytics.record(
        "org_auth_token.created",
        user_id=request.user.id,
        organization_id=organization.id,
    )
    # This is THE ONLY TIME that the token is available
    serialized_token = serialize(token, request.user, token=token_str)
    if serialized_token is None:
        return Response({"detail": "Error when serializing token."}, status=400)
    return Response(serialized_token, status=status.HTTP_201_CREATED)