ツール: create_workspace
指定された Dataform リポジトリに新しい開発ワークスペースを作成します。
ワークスペースは、リポジトリの分離された編集可能なチェックアウトです。複数のファイルにわたってパイプライン コードを作成または修正し、コミットする前に検証する必要がある場合は、ワークスペースを使用します。write_file ツールと remove_file ツールを使用してワークスペース内のファイルを編集し、commit_workspace_changes ツールで結果を記録して、push_git_commits ツールで commit された変更をリポジトリに公開します。
標準パイプラインの開発には commit_repository_changes ツールを使用しないでください。このツールはリポジトリに直接書き込みを行い、ノートブックや保存されたクエリなどの単一ファイル アセットのみを対象としています。リモート Git ホストに接続されたリポジトリでは失敗します。
前提条件: 親リポジトリが存在している必要があります。
parent パラメータの値は projects/{project_id}/locations/{location}/repositories/{repository} 形式にする必要があります。
workspace_id パラメータ値は、ワークスペースに使用する ID です。
workspace パラメータ値には、作成するワークスペースが保持されます。
次のコードサンプルは、curl を使用して create_workspace MCP ツールを呼び出す方法を示しています。
| Curl リクエスト |
|---|
curl --location 'https://dataform.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_workspace", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
入力スキーマ
CreateWorkspace リクエスト メッセージ。
CreateWorkspaceRequest
| JSON 表現 |
|---|
{
"parent": string,
"workspace": {
object ( |
| フィールド | |
|---|---|
parent |
必須。ワークスペースを作成するリポジトリ。 |
workspace |
必須。作成するワークスペース。 |
workspaceId |
必須。ワークスペースに使用する ID。ワークスペースのリソース名の最終的なコンポーネントになります。 |
ワークスペース
| JSON 表現 |
|---|
{ "name": string, "createTime": string, "dataEncryptionState": { object ( |
| フィールド | |
|---|---|
name |
ID。ワークスペースの名前。 |
createTime |
出力専用。ワークスペースが作成されたときのタイムスタンプ。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
dataEncryptionState |
出力専用。この Workspace が KMS 鍵で保護されている場合の Git リポジトリのデータ暗号化状態。 |
privateResourceMetadata |
出力専用。このリソースがユーザー スコープかどうかを示すメタデータ。 |
depth |
省略可。入力専用。変更不可。このワークスペースでチェックアウトする Git リポジトリの最大深度。定義されていて 0 より大きい場合、Git リポジトリは指定された深さのシャロー クローンとして作成されます。それ以外の場合は、フルクローンが実行されます。このフィールドは、ブランチ管理が有効になっている GitHub、GitLab、1p リポジトリでのみ使用できます。 |
共用体フィールド
|
|
internalMetadata |
出力専用。リソースの提供に内部で使用されるすべてのメタデータ情報。たとえば、タイムスタンプ、フラグ、ステータス フィールドなどです。このフィールドの形式は JSON 文字列です。 |
共用体フィールド
|
|
disableMoves |
省略可。true に設定すると、リンクされたリポジトリが移動しても、ワークスペースは移動されません。代わりに、削除されます。 |
共用体フィールド
|
|
originalBranch |
省略可。入力専用。変更不可。このワークスペースのリモート リポジトリ内のすべての pull/push オペレーションのデフォルトの上流ブランチの名前。空の場合、リポジトリの HEAD ブランチが使用されます。 |
共用体フィールド
|
|
enableBranchManagement |
変更不可。ワークスペースのブランチ チェックアウトの有効化を制御します。 True に設定すると、ワークスペースでブランチのチェックアウトが許可されます。 |
共用体フィールド
|
|
shallow |
出力専用。true に設定されている場合、ワークスペースはシャロー クローンとして作成されています。depth フィールドが 0 より大きい値に設定されている場合は true に設定され、それ以外の場合は false に設定されます。 |
タイムスタンプ
| JSON 表現 |
|---|
{ "seconds": string, "nanos": integer } |
| フィールド | |
|---|---|
seconds |
UNIX エポック 1970-01-01T00:00:00Z からの UTC 時刻の秒数を表します。-62135596800~253402300799 の範囲(両端を含む)にする必要があります(これは 0001-01-01T00:00:00Z~9999-12-31T23:59:59Z に対応します)。 |
nanos |
ナノ秒分解能による、秒の負ではない小数以下部分。このフィールドは、秒の代替ではなく、期間のナノ秒部分です。小数以下を含む負の秒の値は、時間を前方にカウントする負ではない nanos 値を持つ必要があります。0~999,999,999 にする必要があります(両端を含む)。 |
DataEncryptionState
| JSON 表現 |
|---|
{ "kmsKeyVersionName": string } |
| フィールド | |
|---|---|
kmsKeyVersionName |
必須。リソースのデータの暗号化に使用される KMS 鍵バージョンの名前。 |
PrivateResourceMetadata
| JSON 表現 |
|---|
{ "userScoped": boolean } |
| フィールド | |
|---|---|
userScoped |
出力専用。true の場合、このリソースはユーザー スコープです。つまり、ワークスペースであるか、ワークスペースから取得されています。 |
出力スキーマ
Dataform Git ワークスペースを表します。
ワークスペース
| JSON 表現 |
|---|
{ "name": string, "createTime": string, "dataEncryptionState": { object ( |
| フィールド | |
|---|---|
name |
ID。ワークスペースの名前。 |
createTime |
出力専用。ワークスペースが作成されたときのタイムスタンプ。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
dataEncryptionState |
出力専用。この Workspace が KMS 鍵で保護されている場合の Git リポジトリのデータ暗号化状態。 |
privateResourceMetadata |
出力専用。このリソースがユーザー スコープかどうかを示すメタデータ。 |
depth |
省略可。入力専用。変更不可。このワークスペースでチェックアウトする Git リポジトリの最大深度。定義されていて 0 より大きい場合、Git リポジトリは指定された深さのシャロー クローンとして作成されます。それ以外の場合は、フルクローンが実行されます。このフィールドは、ブランチ管理が有効になっている GitHub、GitLab、1p リポジトリでのみ使用できます。 |
共用体フィールド
|
|
internalMetadata |
出力専用。リソースの提供に内部で使用されるすべてのメタデータ情報。たとえば、タイムスタンプ、フラグ、ステータス フィールドなどです。このフィールドの形式は JSON 文字列です。 |
共用体フィールド
|
|
disableMoves |
省略可。true に設定すると、リンクされたリポジトリが移動しても、ワークスペースは移動されません。代わりに、削除されます。 |
共用体フィールド
|
|
originalBranch |
省略可。入力専用。変更不可。このワークスペースのリモート リポジトリ内のすべての pull/push オペレーションのデフォルトの上流ブランチの名前。空の場合、リポジトリの HEAD ブランチが使用されます。 |
共用体フィールド
|
|
enableBranchManagement |
変更不可。ワークスペースのブランチ チェックアウトの有効化を制御します。 True に設定すると、ワークスペースでブランチのチェックアウトが許可されます。 |
共用体フィールド
|
|
shallow |
出力専用。true に設定されている場合、ワークスペースはシャロー クローンとして作成されています。depth フィールドが 0 より大きい値に設定されている場合は true に設定され、それ以外の場合は false に設定されます。 |
タイムスタンプ
| JSON 表現 |
|---|
{ "seconds": string, "nanos": integer } |
| フィールド | |
|---|---|
seconds |
UNIX エポック 1970-01-01T00:00:00Z からの UTC 時刻の秒数を表します。-62135596800~253402300799 の範囲(両端を含む)にする必要があります(これは 0001-01-01T00:00:00Z~9999-12-31T23:59:59Z に対応します)。 |
nanos |
ナノ秒分解能による、秒の負ではない小数以下部分。このフィールドは、秒の代替ではなく、期間のナノ秒部分です。小数以下を含む負の秒の値は、時間を前方にカウントする負ではない nanos 値を持つ必要があります。0~999,999,999 にする必要があります(両端を含む)。 |
DataEncryptionState
| JSON 表現 |
|---|
{ "kmsKeyVersionName": string } |
| フィールド | |
|---|---|
kmsKeyVersionName |
必須。リソースのデータの暗号化に使用される KMS 鍵バージョンの名前。 |
PrivateResourceMetadata
| JSON 表現 |
|---|
{ "userScoped": boolean } |
| フィールド | |
|---|---|
userScoped |
出力専用。true の場合、このリソースはユーザー スコープです。つまり、ワークスペースであるか、ワークスペースから取得されています。 |
ツールのアノテーション
ツールのアノテーションは、特定のツールの基本的なリスクを説明するために MCP クライアントに送信されます。ほとんどのクライアントはこれらのヒントを信頼できないものとして扱いますが、確認プロンプトをユーザーに送信するタイミングを決定するために使用できます。
タイトル文字列とともに、次のブール値のヒントが次のように定義されています。
readOnlyHint: true の場合、ツールは環境を変更しません。デフォルトは false です。destructiveHint: true の場合、ツールは破壊的なアクションを実行できます。false の場合、ツールは追加アクションのみを実行できます。デフォルト値は true です。idempotentHint: true の場合、同じ引数でツールを繰り返し呼び出しても、環境に影響はありません。デフォルトは false です。openWorldHint: true の場合、ツールは外部エンティティの「オープン ワールド」とやり取りできます。false の場合、ツールは内部エンティティとのみやり取りできます。たとえば、ウェブ検索ツールはオープン ワールドですが、メモリツールはオープン ワールドではありません。
破壊的ヒント: ❌ | べき等ヒント: ❌ | 読み取り専用ヒント: ❌ | オープン ワールド ヒント: ❌