Dans ce guide, vous apprendrez à appeler l'API REST Private Catalog Producer.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Deployment Manager and Compute Engine APIs.
Configurer l'authentification
En tant qu'administrateur cloud, vous pouvez effectuer des appels REST pour effectuer des actions sur Private Catalog. Pour commencer, configurez vos identifiants d'accès :
- Obtenez votre ID client et votre code secret.
- Obtenez votre jeton d'accès.
- Veillez à envoyer
https://www.googleapis.com/auth/cloud-platform
dans le paramètre de champ d'application.
Créer un catalogue
Pour créer un catalogue, exécutez la commande suivante et remplacez <token>
par votre jeton d'accès OAuth2 et <organization-ID>
par votre ID d'organisation :
curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer <token>" -d "{parent:"//cloudresourcemanager.googleapis.com/organizations/<organization-ID>", display_name:"Mobile catalog", description: "description"}" https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs
Le corps de la réponse contient des données semblables à ce qui suit :
{
"name": "operations/ccb.515502c5-81ad-4226-8037-1b802eed8f69"
}
Il s'agit du nom de l'opération. Vous pouvez obtenir l'ID d'opération à partir du nom de l'opération en supprimant le préfixe operation/
. Dans l'exemple de réponse précédent, l'ID d'opération est ccb.515502c5-81ad-4226-8037-1b802eed8f69
. Vous pouvez utiliser l'ID d'opération pour vérifier l'état de la création du catalogue.
Vérifier l'état d'une opération de création de catalogue
Pour créer un catalogue, exécutez la commande suivante et remplacez <operation-ID>
par l'ID d'opération de la réponse précédente :
curl -s -H "Authorization: Bearer <token>" https://cloudprivatecatalogproducer.googleapis.com/v1beta1/operations/<operation-ID>
Répertorier les catalogues de votre organisation
Pour répertorier les catalogues auxquels vous avez accès, exécutez la commande suivante dans le champ d'application d'une organisation et remplacez <organization-number>
par le numéro de l'organisation :
curl -s -H "Authorization: Bearer <token>" https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs?parent=//cloudresourcemanager.googleapis.com/organizations/<organization-number>
Le corps de la réponse contient des données semblables à ce qui suit :
{
"catalogs": [
{
"name": "catalogs/<catalog-ID>",
"parent": "//cloudresourcemanager.googleapis.com/organizations/<organization-ID>",
"displayName": "Mobile catalog",
"description": "Mobile-related applications",
"createTime": "2019-01-01T22:05:19.541Z",
"updateTime": "2019-01-01T22:05:26.097Z"
},
{
"name": "catalogs/<catalog ID>",
"parent": "//cloudresourcemanager.googleapis.com/organizations/<organization-ID>",
"displayName": "Development tools",
"description": "Applications and tools for developers",
"createTime": "2019-01-06T00:08:06.090Z",
"updateTime": "2019-01-06T00:08:08.069Z"
},
{
"name": "catalogs/<catalog ID>",
"parent": "//cloudresourcemanager.googleapis.com/organizations/<organization-ID>",
"displayName": "Data science catalog",
"description": "Applications for data scientists",
"createTime": "2019-01-06T00:09:45.319Z",
"updateTime": "2019-01-06T00:09:48.050Z"
},
{
"name": "catalogs/<catalog ID>",
"parent": "//cloudresourcemanager.googleapis.com/organizations/<organization-ID>",
"displayName": "Training catalog",
"description": "Training applications and software",
"createTime": "2019-01-06T22:13:38.261Z",
"updateTime": "2019-01-06T22:13:46.291Z"
},
{
"name": "catalogs/<catalog-ID>",
"parent": "//cloudresourcemanager.googleapis.com/organizations/<organization-ID>",
"displayName": "Media catalog",
"description": "Applications for handling audio and visual media",
"createTime": "2019-01-07T00:15:11.949Z",
"updateTime": "2019-01-07T00:15:15.426Z"
}
]
}
Obtenir des informations sur un catalogue spécifique
Pour obtenir des informations sur un catalogue, exécutez la commande suivante et remplacez <catalog-ID>
par l'ID de catalogue figurant dans la réponse d'un appel d'API pour répertorier les catalogues de votre organisation :
curl -s -H "Authorization: Bearer <token>" https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs/<catalog-ID>
Le corps de la réponse contient des données semblables à ce qui suit :
{
"name": "catalogs/<catalog-ID>",
"parent": "//cloudresourcemanager.googleapis.com/organizations/<organizaton-ID>",
"displayName": "Data science catalog",
"description": "Applications for data scientists",
"createTime": "2019-01-01T22:05:19.541Z",
"updateTime": "2019-01-01T22:05:26.097Z"
}
Créer un produit
Pour créer un produit, exécutez la commande suivante et remplacez <catalog-ID>
par l'ID de catalogue figurant dans la réponse d'un appel d'API pour répertorier les catalogues de votre organisation :
curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer <token>" -d @/tmp/rest_create_product_request https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs/<catalog-ID>/products
L'exemple suivant illustre le contenu du fichier /tmp/rest_create_product_request
:
{
name:"catalogs/<catalog-ID>/products/<product-name>",
asset_type:"google.deploymentmanager.Template",
display_metadata:{
name:"<product-name>",
description:"Sample Description"
}
}
Répertorier les produits d'un catalogue
Pour répertorier les produits d'un catalogue, exécutez la commande suivante et remplacez <catalog-ID>
par l'ID de catalogue figurant dans la réponse d'un appel d'API pour répertorier les catalogues de votre organisation :
curl -s -H "Authorization: Bearer <token>" https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs/<catalog-ID>/products
Le corps de la réponse contient des données semblables à ce qui suit :
{
"products": [
{
"name": "catalogs/<catalog-ID>/products/dm-product",
"assetType": "google.deploymentmanager.Template",
"displayMetadata": {
"name": "sample-metadata-name",
"description": "sample-metadata-description",
"tagline": "sample-metadata-tagline",
"support_info": "sample-metadata-support-info"
},
"createTime": "2019-01-04T19:36:02.573Z"
},
{
"name": "catalogs/<catalog-ID>/products/listingonly",
"assetType": "google.private-catalog.ListingOnly",
"displayMetadata": {
"name": "listing-based product",
"description": "description",
"tagline": "tagline",
"support_info": "support_info",
"signup_url": "https://cloud.google.com/launcher",
"documentations": [
{
"url": "https://cloud.google.com/launcher"
}
]
},
"createTime": "2019-01-06T00:25:44.722Z"
}
]
}
Créer une version du produit
Pour créer une version du produit, exécutez la commande suivante et remplacez <catalog-ID>
par un ID de catalogue et <product-name>
par le nom du produit pour lequel vous souhaitez créer une version :
curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer <token>" -d @/tmp/rest_create_version_request https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs/<catalog-ID>/products/<product-name>/versions
L'exemple suivant illustre le contenu du fichier /tmp/rest_create_version_request
:
{
name: "catalogs/<catalog-ID>/products/<product-name>/versions/v1",
description: "v1",
original_asset: {
imports: [
{
name: "my-template",
content: "resources:\n name: \'awesome template\'\n properties:\n",
},
{
name: "my-template.schema",
content: ""
}
],
mainTemplate: "my-template",
templateFileType: "JINJA"
}
}
Le corps de la réponse contient des données sur l'opération obtenue, semblables à la sortie suivante :
{
"name": "operations/cvb.efcd831d-257d-43f7-8650-f7016c7469cb"
}
Répertorier les versions d'un produit
Pour répertorier les versions d'un produit, exécutez la commande suivante en remplaçant <catalog-ID>
par l'ID du catalogue et <product-name>
par le nom du produit pour lequel vous souhaitez répertorier les versions :
curl -s -H "Authorization: Bearer <token>" https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs/<catalog-ID>/products/<product-name>/versions
Le corps de la réponse contient des données semblables à ce qui suit :
{
"versions": [
{
"name": "catalogs/<catalog-ID>/products/<product-name>/versions/v1",
"createTime": "2019-01-04T19:37:47.519Z",
"updateTime": "2019-01-04T19:37:47.519Z"
}
]
}
Importer une icône de produit
Pour importer une icône de produit, exécutez la commande suivante en remplaçant <catalog-ID>
par l'ID du catalogue et <product-name>
par le nom du produit pour lequel vous souhaitez importer une icône :
curl -s -X POST -H "Content-Type: application/json" -H "Authorization: Bearer <token>" -d @/tmp/rest_upload_icon_request https://cloudprivatecatalogproducer.googleapis.com/v1beta1/catalogs/<catalog-id>/products/<product-name>/icons:upload
L'exemple suivant illustre le contenu du fichier /tmp/rest_upload_icon_request
:
{
icon_bytes: "iVBORw0KGgoA...Jggg=="
}