┌─────────────────────────┐
│ ステップ 1: アップロード承認をリクエストする │
│ POST /suno/uploads/audio │
│ ↓ 戻り値:upload_id、upload_url │
━━━━━━━━━━━━━━━━━━━━━━━━┘
↓
┌─────────────────────────┐
│ ステップ 2: ファイルを S3 にアップロードする (API を経由せず、直接クライアント接続) │
│ PUT {upload_url} │
│ ↓ 音声ファイルをアップロードする │
━━━━━━━━━━━━━━━━━━━━━━━━┘
↓
┌─────────────────────────┐
│ ステップ 3: レポートのアップロード完了 │
│ POST /suno/uploads/audio/{id}/upload-finish │
│ ↓ ファイルがアップロードされたことをサーバーに通知します │
━━━━━━━━━━━━━━━━━━━━━━━━┘
↓
┌─────────────────────────┐
│ ステップ 4: アップロード状況を確認するためのポーリング (ステータスが完了するまで) │
│ GET /suno/uploads/audio/{id} │
│ ↓ 2 ~ 3 秒ごとにクエリを実行 │
━━━━━━━━━━━━━━━━━━━━━━━━┘
↓
┌─────────────────────────┐
│ ステップ 5: オーディオクリップを初期化する │
│ POST /suno/uploads/audio/{id}/initialize-clip │
│ ↓ 戻り値:clip_id │
━━━━━━━━━━━━━━━━━━ ━━━━━━┘
↓
┌─────────────────────────┐
│ ステップ 6: Clip_id を使用して継続タスクを作成する │
│ POST /suno/submit/music │
│ ↓ Return: task_id (課金開始) │
━━━━━━━━━━━━━━━━━━━━━━━━┘
「」