Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
En este tema se describe cómo mover recursos de API (proxies de API, flujos compartidos y productos de API) entre espacios de Apigee de una organización de Apigee. Los usuarios pueden mover recursos entre los niveles de organización y espacio, o entre espacios. Para mover, gestionar o ver los recursos de la API en una organización o un espacio, el usuario debe tener los permisos adecuados para la organización o el espacio en cuestión.
Mover recursos de API de una organización a un espacio
Los recursos de API creados en una organización de Apigee se pueden mover del nivel de organización a un espacio o viceversa. Un recurso de API que se mueve a un espacio hereda la política de gestión de identidades y accesos de ese espacio. Para mover el recurso de la API de la organización a un espacio, el usuario debe tener los siguientes permisos:
apigee.RESOURCE_TYPE.move
en el ámbito de origen (la organización o el espacio en el que se encuentra el recurso).Los valores válidos de RESOURCE_TYPE son
apis
,sharedflows
oapiproducts
, en función del tipo de recurso de API que se haya movido.apigee.RESOURCE_TYPE.create
en el ámbito de destino (la organización o el espacio al que se va a mover el recurso).Los valores válidos de RESOURCE_TYPE son
apis
,sharedflows
oapiproducts
, en función del tipo de recurso de API que se haya movido.
Para mover un recurso de API a nivel de organización a un espacio, usa el siguiente comando:
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move?space=SPACE_NAME" \ -X POST -H "Authorization: Bearer $TOKEN"
Donde:
- ORG_NAME es el nombre de tu organización de Apigee.
- RESOURCE_TYPE es el tipo de recurso que estás mostrando. Los valores válidos son los siguientes:
apis
sharedflows
apiproducts
- RESOURCE_ID es el nombre del proxy de API, el flujo compartido o el producto de API que quieres mover.
- SPACE_NAME es el nombre del espacio al que vas a mover el recurso.
Por ejemplo, con el siguiente comando, un usuario con el rol Administrador de la organización de Apigee de la organización acme mueve un proxy de API llamado demo del nivel de la organización al espacio red:
curl "https://apigee.googleapis.com/v1/organizations/acme/apis/demo:move?space=red" \ -X POST -H "Authorization: Bearer $TOKEN"
La respuesta debería ser similar a la siguiente:
{ "metaData": { "createdAt": "1739489725993", "lastModifiedAt": "1741724822852", "subType": "Proxy" }, "name": "demo", "revision": [ "1", "2" ], "apiProxyType": "PROGRAMMABLE", "space": "red" }
Una vez que el proxy de API de demostración se haya movido al espacio rojo, los miembros de ese espacio podrán acceder al proxy, aunque no tengan permiso para acceder a los recursos a nivel de organización. Los miembros de otros espacios que no sean miembros del espacio rojo no podrán ver ni acceder al proxy de demo.
Si intentas acceder al proxy de demo sin los permisos correctos a nivel de organización o de espacio, se producirá el siguiente error:
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations\/acme\/apis\/demo\" (or it may not exist).", "status": "PERMISSION_DENIED" } }
Para mover un recurso de API de un espacio al nivel de la organización, usa el siguiente comando, que omite el parámetro de consulta space
:
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move" \ -X POST -H "Authorization: Bearer $TOKEN"
Donde:
- ORG_NAME es el nombre de tu organización de Apigee.
- RESOURCE_TYPE es el tipo de recurso que estás mostrando. Los valores válidos son los siguientes:
apis
sharedflows
apiproducts
- RESOURCE_ID es el nombre del proxy de API, el flujo compartido o el producto de API que quieres mover.
Mover recursos de API entre espacios
Los recursos de la API se pueden mover entre espacios de una organización de Apigee. Un recurso de API que se mueve a un espacio hereda la política de gestión de identidades y accesos de ese espacio. Para mover el recurso de API entre espacios de una organización de Apigee, el usuario debe tener los siguientes permisos:
apigee.RESOURCE_TYPE.move
del espacio en el que se encuentra el recurso de la API.Los valores válidos de RESOURCE_TYPE son
apis
,sharedflows
oapiproducts
, en función del tipo de recurso de API que se vaya a mover.apigee.RESOURCE_TYPE.create
del espacio al que se va a mover el recurso de la API.Los valores válidos de RESOURCE_TYPE son
apis
,sharedflows
oapiproducts
, en función del tipo de recurso de API que se vaya a mover.
Un usuario al que se le haya asignado el rol apigee.spaceContentEditor
en ambos espacios tendrá los permisos necesarios.
Para mover un recurso de API entre espacios de una organización de Apigee, usa el siguiente comando:
curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/RESOURCE_TYPE/RESOURCE_ID:move?space=SPACE_NAME" \ -X POST -H "Authorization: Bearer $TOKEN"
Donde:
- ORG_NAME es el nombre de tu organización de Apigee.
- RESOURCE_TYPE es el tipo de recurso que estás mostrando. Los valores válidos son los siguientes:
apis
sharedflows
apiproducts
- RESOURCE_ID es el nombre del proxy de API, el flujo compartido o el producto de API que quieres mover.
- SPACE_NAME es el nombre del nuevo espacio.
Por ejemplo, un usuario con el permiso apigee.proxies.move
para el espacio rojo y el permiso apigee.proxies.create
para el espacio azul puede usar el siguiente comando para mover el proxy de API demo del espacio rojo al espacio azul:
curl "https://apigee.googleapis.com/v1/organizations/acme/apis/demo:move?space=blue" \ -X POST -H "Authorization: Bearer $TOKEN"
La respuesta debería ser similar a la siguiente:
{ "basepaths": ["/demo"], "revision": 1, "apiProxyId": "demo", "space_id": "blue", "createTime": ..., "updateTime": ... }
En este ejemplo, el usuario no necesita tener permisos a nivel de organización, solo los permisos necesarios definidos por los enlaces setIamPolicy
de cada espacio.
Si intentas mover el proxy de API demo sin los permisos correctos para ambos espacios, se producirá el siguiente error:
{ "error": { "code": 403, "message": "Permission denied on resource \"organizations\/acme\/apis\/demo\" (or it may not exist).", "status": "PERMISSION_DENIED" } }