ツール: create_unit
Unit リソースを作成します。必須パラメータ: 'parent'(例: projects/my-project/locations/us-central1)、'unit_id'、'unit'。省略可能なパラメータ: 'validate_only'、'request_id'。
次のサンプルは、curl を使用して create_unit MCP ツールを呼び出す方法を示しています。
| Curl リクエスト |
|---|
curl --location 'https://saasservicemgmt.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "create_unit", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
入力スキーマ
CreateUnit メソッドのリクエスト構造。
CreateUnitRequest
| JSON 表現 |
|---|
{
"parent": string,
"unitId": string,
"unit": {
object ( |
| フィールド | |
|---|---|
parent |
必須。ユニットの親。 |
unitId |
必須。新しいユニットの ID 値。 |
unit |
必須。ユニットの望ましい状態。 |
validateOnly |
「validate_only」が true に設定されている場合、サービスはこのリクエストが成功するかどうかを検証しようとしますが、実際には変更は行いません。 |
requestId |
リクエストを識別するリクエスト ID(省略可)。一意のリクエスト ID を指定することで、リクエストの再試行が必要なときに、リクエストが完了していれば、サーバーがリクエストを無視できるようになります。サーバーは、最初のリクエストから少なくとも 60 分間はこれを保証します。 たとえば、最初のリクエストを行い、そのリクエストがタイムアウトしたとします。同じリクエスト ID で再度リクエストを行うと、サーバーは元のオペレーションを同じリクエスト ID で受信していたかどうかを確認できます。受信していた場合は、2 回目のリクエストは無視されます。これにより、クライアントが重複するコミットを誤って作成することを防ぐことができます。 リクエスト ID は有効な UUID でなければなりません。ただし、ゼロ UUID(00000000-0000-0000-0000-000000000000)はサポートされていません。 |
ユニット
| JSON 表現 |
|---|
{ "name": string, "unitKind": string, "release": string, "tenant": string, "ongoingOperations": [ string ], "pendingOperations": [ string ], "scheduledOperations": [ string ], "dependents": [ { object ( |
| フィールド | |
|---|---|
name |
ID。標準の命名スキームに沿ったリソース名(リソースの完全な URI)。 "projects/{project}/locations/{location}/units/{unit}" |
unitKind |
省略可。この Unit が属する UnitKind への参照。設定後は変更不可。 |
release |
省略可。出力専用。この Unit の現在の Release オブジェクト。 |
tenant |
省略可。このユニットが属する Saas テナント リソースへの参照。たとえば、ユニットの今後のアップデートのスケジュール設定に使用するメンテナンス ポリシーを通知します。(省略可。作成後は変更不可) |
ongoingOperations[] |
省略可。出力専用。この Unit で動作している同時 UnitOperation のリスト。 |
pendingOperations[] |
省略可。出力専用。このユニットの保留中(実行待ち)の UnitOperation のリスト。 |
scheduledOperations[] |
省略可。出力専用。このユニットのスケジュール設定された UnitOperation のリスト。 |
dependents[] |
省略可。出力専用。このユニットに依存するユニットのリスト。このリストが空の場合にのみ、ユニットのプロビジョニングを解除できます。最大 1,000。 |
dependencies[] |
省略可。出力専用。このユニットの依存関係のセット。最大 10 個。 |
inputVariables[] |
省略可。出力専用。ユニットによってデプロイされた現在の入力変数を示します |
outputVariables[] |
省略可。出力専用。アクチュエーション テンプレートの実行からの出力変数に対応する Key-Value ペアのセット。変数はアクチュエーション構成(helm チャートや terraform など)で宣言され、値は実行の完了時にアクチュエーション エンジンによって取得されて返されます。 |
maintenance |
省略可。ユニットの今後のメンテナンスの実行についてリクエストされた指示をキャプチャします。これには、ユニットが一定期間メンテナンスをスキップして現在のリリースに固定されるようにするリクエストや、今後のスケジュールされたメンテナンスの延期を制御する機能が含まれます。 |
state |
省略可。出力専用。リソースの現在のライフサイクル状態(作成中か使用可能かなど)。 |
conditions[] |
省略可。出力専用。このリソースが持つ可能性のあるさまざまな条件を示す一連の条件。 |
managementMode |
省略可。変更不可。ユニットのライフサイクルがユーザーによって制御されるか、システムによって制御されるかを示します。作成後は変更できません。 |
systemManagedState |
省略可。出力専用。ユニットのシステム管理状態を示します。 |
systemCleanupAt |
省略可。出力専用。設定されている場合、システムがユニットの削除を開始する時刻を示します。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
flagRevisions[] |
省略可。出力専用。この Unit で使用されるフラグ リビジョン。 |
application |
省略可。このユニットが属する AppHub アプリケーションへの参照。このユニットにデプロイされたすべてのリソースが、指定されたアプリケーションに関連付けられます。 |
flagConfigName |
出力専用。このフィールドには、この Unit で使用されるフラグ構成の固有識別子が格納されます。 |
labels |
省略可。リソースのラベル。分類に使用できます。Kubernetes リソースラベルに似ています。
|
annotations |
省略可。アノテーションは、任意のメタデータを保存して取得するため、外部ツールによって設定される可能性のあるリソースとともに保存される非構造化 Key-Value マップです。クエリは実行可能ではなく、オブジェクトを変更する際に保持する必要があります。 詳細: https://kubernetes.io/docs/user-guide/annotations
|
uid |
出力専用。リソースの一意の識別子。UID は、サービスのスコープ内で、このリソースの時間と場所において一意性を持ちます。通常は、リソースの作成時にサーバーによって生成され、変更されることはありません。UID は、リソース名が再利用される場合でも一意にリソースを識別するために使用されます。UUID4 であることが必要です。 |
etag |
出力専用。リソースのバージョンまたは世代を一意に識別する、不透明な値です。書き込まれるリソースの順序についてクライアントとサーバーの間で確実に同意するために使用できます。 |
createTime |
出力専用。リソース作成時のタイムスタンプ。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
updateTime |
出力専用。リソース最終更新時のタイムスタンプ。ユーザーがリソースを変更した場合は、この値を更新する必要があります。サービスがリソースを変更した場合は、この値を更新する必要があります。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
satisfiesPzs |
出力専用。リソース ロケーションがゾーン分割の制約を満たしているかどうかを示します。デフォルトでは false です。 |
satisfiesPzi |
出力専用。将来の使用のために予約。 |
UnitDependency
| JSON 表現 |
|---|
{ "alias": string, "unit": string } |
| フィールド | |
|---|---|
alias |
出力専用。依存関係の名前のエイリアス。 |
unit |
出力専用。Unit オブジェクトへの参照。 |
UnitVariable
| JSON 表現 |
|---|
{
"variable": string,
"type": enum ( |
| フィールド | |
|---|---|
variable |
必須。変更不可。アクチュエーション構成の変数の名前。 |
type |
省略可。変更不可。サポートされている変数型の名前。サポートされる型は string、int、bool です。 |
value |
省略可。変数の文字列エンコード値。 |
MaintenanceSettings
| JSON 表現 |
|---|
{ "pinnedUntilTime": string } |
| フィールド | |
|---|---|
pinnedUntilTime |
省略可。オンにすると、指定した時刻までユニットのリリースが固定されます。つまり、リリース フィールドの変更が拒否されます。ロールアウトでも、アップグレードをリクエストしないことでこの設定が遵守されます。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
タイムスタンプ
| 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 にする必要があります(両端を含む)。 |
UnitCondition
| JSON 表現 |
|---|
{ "status": enum ( |
| フィールド | |
|---|---|
status |
必須。条件のステータス。 |
type |
必須。条件のタイプ。 |
lastTransitionTime |
必須。ある状態から別の状態に遷移した最後の時刻。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
message |
必須。最後の移行の詳細を示す人間が読めるメッセージ。 |
reason |
必須。条件の最後の遷移の簡単な理由。 |
LabelsEntry
| JSON 表現 |
|---|
{ "key": string, "value": string } |
| フィールド | |
|---|---|
key |
|
value |
|
AnnotationsEntry
| JSON 表現 |
|---|
{ "key": string, "value": string } |
| フィールド | |
|---|---|
key |
|
value |
|
出力スキーマ
基盤となるアクチュエーション エンジン(Terraform、Helm、サービス プロデューサーが提供するカスタム実装など)を使用して CRUD API を介してライフサイクルを持つデプロイ単位。SaaS テナントの構成要素。
ユニット
| JSON 表現 |
|---|
{ "name": string, "unitKind": string, "release": string, "tenant": string, "ongoingOperations": [ string ], "pendingOperations": [ string ], "scheduledOperations": [ string ], "dependents": [ { object ( |
| フィールド | |
|---|---|
name |
ID。標準の命名スキームに沿ったリソース名(リソースの完全な URI)。 "projects/{project}/locations/{location}/units/{unit}" |
unitKind |
省略可。この Unit が属する UnitKind への参照。設定後は変更不可。 |
release |
省略可。出力専用。この Unit の現在の Release オブジェクト。 |
tenant |
省略可。このユニットが属する Saas テナント リソースへの参照。たとえば、ユニットの今後のアップデートのスケジュール設定に使用するメンテナンス ポリシーを通知します。(省略可。作成後は変更不可) |
ongoingOperations[] |
省略可。出力専用。この Unit で動作している同時 UnitOperation のリスト。 |
pendingOperations[] |
省略可。出力専用。このユニットの保留中(実行待ち)の UnitOperation のリスト。 |
scheduledOperations[] |
省略可。出力専用。このユニットのスケジュール設定された UnitOperation のリスト。 |
dependents[] |
省略可。出力専用。このユニットに依存するユニットのリスト。このリストが空の場合にのみ、ユニットのプロビジョニングを解除できます。最大 1,000。 |
dependencies[] |
省略可。出力専用。このユニットの依存関係のセット。最大 10 個。 |
inputVariables[] |
省略可。出力専用。ユニットによってデプロイされた現在の入力変数を示します |
outputVariables[] |
省略可。出力専用。アクチュエーション テンプレートの実行からの出力変数に対応する Key-Value ペアのセット。変数はアクチュエーション構成(helm チャートや terraform など)で宣言され、値は実行の完了時にアクチュエーション エンジンによって取得されて返されます。 |
maintenance |
省略可。ユニットの今後のメンテナンスの実行についてリクエストされた指示をキャプチャします。これには、ユニットが一定期間メンテナンスをスキップして現在のリリースに固定されるようにするリクエストや、今後のスケジュールされたメンテナンスの延期を制御する機能が含まれます。 |
state |
省略可。出力専用。リソースの現在のライフサイクル状態(作成中か使用可能かなど)。 |
conditions[] |
省略可。出力専用。このリソースが持つ可能性のあるさまざまな条件を示す一連の条件。 |
managementMode |
省略可。変更不可。ユニットのライフサイクルがユーザーによって制御されるか、システムによって制御されるかを示します。作成後は変更できません。 |
systemManagedState |
省略可。出力専用。ユニットのシステム管理状態を示します。 |
systemCleanupAt |
省略可。出力専用。設定されている場合、システムがユニットの削除を開始する時刻を示します。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
flagRevisions[] |
省略可。出力専用。この Unit で使用されるフラグ リビジョン。 |
application |
省略可。このユニットが属する AppHub アプリケーションへの参照。このユニットにデプロイされたすべてのリソースが、指定されたアプリケーションに関連付けられます。 |
flagConfigName |
出力専用。このフィールドには、この Unit で使用されるフラグ構成の固有識別子が格納されます。 |
labels |
省略可。リソースのラベル。分類に使用できます。Kubernetes リソースラベルに似ています。
|
annotations |
省略可。アノテーションは、任意のメタデータを保存して取得するため、外部ツールによって設定される可能性のあるリソースとともに保存される非構造化 Key-Value マップです。クエリは実行可能ではなく、オブジェクトを変更する際に保持する必要があります。 詳細: https://kubernetes.io/docs/user-guide/annotations
|
uid |
出力専用。リソースの一意の識別子。UID は、サービスのスコープ内で、このリソースの時間と場所において一意性を持ちます。通常は、リソースの作成時にサーバーによって生成され、変更されることはありません。UID は、リソース名が再利用される場合でも一意にリソースを識別するために使用されます。UUID4 であることが必要です。 |
etag |
出力専用。リソースのバージョンまたは世代を一意に識別する、不透明な値です。書き込まれるリソースの順序についてクライアントとサーバーの間で確実に同意するために使用できます。 |
createTime |
出力専用。リソース作成時のタイムスタンプ。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
updateTime |
出力専用。リソース最終更新時のタイムスタンプ。ユーザーがリソースを変更した場合は、この値を更新する必要があります。サービスがリソースを変更した場合は、この値を更新する必要があります。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
satisfiesPzs |
出力専用。リソース ロケーションがゾーン分割の制約を満たしているかどうかを示します。デフォルトでは false です。 |
satisfiesPzi |
出力専用。将来の使用のために予約。 |
UnitDependency
| JSON 表現 |
|---|
{ "alias": string, "unit": string } |
| フィールド | |
|---|---|
alias |
出力専用。依存関係の名前のエイリアス。 |
unit |
出力専用。Unit オブジェクトへの参照。 |
UnitVariable
| JSON 表現 |
|---|
{
"variable": string,
"type": enum ( |
| フィールド | |
|---|---|
variable |
必須。変更不可。アクチュエーション構成の変数の名前。 |
type |
省略可。変更不可。サポートされている変数型の名前。サポートされる型は string、int、bool です。 |
value |
省略可。変数の文字列エンコード値。 |
MaintenanceSettings
| JSON 表現 |
|---|
{ "pinnedUntilTime": string } |
| フィールド | |
|---|---|
pinnedUntilTime |
省略可。オンにすると、指定した時刻までユニットのリリースが固定されます。つまり、リリース フィールドの変更が拒否されます。ロールアウトでも、アップグレードをリクエストしないことでこの設定が遵守されます。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
タイムスタンプ
| 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 にする必要があります(両端を含む)。 |
UnitCondition
| JSON 表現 |
|---|
{ "status": enum ( |
| フィールド | |
|---|---|
status |
必須。条件のステータス。 |
type |
必須。条件のタイプ。 |
lastTransitionTime |
必須。ある状態から別の状態に遷移した最後の時刻。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: |
message |
必須。最後の移行の詳細を示す人間が読めるメッセージ。 |
reason |
必須。条件の最後の遷移の簡単な理由。 |
LabelsEntry
| JSON 表現 |
|---|
{ "key": string, "value": string } |
| フィールド | |
|---|---|
key |
|
value |
|
AnnotationsEntry
| JSON 表現 |
|---|
{ "key": string, "value": string } |
| フィールド | |
|---|---|
key |
|
value |
|
ツールのアノテーション
破壊的ヒント: ❌ | べき等ヒント: ❌ | 読み取り専用ヒント: ❌ | オープン ワールド ヒント: ❌