Outil : create_unit
Crée une ressource Unit. Paramètres obligatoires : "parent" (par exemple, projects/my-project/locations/us-central1), "unit_id", "unit". Paramètres facultatifs : "validate_only", "request_id".
L'exemple suivant montre comment utiliser curl pour appeler l'outil MCP create_unit.
| Requête 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 }' |
Schéma d'entrée
Structure de la requête pour la méthode CreateUnit.
CreateUnitRequest
| Représentation JSON |
|---|
{
"parent": string,
"unitId": string,
"unit": {
object ( |
| Champs | |
|---|---|
parent |
Obligatoire. Parent de l'unité. |
unitId |
Obligatoire. Valeur de l'ID de la nouvelle unité. |
unit |
Obligatoire. État souhaité pour l'unité. |
validateOnly |
Si "validate_only" est défini sur "true", le service tentera de valider que cette requête aboutira, mais n'apportera aucune modification. |
requestId |
ID de requête facultatif permettant d'identifier les requêtes. Spécifiez un ID de requête unique pour indiquer au serveur d'ignorer la requête si vous devez la relancer alors qu'elle a déjà été traitée. Le serveur garantira cette logique pendant au moins 60 minutes après la première requête. Imaginons que vous effectuez une requête initiale et que celle-ci expire. Si vous effectuez de nouveau la requête avec le même ID, le serveur peut vérifier si une opération initiale avec cet ID de requête a déjà été reçue et, si c'est le cas, ignorer la deuxième requête. Cela permet d'éviter que les clients ne créent accidentellement des engagements en double. L'ID de requête doit être un UUID valide, sachant qu'un UUID égal à zéro (00000000-0000-0000-0000-000000000000) n'est pas accepté. |
Unité
| Représentation JSON |
|---|
{ "name": string, "unitKind": string, "release": string, "tenant": string, "ongoingOperations": [ string ], "pendingOperations": [ string ], "scheduledOperations": [ string ], "dependents": [ { object ( |
| Champs | |
|---|---|
name |
Identifiant. Nom de la ressource (URI complet de la ressource) suivant le schéma de dénomination standard : "projects/{project}/locations/{location}/units/{unit}" |
unitKind |
Facultatif. Référence à UnitKind auquel cette unité appartient. Immuable une fois défini. |
release |
Facultatif. Uniquement en sortie. Objet Release actuel pour cette unité. |
tenant |
Facultatif. Référence à la ressource de locataire SaaS à laquelle appartient cette unité. Par exemple, cela permet d'informer les règles de maintenance à utiliser pour planifier les futures mises à jour d'une unité. (facultatif et immuable une fois créé) |
ongoingOperations[] |
Facultatif. Uniquement en sortie. Liste des UnitOperations simultanées qui fonctionnent sur cette unité. |
pendingOperations[] |
Facultatif. Uniquement en sortie. Liste des UnitOperations en attente (à exécuter) pour cette unité. |
scheduledOperations[] |
Facultatif. Uniquement en sortie. Liste des UnitOperations planifiées pour cette unité. |
dependents[] |
Facultatif. Uniquement en sortie. Liste des unités qui dépendent de cette unité. L'unité ne peut être désactivée que si cette liste est vide. 1 000 au maximum. |
dependencies[] |
Facultatif. Uniquement en sortie. Ensemble de dépendances pour cette unité. 10 maximum. |
inputVariables[] |
Facultatif. Uniquement en sortie. Indique les variables d'entrée actuelles déployées par l'unité. |
outputVariables[] |
Facultatif. Uniquement en sortie. Ensemble de paires clé/valeur correspondant aux variables de sortie de l'exécution des modèles d'actionnement. Les variables sont déclarées dans les configurations d'actionnement (par exemple, dans un graphique Helm ou Terraform). Les valeurs sont récupérées et renvoyées par le moteur d'actionnement à la fin de l'exécution. |
maintenance |
Facultatif. Capture les directives demandées pour effectuer la maintenance future de l'unité. Cela inclut une demande pour que l'unité ignore la maintenance pendant une période donnée et reste épinglée à sa version actuelle, ainsi que des commandes permettant de reporter la maintenance prévue à l'avenir. |
state |
Facultatif. Uniquement en sortie. État actuel du cycle de vie de la ressource (par exemple, si elle est en cours de création ou prête à être utilisée). |
conditions[] |
Facultatif. Uniquement en sortie. Ensemble de conditions indiquant les différentes conditions que cette ressource peut avoir. |
managementMode |
Facultatif. Immuable. Indique si le cycle de vie de l'unité est contrôlé par l'utilisateur ou par le système. Immuable une fois créé. |
systemManagedState |
Facultatif. Uniquement en sortie. Indique l'état géré par le système de l'unité. |
systemCleanupAt |
Facultatif. Uniquement en sortie. Si cette valeur est définie, elle indique l'heure à laquelle le système commencera à supprimer l'unité. 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 : |
flagRevisions[] |
Facultatif. Uniquement en sortie. Révisions de flags utilisées par cette unité. |
application |
Facultatif. Référence à l'application App Hub à laquelle appartient cette unité. Toutes les ressources déployées dans cette unité seront associées à l'application spécifiée. |
flagConfigName |
Uniquement en sortie. Ce champ stocke l'identifiant unique de la configuration de l'indicateur à utiliser par cette unité. |
labels |
Facultatif. Étiquettes de la ressource, qui peuvent être utilisées pour la catégorisation. Elles sont semblables aux étiquettes de ressources Kubernetes. Objet contenant une liste de paires |
annotations |
Facultatif. Les annotations sont un mappage clé-valeur non structuré stocké avec une ressource. Elles peuvent être définies par des outils externes pour stocker et récupérer des métadonnées arbitraires. Elles ne peuvent pas faire l'objet de requêtes et doivent être conservées lors de la modification d'objets. Pour en savoir plus, consultez https://kubernetes.io/docs/user-guide/annotations. Objet contenant une liste de paires |
uid |
Uniquement en sortie. Identifiant unique de la ressource. L'UID est unique dans le temps et l'espace pour cette ressource dans le cadre du service. Il est habituellement généré par le serveur lors de la création réussie d'une ressource et ne doit pas être modifié. L'UID permet d'identifier de manière unique les ressources avec réutilisation du nom. Il doit être un UUID4. |
etag |
Uniquement en sortie. Valeur opaque qui identifie de manière unique la version ou la génération d'une ressource. Cet identifiant permet de confirmer que le client et le serveur sont d'accord sur l'ordre d'écriture d'une ressource. |
createTime |
Uniquement en sortie. Code temporel de la création de la ressource. 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 : |
updateTime |
Uniquement en sortie. Code temporel de la dernière mise à jour de la ressource. Toute modification de la ressource par les utilisateurs doit actualiser cette valeur. Les modifications d'une ressource par le service doivent actualiser cette valeur. 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 : |
satisfiesPzs |
Uniquement en sortie. Indique si l'emplacement de la ressource respecte les contraintes de séparation des zones. Par défaut, cette valeur est définie sur "false". |
satisfiesPzi |
Uniquement en sortie. Réservé pour une utilisation ultérieure. |
UnitDependency
| Représentation JSON |
|---|
{ "alias": string, "unit": string } |
| Champs | |
|---|---|
alias |
Uniquement en sortie. Alias pour le nom de la dépendance. |
unit |
Uniquement en sortie. Référence à l'objet Unit. |
UnitVariable
| Représentation JSON |
|---|
{
"variable": string,
"type": enum ( |
| Champs | |
|---|---|
variable |
Obligatoire. Immuable. Nom de la variable issue des configurations d'actionnement. |
type |
Facultatif. Immuable. Nom d'un type de variable compatible. Les types acceptés sont string, int et bool. |
value |
Facultatif. Valeur encodée sous forme de chaîne pour la variable. |
MaintenanceSettings
| Représentation JSON |
|---|
{ "pinnedUntilTime": string } |
| Champs | |
|---|---|
pinnedUntilTime |
Facultatif. Si cette option est sélectionnée, la version présente sur l'unité est figée jusqu'à l'heure indiquée. Autrement dit, toute modification du champ "Version" sera refusée. Les déploiements respecteront également cette option en ne demandant pas de mise à niveau. 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. |
UnitCondition
| Représentation JSON |
|---|
{ "status": enum ( |
| Champs | |
|---|---|
status |
Obligatoire. État de la condition. |
type |
Obligatoire. Type de la condition. |
lastTransitionTime |
Obligatoire. Dernière transition de la condition d'un état à un autre. 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 : |
message |
Obligatoire. Message lisible par l'humain indiquant des détails sur la dernière transition. |
reason |
Obligatoire. Brève raison de la dernière transition de la condition. |
LabelsEntry
| Représentation JSON |
|---|
{ "key": string, "value": string } |
| Champs | |
|---|---|
key |
|
value |
|
AnnotationsEntry
| Représentation JSON |
|---|
{ "key": string, "value": string } |
| Champs | |
|---|---|
key |
|
value |
|
Schéma de sortie
Unité de déploiement dont le cycle de vie est géré par une API CRUD à l'aide d'un moteur d'actionnement sous-jacent (par exemple, basé sur Terraform, Helm ou une implémentation personnalisée fournie par un producteur de services). Élément de base d'un locataire SaaS.
Unité
| Représentation JSON |
|---|
{ "name": string, "unitKind": string, "release": string, "tenant": string, "ongoingOperations": [ string ], "pendingOperations": [ string ], "scheduledOperations": [ string ], "dependents": [ { object ( |
| Champs | |
|---|---|
name |
Identifiant. Nom de la ressource (URI complet de la ressource) suivant le schéma de dénomination standard : "projects/{project}/locations/{location}/units/{unit}" |
unitKind |
Facultatif. Référence à UnitKind auquel cette unité appartient. Immuable une fois défini. |
release |
Facultatif. Uniquement en sortie. Objet Release actuel pour cette unité. |
tenant |
Facultatif. Référence à la ressource de locataire SaaS à laquelle appartient cette unité. Par exemple, cela permet d'informer les règles de maintenance à utiliser pour planifier les futures mises à jour d'une unité. (facultatif et immuable une fois créé) |
ongoingOperations[] |
Facultatif. Uniquement en sortie. Liste des UnitOperations simultanées qui fonctionnent sur cette unité. |
pendingOperations[] |
Facultatif. Uniquement en sortie. Liste des UnitOperations en attente (à exécuter) pour cette unité. |
scheduledOperations[] |
Facultatif. Uniquement en sortie. Liste des UnitOperations planifiées pour cette unité. |
dependents[] |
Facultatif. Uniquement en sortie. Liste des unités qui dépendent de cette unité. L'unité ne peut être désactivée que si cette liste est vide. 1 000 au maximum. |
dependencies[] |
Facultatif. Uniquement en sortie. Ensemble de dépendances pour cette unité. 10 maximum. |
inputVariables[] |
Facultatif. Uniquement en sortie. Indique les variables d'entrée actuelles déployées par l'unité. |
outputVariables[] |
Facultatif. Uniquement en sortie. Ensemble de paires clé/valeur correspondant aux variables de sortie de l'exécution des modèles d'actionnement. Les variables sont déclarées dans les configurations d'actionnement (par exemple, dans un graphique Helm ou Terraform). Les valeurs sont récupérées et renvoyées par le moteur d'actionnement à la fin de l'exécution. |
maintenance |
Facultatif. Capture les directives demandées pour effectuer la maintenance future de l'unité. Cela inclut une demande pour que l'unité ignore la maintenance pendant une période donnée et reste épinglée à sa version actuelle, ainsi que des commandes permettant de reporter la maintenance prévue à l'avenir. |
state |
Facultatif. Uniquement en sortie. État actuel du cycle de vie de la ressource (par exemple, si elle est en cours de création ou prête à être utilisée). |
conditions[] |
Facultatif. Uniquement en sortie. Ensemble de conditions indiquant les différentes conditions que cette ressource peut avoir. |
managementMode |
Facultatif. Immuable. Indique si le cycle de vie de l'unité est contrôlé par l'utilisateur ou par le système. Immuable une fois créé. |
systemManagedState |
Facultatif. Uniquement en sortie. Indique l'état géré par le système de l'unité. |
systemCleanupAt |
Facultatif. Uniquement en sortie. Si cette valeur est définie, elle indique l'heure à laquelle le système commencera à supprimer l'unité. 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 : |
flagRevisions[] |
Facultatif. Uniquement en sortie. Révisions de flags utilisées par cette unité. |
application |
Facultatif. Référence à l'application App Hub à laquelle appartient cette unité. Toutes les ressources déployées dans cette unité seront associées à l'application spécifiée. |
flagConfigName |
Uniquement en sortie. Ce champ stocke l'identifiant unique de la configuration de l'indicateur à utiliser par cette unité. |
labels |
Facultatif. Étiquettes de la ressource, qui peuvent être utilisées pour la catégorisation. Elles sont semblables aux étiquettes de ressources Kubernetes. Objet contenant une liste de paires |
annotations |
Facultatif. Les annotations sont un mappage clé-valeur non structuré stocké avec une ressource. Elles peuvent être définies par des outils externes pour stocker et récupérer des métadonnées arbitraires. Elles ne peuvent pas faire l'objet de requêtes et doivent être conservées lors de la modification d'objets. Pour en savoir plus, consultez https://kubernetes.io/docs/user-guide/annotations. Objet contenant une liste de paires |
uid |
Uniquement en sortie. Identifiant unique de la ressource. L'UID est unique dans le temps et l'espace pour cette ressource dans le cadre du service. Il est habituellement généré par le serveur lors de la création réussie d'une ressource et ne doit pas être modifié. L'UID permet d'identifier de manière unique les ressources avec réutilisation du nom. Il doit être un UUID4. |
etag |
Uniquement en sortie. Valeur opaque qui identifie de manière unique la version ou la génération d'une ressource. Cet identifiant permet de confirmer que le client et le serveur sont d'accord sur l'ordre d'écriture d'une ressource. |
createTime |
Uniquement en sortie. Code temporel de la création de la ressource. 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 : |
updateTime |
Uniquement en sortie. Code temporel de la dernière mise à jour de la ressource. Toute modification de la ressource par les utilisateurs doit actualiser cette valeur. Les modifications d'une ressource par le service doivent actualiser cette valeur. 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 : |
satisfiesPzs |
Uniquement en sortie. Indique si l'emplacement de la ressource respecte les contraintes de séparation des zones. Par défaut, cette valeur est définie sur "false". |
satisfiesPzi |
Uniquement en sortie. Réservé pour une utilisation ultérieure. |
UnitDependency
| Représentation JSON |
|---|
{ "alias": string, "unit": string } |
| Champs | |
|---|---|
alias |
Uniquement en sortie. Alias pour le nom de la dépendance. |
unit |
Uniquement en sortie. Référence à l'objet Unit. |
UnitVariable
| Représentation JSON |
|---|
{
"variable": string,
"type": enum ( |
| Champs | |
|---|---|
variable |
Obligatoire. Immuable. Nom de la variable issue des configurations d'actionnement. |
type |
Facultatif. Immuable. Nom d'un type de variable compatible. Les types acceptés sont string, int et bool. |
value |
Facultatif. Valeur encodée sous forme de chaîne pour la variable. |
MaintenanceSettings
| Représentation JSON |
|---|
{ "pinnedUntilTime": string } |
| Champs | |
|---|---|
pinnedUntilTime |
Facultatif. Si cette option est sélectionnée, la version présente sur l'unité est figée jusqu'à l'heure indiquée. Autrement dit, toute modification du champ "Version" sera refusée. Les déploiements respecteront également cette option en ne demandant pas de mise à niveau. 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. |
UnitCondition
| Représentation JSON |
|---|
{ "status": enum ( |
| Champs | |
|---|---|
status |
Obligatoire. État de la condition. |
type |
Obligatoire. Type de la condition. |
lastTransitionTime |
Obligatoire. Dernière transition de la condition d'un état à un autre. 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 : |
message |
Obligatoire. Message lisible par l'humain indiquant des détails sur la dernière transition. |
reason |
Obligatoire. Brève raison de la dernière transition de la condition. |
LabelsEntry
| Représentation JSON |
|---|
{ "key": string, "value": string } |
| Champs | |
|---|---|
key |
|
value |
|
AnnotationsEntry
| Représentation JSON |
|---|
{ "key": string, "value": string } |
| Champs | |
|---|---|
key |
|
value |
|
Annotations d'outils
Indication de destruction : ❌ | Indication d'idempotence : ❌ | Indication de lecture seule : ❌ | Indication de monde ouvert : ❌