Configuración de la API

Puede utilizar la API de IBM Cloud® Schematics para automatizar las funciones de Schematics en IBM Cloud. Para utilizar la CLI, consulte Preparación para utilizar la CLI.

Para obtener una visión general de los servicios compatibles IBM Cloud® Schematics APIs, los puntos finales de la API y la información necesaria sobre los encabezados y el cuerpo de la solicitud, consulta la documentación de la API de Schematics.

Cómo trabajar con la API de Schematics

Aprenda a utilizar la API IBM Cloud® Schematics utilizando un token Identity and Access Management para autenticarse.

Para trabajar con la API de « IBM Cloud Schematics », debes proporcionar un token de IAM ( IBM Cloud® Identity and Access Management ) generado con tus credenciales de IBM Cloud. Dependiendo de la forma en que se autentique con IBM Cloud, puede elegir entre las siguientes opciones para automatizar la creación de la señal de IBM Cloud IAM.

Opciones y tipos de ID
Opción de autenticación Descripción
IBM Cloud nombre de usuario y contraseña Puedes seguir los pasos que se indican en este tema para automatizar por completo la creación de tu token de acceso de IAM de IBM Cloud. Si se autentica con IBM Cloud utilizando MFA, no puede automatizar completamente la creación de la señal de IAM IBM Cloud porque MFA requiere una interacción manual con el navegador web. Para automatizar por completo la creación de tu token IAM de IBM Cloud, debes utilizar en su lugar una clave API de IBM Cloud.
Clave de API de IBM Cloud Como alternativa a utilizar el nombre de usuario y la contraseña de IBM Cloud, puede utilizar IBM Cloud claves de API. Las claves de API de IBM Cloud son específicas de la cuenta de IBM Cloud para la que se generan. Para acceder a espacios de trabajo creados en una cuenta distinta de la que se basa la clave de API de IBM Cloud, debe generar una clave de API para dicha cuenta.
  1. Cree la señal de acceso de IBM Cloud IAM.

El cuerpo de solicitud para la solicitud de señal de API depende del método de autenticación IBM Cloud.

Puedes encontrar el token IAM de « IBM Cloud » en el campo « access_token » de la salida de tu API. Anote la señal de IBM Cloud IAM para recuperar información de cabecera adicional en los pasos siguientes.

POST `https://iam.cloud.ibm.com/identity/token`
Tabla
Parámetros de entrada Valores
Cabecera :Content-Type: application/x-www-form-urlencoded:Authorization: Basic [Yng6Yng=^]
Yng6Yng= equivale a la autorización codificada en URL para el nombre de usuario bx y la contraseña bx.
Cuerpo para el nombre de usuario y la contraseña de IBM Cloud :grant_type: password:response_type: cloud_iam uaa:username: El nombre de usuario de IBM Cloud .:password: Tu IBM Cloud password.: uaa_client_id: cf:uaa_client_secret:
Añade la clave « uaa_client_secret » sin especificar ningún valor.
Cuerpo para las claves de API de IBM Cloud :grant_type: urn:ibm:params:oauth:grant-type:apikey:response_type: cloud_iam uaa:apikey: Su clave de API IBM Cloud:uaa_client_id: cf:uaa_client_secret:
Añada la clave uaa_client_secret sin ningún valor especificado.
Cuerpo para el código de acceso único de IBM Cloud :grant_type:urn:ibm:params:oauth:grant-type:passcode:response_type: cloud_iam uaa:passcode: El código de acceso de un solo uso de IBM Cloud. Ejecute ibmcloud login --sso y siga las instrucciones de la salida de CLI para recuperar el código de acceso de un solo uso utilizando el navegador web.:uaa_client_id: cf:uaa_client_secret:
Añade la clave « uaa_client_secret » sin especificar ningún valor.

Salida de ejemplo

{
"access_token": "<iam_access_token>",
"refresh_token": "<iam_refresh_token>",
"uaa_token": "<uaa_token>",
"uaa_refresh_token": "<uaa_refresh_token>",
"token_type": "Bearer",
"expires_in": 3600,
"expiration": 1493747503
"scope": "ibm openid"
}
  1. Recupere el ID de cuenta de la señal con la que está trabajando.

Sustituye « <iam_access_token> » por el token de IAM obtenido del campo « access_token » de la salida de la API en el paso anterior. En la salida de tu API, puedes encontrar el ID de tu cuenta de IBM Cloud en el campo « resources.metadata.guid ».

GET https://accounts.cloud.ibm.com/coe/v2/accounts
Parámetros de entrada para obtener un ID de cuenta IBM Cloud.
Parámetros de entrada Valores
Cabeceras :Content-Type: application/json:Authorization: bearer <iam_access_token>:Accept: application/json

Salida de ejemplo

{
    "next_url": null,
    "total_results": 5,
    "resources": [
        {
            "metadata": {
                "guid": "<account_ID>",
                "url": "/coe/v2/accounts/<account_ID>",
                "created_at": "2020-09-29T02:49:41.842Z",
                "updated_at": "2020-08-16T18:56:00.442Z",
                "anonymousId": "1111a1aa1a1111a1aa11aa11111a1111"
            },
            "entity": {
                "name": "<account_name>",
            }
        }
        ]
}
  1. Genere una nueva señal de IBM Cloud IAM que incluya sus credenciales de IBM Cloud y el ID de la cuenta con el que desea trabajar.

Si utiliza una clave de API de IBM Cloud, debe utilizar el ID de cuenta de IBM Cloud y la clave de API se ha creado para la misma. Para acceder a los espacios de trabajo o a las acciones de Schematics en la cuenta B, inicie sesión en la cuenta B y cree una clave de API de IBM Cloud basada en la cuenta B.

POST https://iam.cloud.ibm.com/identity/token
Parámetros de entrada para obtener señales IAM.
Parámetros de entrada Valores
Cabecera :Content-Type: application/x-www-form-urlencoded:Authorization: Basic Yng6Yng=[^]
Yng6Yng= equivale a la autorización codificada en formato « URL » para el nombre de usuario bx y la contraseña bx.
Cuerpo para el nombre de usuario y la contraseña de IBM Cloud :grant_type: password:response_type: cloud_iam uaa:username: El nombre de usuario de IBM Cloud. :password: La contraseña de IBM Cloud. :uaa_client_ID: cf:uaa_client_secret:
Añade la clave « uaa_client_secret » sin valor: specified.:bss_account: El ID de cuenta de IBM Cloud que ha recuperado en el paso anterior.
Cuerpo para las claves de API de IBM Cloud :grant_type: urn:ibm:params:oauth:grant-type:apikey:response_type: cloud_iam uaa:apikey: La clave de API de IBM Cloud .:uaa_client_ID: cf:uaa_client_secret:
Añade la clave « uaa_client_secret » sin valor: specified.:bss_account: El ID de cuenta de IBM Cloud que ha recuperado en el paso anterior.
Cuerpo para el código de acceso único de IBM Cloud :grant_type:urn:ibm:params:oauth:grant-type:passcode:response_type: cloud_iam uaa:passcode: El código de acceso de IBM Cloud. :uaa_client_ID: cf:uaa_client_secret:
Añade la clave « uaa_client_secret » sin especificar ningún valor. :bss_account: El ID de cuenta de IBM Cloud que ha recuperado en el paso anterior.

Example output

{
    "access_token": "<iam_token>",
    "refresh_token": "<iam_refresh_token>",
    "token_type": "Bearer",
    "expires_in": 3600,
    "expiration": 1493747503
}

Puedes encontrar el token IAM « IBM Cloud » en el campo « access_token » y el token de actualización en el campo « refresh_token » de los resultados de la API.

  1. Utilice la API de Schematics para obtener una lista de todos los espacios de trabajo de la cuenta.

Sintaxis para mostrar todos los espacios de trabajo

    GET https://schematics.cloud.ibm.com/v1/workspaces/
| Input parameters | Values |
| ----- |  --- |
| Header | `Authorization: bearer <iam_token>`|
{: caption="Input parameters to work with the IBM Cloud Schematics API." caption-side="top"}

Sintaxis para obtener información sobre un espacio de trabajo concreto:

GET https://schematics.cloud.ibm.com/v1/workspaces/{id}
Parámetros de entrada para trabajar con la API IBM Cloud Schematics.
Parámetros de entrada Valores
Cabecera Authorization: bearer <iam_token>: la señal de acceso de IAM de IBM Cloud.
Vía de acceso id <workspace_ID>: ID del espacio de trabajo. Para recuperar el ID de espacio de trabajo, ejecute ibmcloud schematics workspace list
  1. Revise la documentación de la API deIBM Cloud Schematics para obtener una lista de APIs soportados.

Actualización de los tokens de acceso IAM de IBM Cloud y obtención de nuevos tokens mediante la API

Un token de acceso a IBM Cloud® Identity and Access Management (IAM) caduca al cabo de una hora. Debe renovar la señal de acceso de forma periódica para garantizar el acceso a la API de IBM Cloud. Puedes seguir los mismos pasos para obtener un nuevo token.

Antes de empezar, asegúrate de que dispones de un token de actualización de IAM válido de IBM Cloud o de una clave API de IBM Cloud que puedas utilizar para solicitar un nuevo token de acceso.

  • Renovar señal: Siga las instrucciones de Automatización del proceso de creación y gestión del espacio de trabajo con la API de IBM Cloud.
  • Clave API: Obtén tu IBM Cloud clave API de la siguiente manera.
    1. En la barra de menús, pulse Gestionar > Acceso (IAM).
    2. Pulse la página Usuarios y, a continuación, selecciónese usted mismo.
    3. En el panel Claves de API, pulse Crear una clave de API de IBM Cloud.
    4. Especifique un Nombre y una Descripción para la clave de API y, a continuación, pulse Crear.
    5. Pulse Mostrar para ver la clave de API generada en su nombre.
    6. Copie la clave de API de forma que la pueda utilizar para recuperar su señal de acceso de IBM Cloud IAM.

Utilice los pasos siguientes si desea crear una señal de IBM Cloud IAM o si desea obtener una nueva señal de renovación.

  1. Genere una nueva señal de acceso de IBM Cloud IAM utilizando la señal de renovación o la clave de API de IBM Cloud.
POST https://iam.cloud.ibm.com/identity/token
Parámetros de entrada para una nueva señal de IAM de IBM Cloud.
Parámetros de entrada Valores
Cabecera :Content-Type: application/x-www-form-urlencoded:Authorization: Basic Yng6Yng=

Yng6Yng= equivale a la autorización codificada en formato « URL » para el nombre de usuario bx y la contraseña bx.
Cuerpo cuando se utiliza la señal de renovación :grant_type: refresh_token:response_type: cloud_iam uaa:refresh_token: Su señal de renovación de IAM de IBM Cloud. :uaa_client_ID: cf:uaa_client_secret::bss_account: Su ID de cuenta de IBM Cloud.

Añade la clave « uaa_client_secret » sin especificar ningún valor.
Cuerpo al utilizar la clave de la API IBM Cloud :grant_type: urn:ibm:params:oauth:grant-type:apikey:response_type: cloud_iam uaa:apikey: Su clave de API de IBM Cloud. :uaa_client_ID: cf:uaa_client_secret: añada la clave uaa_client_secret sin especificarle ningún valor.

Salida de API de ejemplo

{
    "access_token": "<iam_token>",
    "refresh_token": "<iam_refresh_token>",
    "uaa_token": "<uaa_token>",
    "uaa_refresh_token": "<uaa_refresh_token>",
    "token_type": "Bearer",
    "expires_in": 3600,
    "expiration": 1493747503
}

Puedes encontrar tu nuevo token IAM de IBM Cloud en el campo « access_token », y el token de actualización en el campo « refresh_token » de los resultados de la API.

  1. Sigue trabajando con la documentación de la API de IBM Cloud Schematics utilizando el token del paso anterior.