Batch API

Gemini API はバッチ API をサポートしており、1 回の呼び出しで複数のリクエストを処理できます。詳細については、Batch API ガイドをご覧ください。

メソッド: models.batchGenerateContent

バッチ処理用に models.generateContent 件のリクエストのバッチをキューに登録します。

エンドポイント

投稿 https://generativelanguage.googleapis.com/v1beta/{batch.model=models/*}:batchGenerateContent

パスパラメータ

batch.model string

必須。補完の生成に使用する Model の名前。

形式: models/{model}。形式は models/{model} です。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

フィールド
batch.name string

出力専用。ID。バッチのリソース名。

形式: batches/{batchId}

batch.displayName string

必須。このバッチのユーザー定義名。

batch.inputConfig object (InputConfig)

必須。バッチ処理が実行されるインスタンスの入力構成。

batch.output object (GenerateContentBatchOutput)

出力専用。バッチ リクエストの出力。

batch.createTime string (Timestamp format)

出力専用。バッチが作成された時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

batch.endTime string (Timestamp format)

出力専用。バッチ処理が完了した時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

batch.updateTime string (Timestamp format)

出力専用。バッチが最後に更新された時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

batch.batchStats object (BatchStats)

出力専用。バッチに関する統計情報。

batch.state enum (BatchState)

出力専用。バッチの状態。

batch.priority string (int64 format)

省略可。バッチの優先度。優先度の高い値を持つバッチは、優先度の低い値を持つバッチよりも先に処理されます。負の値を使用できます。デフォルトは 0 です。

レスポンスの本文

成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。

GenerateContentRequest

モデルから補完を生成するリクエスト。

フィールド
model string

必須。補完の生成に使用する Model の名前。

形式: models/{model}

contents[] object (Content)

必須。モデルとの現在の会話の内容。

シングルターン クエリの場合、単一のインスタンスです。チャットなどのマルチターン クエリの場合、これは会話履歴と最新のリクエストを含む繰り返しフィールドです。

tools[] object (Tool)

省略可。Model が次のレスポンスの生成に使用できる Tools のリスト。

Tool は、システムが外部システムと対話して、Model の知識や範囲外のアクションまたは一連のアクションを実行できるようにするコードです。サポートされている ToolFunctioncodeExecution です。詳細については、関数呼び出しコードの実行のガイドをご覧ください。

toolConfig object (ToolConfig)

省略可。リクエストで指定された Tool のツール構成。使用例については、関数呼び出しガイドをご覧ください。

safetySettings[] object (SafetySetting)

省略可。安全でないコンテンツをブロックするための、一意の SafetySetting インスタンスのリスト。

この条件は GenerateContentRequest.contentsGenerateContentResponse.candidates に適用されます。SafetyCategory タイプごとに設定は 1 つだけにする必要があります。API は、これらの設定で設定されたしきい値を満たさないコンテンツとレスポンスをブロックします。このリストは、safetySettings で指定された各 SafetyCategory のデフォルト設定をオーバーライドします。リストに指定された特定の SafetyCategorySafetySetting がない場合、API はそのカテゴリのデフォルトの安全性設定を使用します。有害カテゴリ HARM_CATEGORY_HATE_SPEECH、HARM_CATEGORY_SEXUALLY_EXPLICIT、HARM_CATEGORY_DANGEROUS_CONTENT、HARM_CATEGORY_HARASSMENT、HARM_CATEGORY_CIVIC_INTEGRITY がサポートされています。利用可能な安全設定の詳細については、ガイドをご覧ください。AI アプリケーションに安全性の考慮事項を組み込む方法については、安全に関するガイダンスもご覧ください。

systemInstruction object (Content)

省略可。デベロッパーがシステム指示を設定します。現在、テキストのみ。

generationConfig object (GenerationConfig)

省略可。モデルの生成と出力の構成オプション。

cachedContent string

省略可。予測を提供するためにコンテキストとして使用される、キャッシュに保存されたコンテンツの名前。形式: cachedContents/{cachedContent}

JSON 表現
{
  "model": string,
  "contents": [
    {
      object (Content)
    }
  ],
  "tools": [
    {
      object (Tool)
    }
  ],
  "toolConfig": {
    object (ToolConfig)
  },
  "safetySettings": [
    {
      object (SafetySetting)
    }
  ],
  "systemInstruction": {
    object (Content)
  },
  "generationConfig": {
    object (GenerationConfig)
  },
  "cachedContent": string
}

メソッド: models.asyncBatchEmbedContent

バッチ処理用に models.embedContent 件のリクエストのバッチをキューに追加します。GenerativeServicemodels.batchEmbedContents ハンドラがありますが、同期されていました。混乱を避けるため、この名前を Async にします。

エンドポイント

投稿 https://generativelanguage.googleapis.com/v1beta/{batch.model=models/*}:asyncBatchEmbedContent

パスパラメータ

batch.model string

必須。補完の生成に使用する Model の名前。

形式: models/{model}。形式は models/{model} です。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

フィールド
batch.name string

出力専用。ID。バッチのリソース名。

形式: batches/{batchId}

batch.displayName string

必須。このバッチのユーザー定義名。

batch.inputConfig object (InputEmbedContentConfig)

必須。バッチ処理が実行されるインスタンスの入力構成。

batch.output object (EmbedContentBatchOutput)

出力専用。バッチ リクエストの出力。

batch.createTime string (Timestamp format)

出力専用。バッチが作成された時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

batch.endTime string (Timestamp format)

出力専用。バッチ処理が完了した時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

batch.updateTime string (Timestamp format)

出力専用。バッチが最後に更新された時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

batch.batchStats object (EmbedContentBatchStats)

出力専用。バッチに関する統計情報。

batch.state enum (BatchState)

出力専用。バッチの状態。

batch.priority string (int64 format)

省略可。バッチの優先度。優先度の高い値を持つバッチは、優先度の低い値を持つバッチよりも先に処理されます。負の値を使用できます。デフォルトは 0 です。

レスポンスの本文

成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。

EmbedContentRequest

エンベディングするモデルの Content を含むリクエスト。

フィールド
model string

必須。モデルのリソース名。これは、使用するモデルの ID として機能します。

この名前は、models.list メソッドから返されるモデル名と一致する必要があります。

形式: models/{model}

content object (Content)

必須。埋め込むコンテンツ。parts.text フィールドのみがカウントされます。

taskType enum (TaskType)

省略可。エンベディングが使用されるオプションのタスクタイプ。以前のモデル(models/embedding-001)ではサポートされていません。

title string

省略可。テキストのタイトル(省略可)。TaskType が RETRIEVAL_DOCUMENT の場合にのみ適用されます。

注: RETRIEVAL_DOCUMENTtitle を指定すると、検索用のエンベディングの品質が向上します。

outputDimensionality integer

省略可。出力エンベディングのオプションの削減ディメンション。設定すると、出力エンベディングの過剰な値が末尾から切り捨てられます。2024 年以降の新しいモデルでのみサポートされます。以前のモデル(models/embedding-001)を使用している場合は、この値を設定できません。

JSON 表現
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

メソッド: batches.get

長時間実行オペレーションの最新状態を取得します。クライアントはこのメソッドを使用して、API サービスで推奨される間隔でオペレーションの結果をポーリングできます。

エンドポイント

get https://generativelanguage.googleapis.com/v1beta/{name=batches/*}

パスパラメータ

name string

オペレーション リソースの名前。形式は batches/{batches} です。

リクエストの本文

リクエストの本文は空にする必要があります。

レスポンスの本文

成功した場合、レスポンスの本文には Operation のインスタンスが含まれます。

メソッド: batches.list

リクエストで指定されたフィルタに一致するオペレーションをリストします。このメソッドがサーバーでサポートされていない場合は、UNIMPLEMENTED を返します。

エンドポイント

get https://generativelanguage.googleapis.com/v1beta/{name=batches}

パスパラメータ

name string

オペレーションの親リソースの名前。形式は batches です。

クエリ パラメータ

filter string

標準リストフィルタ。

pageSize integer

標準的なリストのページサイズ。

pageToken string

標準的なリストのページトークン。

リクエストの本文

リクエストの本文は空にする必要があります。

レスポンスの本文

成功した場合、レスポンスの本文には ListOperationsResponse のインスタンスが含まれます。

メソッド: batches.cancel

長時間実行オペレーションの非同期キャンセルを開始します。サーバーは操作のキャンセルに全力を尽くしますが、成功は保証されません。このメソッドがサーバーでサポートされていない場合は、google.rpc.Code.UNIMPLEMENTED を返します。クライアントは Operations.GetOperation などのメソッドを使用して、キャンセルが成功したか、あるいはキャンセルしたにもかかわらずオペレーションが完了したかを確認できます。キャンセルが成功するとそのオペレーションは削除されず、google.rpc.Status.code1Operation.error 値を持つオペレーションになります。これは Code.CANCELLED に相当します。

エンドポイント

投稿 https://generativelanguage.googleapis.com/v1beta/{name=batches/*}:cancel

パスパラメータ

name string

キャンセルするオペレーション リソースの名前。形式は batches/{batches} です。

リクエストの本文

リクエストの本文は空にする必要があります。

レスポンスの本文

成功した場合、レスポンスの本文は空の JSON オブジェクトになります。

メソッド: batches.delete

長時間実行オペレーションを削除します。このメソッドは、クライアントがそのオペレーション結果に関心がなくなったことを表しています。このメソッドではオペレーションはキャンセルされません。このメソッドがサーバーでサポートされていない場合は、google.rpc.Code.UNIMPLEMENTED を返します。

エンドポイント

削除 https://generativelanguage.googleapis.com/v1beta/{name=batches/*}

パスパラメータ

name string

削除するオペレーション リソースの名前。形式は batches/{batches} です。

リクエストの本文

リクエストの本文は空にする必要があります。

レスポンスの本文

成功した場合、レスポンスの本文は空の JSON オブジェクトになります。

GenerateContentBatch

GenerateContent リクエストのバッチを表すリソース。

フィールド
model string

必須。補完の生成に使用する Model の名前。

形式: models/{model}

name string

出力専用。ID。バッチのリソース名。

形式: batches/{batchId}

displayName string

必須。このバッチのユーザー定義名。

inputConfig object (InputConfig)

必須。バッチ処理が実行されるインスタンスの入力構成。

output object (GenerateContentBatchOutput)

出力専用。バッチ リクエストの出力。

createTime string (Timestamp format)

出力専用。バッチが作成された時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

endTime string (Timestamp format)

出力専用。バッチ処理が完了した時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

updateTime string (Timestamp format)

出力専用。バッチが最後に更新された時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

batchStats object (BatchStats)

出力専用。バッチに関する統計情報。

state enum (BatchState)

出力専用。バッチの状態。

priority string (int64 format)

省略可。バッチの優先度。優先度の高い値を持つバッチは、優先度の低い値を持つバッチよりも先に処理されます。負の値を使用できます。デフォルトは 0 です。

JSON 表現
{
  "model": string,
  "name": string,
  "displayName": string,
  "inputConfig": {
    object (InputConfig)
  },
  "output": {
    object (GenerateContentBatchOutput)
  },
  "createTime": string,
  "endTime": string,
  "updateTime": string,
  "batchStats": {
    object (BatchStats)
  },
  "state": enum (BatchState),
  "priority": string
}

InputConfig

バッチ リクエストの入力を構成します。

フィールド
source Union type
必須。入力のソース。source は次のいずれかになります。
fileName string

入力リクエストを含む File の名前。

requests object (InlinedRequests)

バッチで処理されるリクエスト。

JSON 表現
{

  // source
  "fileName": string,
  "requests": {
    object (InlinedRequests)
  }
  // Union type
}

InlinedRequests

バッチ作成リクエストの一部として指定された場合、バッチで処理されるリクエスト。

フィールド
requests[] object (InlinedRequest)

必須。バッチで処理されるリクエスト。

JSON 表現
{
  "requests": [
    {
      object (InlinedRequest)
    }
  ]
}

InlinedRequest

バッチで処理されるリクエスト。

フィールド
request object (GenerateContentRequest)

必須。バッチで処理されるリクエスト。

metadata object (Struct format)

省略可。リクエストに関連付けるメタデータ。

JSON 表現
{
  "request": {
    object (GenerateContentRequest)
  },
  "metadata": {
    object
  }
}

GenerateContentBatchOutput

バッチ リクエストの出力。これは、BatchGenerateContentResponse フィールドまたは GenerateContentBatch.output フィールドで返されます。

フィールド
output Union type
バッチ リクエストの出力。output は次のいずれかになります。
responsesFile string

出力専用。回答を含むファイルのファイル ID。ファイルは、1 行に 1 つのレスポンスを含む JSONL ファイルになります。レスポンスは JSON 形式の GenerateContentResponse メッセージになります。レスポンスは、入力リクエストと同じ順序で書き込まれます。

inlinedResponses object (InlinedResponses)

出力専用。バッチ内のリクエストに対するレスポンス。バッチがインライン リクエストを使用して作成された場合に返されます。レスポンスは、入力リクエストと同じ順序で返されます。

JSON 表現
{

  // output
  "responsesFile": string,
  "inlinedResponses": {
    object (InlinedResponses)
  }
  // Union type
}

InlinedResponses

バッチ内のリクエストに対するレスポンス。

フィールド
inlinedResponses[] object (InlinedResponse)

出力専用。バッチ内のリクエストに対するレスポンス。

JSON 表現
{
  "inlinedResponses": [
    {
      object (InlinedResponse)
    }
  ]
}

InlinedResponse

バッチ内の単一のリクエストに対するレスポンス。

フィールド
metadata object (Struct format)

出力専用。リクエストに関連付けられたメタデータ。

output Union type
リクエストの出力。output は次のいずれかになります。
error object (Status)

出力専用。リクエストの処理中に発生したエラー。

response object (GenerateContentResponse)

出力専用。リクエストに対するレスポンス。

JSON 表現
{
  "metadata": {
    object
  },

  // output
  "error": {
    object (Status)
  },
  "response": {
    object (GenerateContentResponse)
  }
  // Union type
}

BatchStats

バッチに関する統計情報。

フィールド
requestCount string (int64 format)

出力専用。バッチ内のリクエストの数。

successfulRequestCount string (int64 format)

出力専用。正常に処理されたリクエストの数。

failedRequestCount string (int64 format)

出力専用。処理に失敗したリクエストの数。

pendingRequestCount string (int64 format)

出力専用。処理が保留中のリクエストの数。

JSON 表現
{
  "requestCount": string,
  "successfulRequestCount": string,
  "failedRequestCount": string,
  "pendingRequestCount": string
}

EmbedContentBatch

EmbedContent リクエストのバッチを表すリソース。

フィールド
model string

必須。補完の生成に使用する Model の名前。

形式: models/{model}

name string

出力専用。ID。バッチのリソース名。

形式: batches/{batchId}

displayName string

必須。このバッチのユーザー定義名。

inputConfig object (InputEmbedContentConfig)

必須。バッチ処理が実行されるインスタンスの入力構成。

output object (EmbedContentBatchOutput)

出力専用。バッチ リクエストの出力。

createTime string (Timestamp format)

出力専用。バッチが作成された時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

endTime string (Timestamp format)

出力専用。バッチ処理が完了した時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

updateTime string (Timestamp format)

出力専用。バッチが最後に更新された時刻。

RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

batchStats object (EmbedContentBatchStats)

出力専用。バッチに関する統計情報。

state enum (BatchState)

出力専用。バッチの状態。

priority string (int64 format)

省略可。バッチの優先度。優先度の高い値を持つバッチは、優先度の低い値を持つバッチよりも先に処理されます。負の値を使用できます。デフォルトは 0 です。

JSON 表現
{
  "model": string,
  "name": string,
  "displayName": string,
  "inputConfig": {
    object (InputEmbedContentConfig)
  },
  "output": {
    object (EmbedContentBatchOutput)
  },
  "createTime": string,
  "endTime": string,
  "updateTime": string,
  "batchStats": {
    object (EmbedContentBatchStats)
  },
  "state": enum (BatchState),
  "priority": string
}

InputEmbedContentConfig

バッチ リクエストの入力を構成します。

フィールド
source Union type
必須。入力のソース。source は次のいずれかになります。
fileName string

入力リクエストを含む File の名前。

requests object (InlinedEmbedContentRequests)

バッチで処理されるリクエスト。

JSON 表現
{

  // source
  "fileName": string,
  "requests": {
    object (InlinedEmbedContentRequests)
  }
  // Union type
}

InlinedEmbedContentRequests

バッチ作成リクエストの一部として指定された場合、バッチで処理されるリクエスト。

フィールド
requests[] object (InlinedEmbedContentRequest)

必須。バッチで処理されるリクエスト。

JSON 表現
{
  "requests": [
    {
      object (InlinedEmbedContentRequest)
    }
  ]
}

InlinedEmbedContentRequest

バッチで処理されるリクエスト。

フィールド
request object (EmbedContentRequest)

必須。バッチで処理されるリクエスト。

metadata object (Struct format)

省略可。リクエストに関連付けるメタデータ。

JSON 表現
{
  "request": {
    object (EmbedContentRequest)
  },
  "metadata": {
    object
  }
}

EmbedContentBatchOutput

バッチ リクエストの出力。これは、AsyncBatchEmbedContentResponse フィールドまたは EmbedContentBatch.output フィールドで返されます。

フィールド
output Union type
バッチ リクエストの出力。output は次のいずれかになります。
responsesFile string

出力専用。回答を含むファイルのファイル ID。ファイルは、1 行に 1 つのレスポンスを含む JSONL ファイルになります。レスポンスは JSON 形式の EmbedContentResponse メッセージになります。レスポンスは、入力リクエストと同じ順序で書き込まれます。

inlinedResponses object (InlinedEmbedContentResponses)

出力専用。バッチ内のリクエストに対するレスポンス。バッチがインライン リクエストを使用して作成された場合に返されます。レスポンスは、入力リクエストと同じ順序で返されます。

JSON 表現
{

  // output
  "responsesFile": string,
  "inlinedResponses": {
    object (InlinedEmbedContentResponses)
  }
  // Union type
}

InlinedEmbedContentResponses

バッチ内のリクエストに対するレスポンス。

フィールド
inlinedResponses[] object (InlinedEmbedContentResponse)

出力専用。バッチ内のリクエストに対するレスポンス。

JSON 表現
{
  "inlinedResponses": [
    {
      object (InlinedEmbedContentResponse)
    }
  ]
}

InlinedEmbedContentResponse

バッチ内の単一のリクエストに対するレスポンス。

フィールド
metadata object (Struct format)

出力専用。リクエストに関連付けられたメタデータ。

output Union type
リクエストの出力。output は次のいずれかになります。
error object (Status)

出力専用。リクエストの処理中に発生したエラー。

response object (EmbedContentResponse)

出力専用。リクエストに対するレスポンス。

JSON 表現
{
  "metadata": {
    object
  },

  // output
  "error": {
    object (Status)
  },
  "response": {
    object (EmbedContentResponse)
  }
  // Union type
}

EmbedContentBatchStats

バッチに関する統計情報。

フィールド
requestCount string (int64 format)

出力専用。バッチ内のリクエストの数。

successfulRequestCount string (int64 format)

出力専用。正常に処理されたリクエストの数。

failedRequestCount string (int64 format)

出力専用。処理に失敗したリクエストの数。

pendingRequestCount string (int64 format)

出力専用。処理が保留中のリクエストの数。

JSON 表現
{
  "requestCount": string,
  "successfulRequestCount": string,
  "failedRequestCount": string,
  "pendingRequestCount": string
}

BatchState

バッチの状態。

列挙型
BATCH_STATE_UNSPECIFIED バッチの状態は指定されていません。
BATCH_STATE_PENDING サービスはバッチを実行する準備をしています。
BATCH_STATE_RUNNING バッチは進行中です。
BATCH_STATE_SUCCEEDED バッチは正常に完了しました。
BATCH_STATE_FAILED バッチが失敗しました。
BATCH_STATE_CANCELLED バッチがキャンセルされました。
BATCH_STATE_EXPIRED バッチの有効期限が切れています。

REST リソース: batches

リソース: Operation

このリソースは、ネットワーク API 呼び出しの結果である長時間実行オペレーションを表します。

フィールド
name string

サーバーによって割り当てられる名前。最初にその名前を返すサービスと同じサービス内でのみ一意になります。デフォルトの HTTP マッピングを使用している場合は、nameoperations/{unique_id} で終わるリソース名にします。

metadata object

オペレーションに関連付けられているサービス固有のメタデータ。通常は進捗情報や、作成日時などの共通メタデータが含まれます。一部のサービスでは、このようなメタデータが提供されないこともあります。メタデータがある場合、長時間実行オペレーションを返すメソッドでは、メタデータの型をドキュメント化しておく必要があります。

任意の型のフィールドを含むオブジェクト。追加フィールドの "@type" には、その型を識別する URI が含まれます。例: { "id": 1234, "@type": "types.example.com/standard/id" }

done boolean

値が false の場合は、オペレーションが進行中であることを意味します。true の場合、オペレーションは完了しており、error または response が利用可能です。

result Union type
オペレーションの結果。error または有効な response になります。done == false の場合、errorresponse も設定されません。done == true の場合、error または response のどちらか 1 つだけが設定されます。一部のサービスでは結果が返されない場合があります。result は次のいずれかになります。
error object (Status)

失敗またはキャンセルされた場合のオペレーションのエラー結果。

response object

オペレーションの通常の成功レスポンス。元のメソッドで成功時にデータが返されない場合(Delete など)、レスポンスは google.protobuf.Empty になります。元のメソッドが標準の Get/Create/Update である場合、レスポンスはリソースになります。他のメソッドについては、レスポンスの型が XxxResponseXxx は元のメソッド名)になります。たとえば、元のメソッド名が TakeSnapshot() であれば、レスポンスの型は TakeSnapshotResponse になると推測できます。

任意の型のフィールドを含むオブジェクト。追加フィールドの "@type" には、その型を識別する URI が含まれます。例: { "id": 1234, "@type": "types.example.com/standard/id" }

JSON 表現
{
  "name": string,
  "metadata": {
    "@type": string,
    field1: ...,
    ...
  },
  "done": boolean,

  // result
  "error": {
    object (Status)
  },
  "response": {
    "@type": string,
    field1: ...,
    ...
  }
  // Union type
}