Outil : create_workflow_invocation
Crée une invocation de workflow dans un dépôt Dataform donné.
La valeur du paramètre parent doit être au format projects/{project_id}/locations/{location}/repositories/{repository}.
Il est obligatoire d'indiquer soit la valeur du paramètre compilation_result, soit celle du paramètre workflow_config.
- Si vous utilisez
compilation_result, la valeur du paramètre doit être au formatprojects/{project_id}/locations/{location}/repositories/{repository}/compilationResults/{compilation_result}. - Si vous utilisez
workflow_config, la valeur du paramètre doit être au formatprojects/{project_id}/locations/{location}/repositories/{repository}/workflowConfigs/{workflow_config}.
Condition préalable : Pour déclencher une invocation, vous devez d'abord créer un compilation_result à l'aide de l'outil create_compilation_result ou un workflow_config à l'aide de l'outil create_workflow_config. Vous ne pouvez pas déclencher d'appel directement à partir du code brut du dépôt.
L'appel de workflow s'exécute sous un compte de service déterminé par la source de compilation :
- Si vous utilisez
compilation_result, définissez la valeur du paramètreinvocationConfig.serviceAccount. Si cet élément n'est pas spécifié, la valeurservice_accountpar défaut du dépôt s'applique. - Si vous utilisez
workflow_config, ne définissez pas le paramètreinvocationConfig. L'appel s'exécute automatiquement sous le compte de service configuré dans cette configuration de workflow.
Le compte de service ne peut pas être l'agent de service Dataform par défaut. Le compte de service doit disposer des autorisations nécessaires pour exécuter le workflow, et l'utilisateur doit être autorisé à agir en tant que compte de service sélectionné. Cette autorisation est généralement accordée par le biais du rôle Utilisateur du compte de service (roles/iam.serviceAccountUser), qui peut être accordé sur le compte de service lui-même ou sur le projet qui le contient.
L'exemple de code suivant montre comment utiliser curl pour appeler l'outil MCP create_workflow_invocation.
| Requête 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_workflow_invocation", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
Schéma d'entrée
Message de requête CreateWorkflowInvocation.
CreateWorkflowInvocationRequest
| Représentation JSON |
|---|
{
"parent": string,
"workflowInvocation": {
object ( |
| Champs | |
|---|---|
parent |
Obligatoire. Dépôt dans lequel créer l'invocation de workflow. Il doit respecter le format |
workflowInvocation |
Obligatoire. Ressource d'appel de workflow à créer. |
WorkflowInvocation
| Représentation JSON |
|---|
{ "name": string, "invocationConfig": { object ( |
| Champs | |
|---|---|
name |
Uniquement en sortie. Nom de l'appel de workflow. |
invocationConfig |
Immuable. Si elle n'est pas définie, une InvocationConfig par défaut sera utilisée. |
state |
Uniquement en sortie. État actuel de l'appel de workflow. |
invocationTiming |
Uniquement en sortie. Détails de timing de l'appel de workflow. |
resolvedCompilationResult |
Uniquement en sortie. Résultat de la compilation résolue qui a été utilisé pour créer cette invocation. Il sera au format |
dataEncryptionState |
Uniquement en sortie. Défini uniquement si le dépôt possède une clé KMS. |
privateResourceMetadata |
Uniquement en sortie. Métadonnées indiquant si cette ressource est de portée utilisateur. La ressource |
pipelineConfig |
Uniquement en sortie. Options de pipeline qui définissent le type et le chemin d'accès du pipeline dans le dépôt Git. |
Champ d'union compilation_source. Source du résultat de la compilation à utiliser pour cet appel. compilation_source ne peut être qu'un des éléments suivants : |
|
compilationResult |
Immuable. Nom du résultat de la compilation à utiliser pour cet appel. Il doit respecter le format |
workflowConfig |
Immuable. Nom de la configuration de workflow à appeler. Il doit respecter le format |
Champ d'union
|
|
internalMetadata |
Uniquement en sortie. Toutes les informations de métadonnées utilisées en interne pour diffuser la ressource. Par exemple : codes temporels, indicateurs, champs d'état, etc. Le format de ce champ est une chaîne JSON. |
InvocationConfig
| Représentation JSON |
|---|
{ "includedTargets": [ { object ( |
| Champs | |
|---|---|
includedTargets[] |
Facultatif. Ensemble d'identifiants d'action à inclure. |
includedTags[] |
Facultatif. Ensemble de tags à inclure. |
transitiveDependenciesIncluded |
Facultatif. Si la valeur est définie sur "true", les dépendances transitives des actions incluses seront exécutées. |
transitiveDependentsIncluded |
Facultatif. Si la valeur est définie sur "true", les dépendants transitifs des actions incluses seront exécutés. |
fullyRefreshIncrementalTablesEnabled |
Facultatif. Si cette valeur est définie sur "true", toutes les tables incrémentales seront entièrement actualisées. |
serviceAccount |
Facultatif. Compte de service sous lequel exécuter les appels de workflow. |
Champ d'union
|
|
queryPriority |
Facultatif. Spécifie la priorité d'exécution des requêtes dans BigQuery. Pour en savoir plus, consultez https://cloud.google.com/bigquery/docs/running-queries#queries. |
Cible
| Représentation JSON |
|---|
{ "database": string, "schema": string, "name": string } |
| Champs | |
|---|---|
database |
Facultatif. Base de données de l'action (ID de projet Google Cloud) . |
schema |
Facultatif. Schéma de l'action (ID de l'ensemble de données BigQuery), dans |
name |
Facultatif. Nom de l'action, dans |
Intervalle
| Représentation JSON |
|---|
{ "startTime": string, "endTime": string } |
| Champs | |
|---|---|
startTime |
Facultatif. Valeur de début (inclusive) de l'intervalle. Si elle est spécifiée, un code temporel correspondant à cet intervalle devra être égal ou postérieur à l'heure de début. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
endTime |
Facultatif. Valeur de fin (exclusive) de l'intervalle. Si elle est spécifiée, un code temporel correspondant à cet intervalle devra être antérieur à l'heure de fin. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
Horodatage
| Représentation JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Champs | |
|---|---|
seconds |
Représente les secondes de l'heure UTC à partir de l'epoch Unix 1970-01-01T00:00:00Z. La valeur doit être comprise entre -62135596800 et 253402300799 inclus (ce qui correspond à 0001-01-01T00:00:00Z et 9999-12-31T23:59:59Z). |
nanos |
Fractions de secondes non négatives avec une précision de l'ordre de la nanoseconde. Ce champ correspond à la partie en nanosecondes de la durée, et non à une alternative aux secondes. Les valeurs de secondes négatives avec des fractions doivent toujours comporter des valeurs de nanosecondes non négatives comptabilisées dans le temps. La valeur doit être comprise entre 0 et 999 999 999 inclus. |
DataEncryptionState
| Représentation JSON |
|---|
{ "kmsKeyVersionName": string } |
| Champs | |
|---|---|
kmsKeyVersionName |
Obligatoire. Nom de la version de clé KMS avec laquelle les données d'une ressource sont chiffrées. |
PrivateResourceMetadata
| Représentation JSON |
|---|
{ "userScoped": boolean } |
| Champs | |
|---|---|
userScoped |
Uniquement en sortie. Si la valeur est "true", cette ressource est de portée utilisateur, ce qui signifie qu'elle est associée à un espace de travail ou provient d'un espace de travail. |
PipelineConfig
| Représentation JSON |
|---|
{
"pipelineType": enum ( |
| Champs | |
|---|---|
pipelineType |
Obligatoire. Type de pipeline. |
path |
Obligatoire. Chemin d'accès relatif dans le dépôt Git où le pipeline est défini. Par exemple, pour un pipeline Dataform, il s'agit d'un chemin d'accès au dossier où se trouve |
QueryPriority
Types de priorité pour l'exécution des requêtes dans BigQuery.
| Enums | |
|---|---|
QUERY_PRIORITY_UNSPECIFIED |
Valeur par défaut. Cette valeur n'est pas utilisée. |
INTERACTIVE |
La requête sera exécutée dans BigQuery avec une priorité interactive. Pour en savoir plus, consultez https://cloud.google.com/bigquery/docs/running-queries#queries. |
BATCH |
La requête sera exécutée dans BigQuery avec la priorité des requêtes par lot. Pour en savoir plus, consultez https://cloud.google.com/bigquery/docs/running-queries#batchqueries. |
État
Représente l'état actuel d'un appel de workflow.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
Valeur par défaut. Cette valeur n'est pas utilisée. |
RUNNING |
L'appel de workflow est en cours d'exécution. |
SUCCEEDED |
L'appel du workflow a réussi. État final. |
CANCELLED |
L'appel de workflow a été annulé. État final. |
FAILED |
L'appel du workflow a échoué. État final. |
CANCELING |
L'appel de workflow est en cours d'annulation, mais certaines actions sont toujours en cours d'exécution. |
PipelineType
Type de pipeline. Cette durée pourra être prolongée à l'avenir. En cas de valeur UNSPECIFIED, l'erreur sera générée.
| Enums | |
|---|---|
PIPELINE_TYPE_UNSPECIFIED |
Valeur par défaut. Cette valeur n'est pas utilisée. |
DATAFORM |
Pipeline Dataform standard. |
SQL |
Élément de fichier unique SQL. |
NOTEBOOK |
Composant de fichier unique Notebook. |
Schéma de sortie
Représente une seule invocation d'un résultat de compilation.
WorkflowInvocation
| Représentation JSON |
|---|
{ "name": string, "invocationConfig": { object ( |
| Champs | |
|---|---|
name |
Uniquement en sortie. Nom de l'appel de workflow. |
invocationConfig |
Immuable. Si elle n'est pas définie, une InvocationConfig par défaut sera utilisée. |
state |
Uniquement en sortie. État actuel de l'appel de workflow. |
invocationTiming |
Uniquement en sortie. Détails de timing de l'appel de workflow. |
resolvedCompilationResult |
Uniquement en sortie. Résultat de la compilation résolue qui a été utilisé pour créer cette invocation. Il sera au format |
dataEncryptionState |
Uniquement en sortie. Défini uniquement si le dépôt possède une clé KMS. |
privateResourceMetadata |
Uniquement en sortie. Métadonnées indiquant si cette ressource est de portée utilisateur. La ressource |
pipelineConfig |
Uniquement en sortie. Options de pipeline qui définissent le type et le chemin d'accès du pipeline dans le dépôt Git. |
Champ d'union compilation_source. Source du résultat de la compilation à utiliser pour cet appel. compilation_source ne peut être qu'un des éléments suivants : |
|
compilationResult |
Immuable. Nom du résultat de la compilation à utiliser pour cet appel. Il doit respecter le format |
workflowConfig |
Immuable. Nom de la configuration de workflow à appeler. Il doit respecter le format |
Champ d'union
|
|
internalMetadata |
Uniquement en sortie. Toutes les informations de métadonnées utilisées en interne pour diffuser la ressource. Par exemple : codes temporels, indicateurs, champs d'état, etc. Le format de ce champ est une chaîne JSON. |
InvocationConfig
| Représentation JSON |
|---|
{ "includedTargets": [ { object ( |
| Champs | |
|---|---|
includedTargets[] |
Facultatif. Ensemble d'identifiants d'action à inclure. |
includedTags[] |
Facultatif. Ensemble de tags à inclure. |
transitiveDependenciesIncluded |
Facultatif. Si la valeur est définie sur "true", les dépendances transitives des actions incluses seront exécutées. |
transitiveDependentsIncluded |
Facultatif. Si la valeur est définie sur "true", les dépendants transitifs des actions incluses seront exécutés. |
fullyRefreshIncrementalTablesEnabled |
Facultatif. Si cette valeur est définie sur "true", toutes les tables incrémentales seront entièrement actualisées. |
serviceAccount |
Facultatif. Compte de service sous lequel exécuter les appels de workflow. |
Champ d'union
|
|
queryPriority |
Facultatif. Spécifie la priorité d'exécution des requêtes dans BigQuery. Pour en savoir plus, consultez https://cloud.google.com/bigquery/docs/running-queries#queries. |
Cible
| Représentation JSON |
|---|
{ "database": string, "schema": string, "name": string } |
| Champs | |
|---|---|
database |
Facultatif. Base de données de l'action (ID de projet Google Cloud) . |
schema |
Facultatif. Schéma de l'action (ID de l'ensemble de données BigQuery), dans |
name |
Facultatif. Nom de l'action, dans |
Intervalle
| Représentation JSON |
|---|
{ "startTime": string, "endTime": string } |
| Champs | |
|---|---|
startTime |
Facultatif. Valeur de début (inclusive) de l'intervalle. Si elle est spécifiée, un code temporel correspondant à cet intervalle devra être égal ou postérieur à l'heure de début. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
endTime |
Facultatif. Valeur de fin (exclusive) de l'intervalle. Si elle est spécifiée, un code temporel correspondant à cet intervalle devra être antérieur à l'heure de fin. Utilise la norme RFC 3339, où la sortie générée utilise toujours le format UTC (indiqué par "Z" pour le temps universel coordonné) avec des secondes fractionnaires de 0, 3, 6 ou 9 chiffres décimaux. Des décalages horaires autres que "Z" (UTC) sont également acceptés. Exemples : |
Horodatage
| Représentation JSON |
|---|
{ "seconds": string, "nanos": integer } |
| Champs | |
|---|---|
seconds |
Représente les secondes de l'heure UTC à partir de l'epoch Unix 1970-01-01T00:00:00Z. La valeur doit être comprise entre -62135596800 et 253402300799 inclus (ce qui correspond à 0001-01-01T00:00:00Z et 9999-12-31T23:59:59Z). |
nanos |
Fractions de secondes non négatives avec une précision de l'ordre de la nanoseconde. Ce champ correspond à la partie en nanosecondes de la durée, et non à une alternative aux secondes. Les valeurs de secondes négatives avec des fractions doivent toujours comporter des valeurs de nanosecondes non négatives comptabilisées dans le temps. La valeur doit être comprise entre 0 et 999 999 999 inclus. |
DataEncryptionState
| Représentation JSON |
|---|
{ "kmsKeyVersionName": string } |
| Champs | |
|---|---|
kmsKeyVersionName |
Obligatoire. Nom de la version de clé KMS avec laquelle les données d'une ressource sont chiffrées. |
PrivateResourceMetadata
| Représentation JSON |
|---|
{ "userScoped": boolean } |
| Champs | |
|---|---|
userScoped |
Uniquement en sortie. Si la valeur est "true", cette ressource est de portée utilisateur, ce qui signifie qu'elle est associée à un espace de travail ou provient d'un espace de travail. |
PipelineConfig
| Représentation JSON |
|---|
{
"pipelineType": enum ( |
| Champs | |
|---|---|
pipelineType |
Obligatoire. Type de pipeline. |
path |
Obligatoire. Chemin d'accès relatif dans le dépôt Git où le pipeline est défini. Par exemple, pour un pipeline Dataform, il s'agit d'un chemin d'accès au dossier où se trouve |
QueryPriority
Types de priorité pour l'exécution des requêtes dans BigQuery.
| Enums | |
|---|---|
QUERY_PRIORITY_UNSPECIFIED |
Valeur par défaut. Cette valeur n'est pas utilisée. |
INTERACTIVE |
La requête sera exécutée dans BigQuery avec une priorité interactive. Pour en savoir plus, consultez https://cloud.google.com/bigquery/docs/running-queries#queries. |
BATCH |
La requête sera exécutée dans BigQuery avec la priorité des requêtes par lot. Pour en savoir plus, consultez https://cloud.google.com/bigquery/docs/running-queries#batchqueries. |
État
Représente l'état actuel d'un appel de workflow.
| Enums | |
|---|---|
STATE_UNSPECIFIED |
Valeur par défaut. Cette valeur n'est pas utilisée. |
RUNNING |
L'appel de workflow est en cours d'exécution. |
SUCCEEDED |
L'appel du workflow a réussi. État final. |
CANCELLED |
L'appel de workflow a été annulé. État final. |
FAILED |
L'appel du workflow a échoué. État final. |
CANCELING |
L'appel de workflow est en cours d'annulation, mais certaines actions sont toujours en cours d'exécution. |
PipelineType
Type de pipeline. Cette durée pourra être prolongée à l'avenir. En cas de valeur UNSPECIFIED, l'erreur sera générée.
| Enums | |
|---|---|
PIPELINE_TYPE_UNSPECIFIED |
Valeur par défaut. Cette valeur n'est pas utilisée. |
DATAFORM |
Pipeline Dataform standard. |
SQL |
Élément de fichier unique SQL. |
NOTEBOOK |
Composant de fichier unique Notebook. |
Annotations d'outils
Les annotations d'outil sont envoyées aux clients MCP pour décrire le risque de base d'un outil donné. La plupart des clients traitent ces indices comme non fiables, mais ils peuvent être utilisés pour déterminer quand un message de confirmation peut être envoyé à un utilisateur.
En plus de la chaîne de titre, les indications booléennes suivantes sont définies comme suit :
readOnlyHint: si la valeur est "true", l'outil ne modifie pas son environnement. Valeur par défaut : "false".destructiveHint: si la valeur est "true", l'outil peut effectuer des actions destructrices. Si la valeur est "false", l'outil ne peut effectuer que des actions d'ajout. Valeur par défaut : "true".idempotentHint: si la valeur est "true", appeler l'outil à plusieurs reprises avec les mêmes arguments n'aura aucun effet supplémentaire sur son environnement. Valeur par défaut : "false".openWorldHint: si la valeur est "true", l'outil peut interagir avec un "monde ouvert" d'entités externes. Si la valeur est "false", l'outil ne peut interagir qu'avec des entités internes. Par exemple, un outil de recherche Web serait en monde ouvert, tandis qu'un outil de mémoire ne le serait pas.
Indication destructive : ❌ | Indication d'idempotence : ❌ | Indication de lecture seule : ❌ | Indication de monde ouvert : ❌