Volver arriba

Descripción general y acceso a la API

Resumen

El gestor de aplicaciones en la nube (CAM, por sus siglas en inglés) proporciona una API para configurar y desplegar de forma programática configuraciones de casillas complejas para proveedores de nube privada y pública o su propia infraestructura.

La API del Gestor de aplicaciones en la nube es especialmente útil para estos casos:

  • Para automatizar e integrar las funciones del Gestor de aplicaciones en la nube dentro un marco de compilación e implementación más grande, como el desarrollo y la integración continua con Jenkins.

  • Para integrar las funciones del Gestor de aplicaciones en la nube con aplicaciones e interfaces externas. Por ejemplo, puede proporcionar informes detallados sobre el uso de casillas, el espacio de trabajo y el proveedor.

  • Para automatizar las acciones de implementación en aplicaciones personalizadas, en las que su aplicación puede llamar a las funciones del Gestor de aplicaciones en la nube a pedido.

Puede insertar solicitudes de API dentro de su Python, Ruby, Java, C, C++, Go y otros códigos similares existentes mediante acciones comunes de la API, como GET, POST, DELETE y PUT.

Encabezados

Todos los encabezados de solicitud deben tener tres elementos: Content-Type (tipo de contenido), Authorization (autorización) y ElasticBox-Release (versión de ElasticBox).

Content-Type (tipo de contenido)

La API de REST admite solicitudes HTTP y respuestas en formato JSON. Todos los encabezados de solicitud deben identificar el tipo de contenido JSON.

Autorización

El token basado en la cuenta de un usuario autoriza el acceso a los datos en el Gestor de aplicaciones en la nube. Normalmente, es deseable que el usuario tenga un acceso amplio a los datos del Gestor de aplicaciones en la nube como un usuario con privilegios de administrador. Las solicitudes de API desde aplicaciones externas deben realizarse con este usuario. Las respuestas de la API devuelven datos según el nivel de acceso de este usuario en el Gestor de aplicaciones en la nube.
Los tokens garantizan una forma segura de conectarse al Gestor de aplicaciones en la nube sin comprometer las credenciales mientras realiza solicitudes de API en la web. Los tokens funcionan para cualquier tipo de autenticación, ya sea nombre de usuario, contraseña, Google, GitHub o protocolo ligero de acceso a directorios (LDAP, por sus siglas en inglés). Autorizamos el acceso con token usando autenticación básica.
Siga estos pasos para obtener un token desde su cuenta del Gestor de aplicaciones en la nube.

Pasos

  1. Inicie sesión en el sitio web del Gestor de aplicaciones en la nube.

  2. En el menú desplegable del usuario de la derecha, haga clic en Authentication Tokens (tokens de autenticación).

    api1

  3. Ingrese un nombre descriptivo para el token y haga clic en Create Token (crear token).

    api2

  4. Utilice el icono del portapapeles para copiar el token y, a continuación, pegarlo en los encabezados de solicitudes de API.

Más información sobre tokens

  • Puede crear y usar hasta 50 tokens.
  • Los tokens nunca caducan. Para invalidar una llamada API, simplemente elimine el token utilizado.
  • Al realizar llamadas API al recurso para proveedores, pueden aplicarse límites adicionales de token del proveedor. Para conocer esos límites, compruebe la documentación de su proveedor.

ElasticBox-Release (versión de ElasticBox)

Como parte de los encabezados de la solicitud, especifique la versión más reciente del Gestor de aplicaciones en la nube, que es 4.0.

Ejemplo

Los encabezados para una solicitud de muestra se ven así.

Headers:

Content-Type: application/json
Authorization:Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJvcGVyYXRpb25zIiwianRpIjoiNjk0YTgzMTgtZjZlMy00MDA5LTgxNTItYzdlNTE0NzFlMzU3IiwiZXhwIjoxNTExMzY3ODYxLCJvcmdhbml6YXRpb24iOiJlbGFzdGljYm94IiwiaWF0IjoxNTEwMDcxODYxLCJ0eXBlIjoidXNlciIsIm5hbWUiOiJPcGVyYXRpb25zIEVsYXN0aWNCb3gifQ.hob7M5swTflmbsw_iGe94FPnFgBvWbVKscvKN8Ij_4AgRj7PFrYVIwW8Xyd-PIuDKWLe3cGGE0Hz8g6KdDUMzbfp-dXk4JjqyenejCA-UTF9dv1z-pWt69IevRNR5XdYR5iVff4-Yy33RMaeWHaLuYTbOQHjVI2MDB7shlOCx4sERDtd31OyD6ZjNgRMLLDR0AFLTj2KRDleoH8iG0yXodD0AVk0iAcBCaakgZR5ROAZDb3SoSpsKYPS4dC-eWd_s0VgdYaWOd1jI0ev66-oPgSul9kAuIjozyNZ3s4vW0i-8Y5sH4lTWgMqTmf3lmjA6e2sj5lV9-boE3k3ALJwPg
ElasticBox-Release: 4.0

Comunicarse con soporte de Cloud Application Manager

Lamentamos que esté teniendo problemas en el Gestor de aplicaciones en la nube. Revise los consejos para solucionar problemas o comuníquese con soporte de Cloud Application Manager para proporcionar detalles y capturas de pantalla de ser posible.

Para problemas relacionados con las llamadas API, envíe el cuerpo de la solicitud junto con los detalles del problema.

En el caso de error de casilla, comparta la casilla en el espacio de trabajo en el que su organización y Cloud Application Manager pueden ingresar y adjunte los registros.

  • Linux: SSH y busque el registro en /var/log/elasticbox/elasticbox-agent.log
  • Windows: RDP dentro de la instancia para ubicar el registro en ProgramDataElasticBoxLogselasticbox-agent.log

Últimos cambios

Cambios principales en esta versión

Este artículo cubre los cambios principales de la API en los puntos de enlace para casillas, instancias, espacios de trabajo y perfiles.

En este artículo:

  • Novedades
  • Llamadas API de muestra
  • Esquema

Novedades

Punto de conexión Agregado, modificado o eliminado
Instancias Agregado
  • Nuevo punto de enlace que actualiza una instancia activa aplicando una versión de la casilla.
    • PUT /services/instances/{instance_id}/pull.
  • Parámetros: automatic_updates (actualizaciones automáticas), box (casilla), policy_box (casilla para política)
    • PUT /services/instances/{instance_id}
    • GET /services/instances
  • Parámetros: automatic_updates (actualizaciones automáticas), box (casilla), policy_box (casilla para política), instance_tags (etiquetas de instancia), ipv4_address (dirección ipv_4) (solo para implementar utilizando Gestor de aplicaciones en la nube en cualquier infraestructura)
    • POST /services/instances
    • POST /services/instances/dryrun

Eliminado
  • Parámetro: environment.
    • PUT /services/instances/{instance_id}
    • GET /services/instances
  • Parámetro: environment (entorno), profile (perfil), variables.
    • POST /services/instances
    • POST /services/instances/dryrun
Casillas Modificado
El punto de enlace de las casillas acepta ahora cuatro tipos de casillas. Cuando llame a una casilla, utilice uno de los siguientes esquemas:
  • Script box
  • Casilla para políticas de implementación
  • Casilla de CloudFormation
  • Casilla de contenedor de Docker

Eliminado
Parámetros:
  • Las etiquetas están en desuso. Utilice requisitos o reclamos en su lugar.
  • servicio
Lugares de trabajo Eliminado
Esta operación particular en el punto de enlace Workspaces:
  • GET /services/workspaces/{workspace_id}/profiles
Perfiles Eliminado
Todas las operaciones del punto de enlace de perfiles están en desuso y se sustituyen por casillas de política de implementación.
  • GET /services/profiles
  • POST /services/profiles
  • GET /services/profiles/{profile_id}
  • PUT /services/profiles/{profile_id}
  • DELETE /services/profiles/{profile_id}
Organizaciones Eliminado
  • Parámetro: admin_boxes
    • GET /services/organizations/{organization_name}
    • POST /services/organizations
    • PUT /services/organizations/{organization_name}
Proveedores Eliminado
  • Parámetro: admin_box
    • GET /services/providers
    • POST /services/providers
    • GET /services/providers/{provider_id}
    • PUT /services/providers/{provider_id}

Instancias

Punto de conexión

PUT /services/instances/{instance_id}/pull

Nuevo punto de enlace que actualiza una instancia activa aplicando una versión de la casilla.

Solicitud

Parámetro Tipo Descripción
box_id secuencia Required. ID de la versión de la casilla utilizada para actualizar la instancia. La versión debe estar relacionada con la casilla implementada actualmente en la instancia.

Respuesta

Ninguno.


Casillas

Script box

  • Casilla para políticas de implementación
  • Casilla de CloudFormation
  • Casilla de contenedor de Docker
  • Script Box

Este tipo de casilla se comporta igual que las casillas antiguas.

Punto de conexión

/services/boxes

Esquema

http://elasticbox.net/schemas/boxes/script

Nuevos parámetros

Parámetro Tipo Descripción
automatic_updates secuencia Required. Especifique una opción: off (desactivadas) major (mayores), minor (menores) o patch (parche). El valor predeterminado es off (apagado).
draft_from guid Opcional. ID de la versión de la casilla de la que esta casilla es un borrador.
requisitos array Required. Contiene secuencias como etiquetas. Especifica las tecnologías de tiempo de ejecución que la casilla necesita para implementarse.

Parámetros modificados

Parámetro Tipo Descripción
eventos object Opcional. Contiene estos eventos: pre_configure (preconfigución), configure (configuración), pre_install (preinstalación), install (instalación), pre_start (preinico), start (inicio) , stop (detención), post_stop (posdetención), dispose (eliminación), post_dispose (poseliminación). Cada uno hace referencia a un blob de la secuencia.
Nota: Los eventos post_install (posinstalación), post_configure (posconfiguración) y post_start (posinicio) están en desuso. Los nuevos eventos son pre_install (preinstalación), pre_configure (preconfiguración) y pre_start (preinicio).
versión object Opcional. Requiere estas propiedades:
  • box: De tipo GUID, identifica la ID de la casilla a la que pertenece la versión.
  • descripción. De tipo string (secuencia), describe el cambio en la versión de la casilla.
  • number. De tipo de object (objeto), especifica el número de versión como un número entero en este formato: mayor, menor y parche. Por ejemplo, para representar la versión 1.4.5, habría que especificar mayor: 1, menor: 4, parche: 5.

Casilla para políticas de implementación

Este tipo de casilla sustituye a los perfiles de implementación antiguos, pero contiene la misma información de un perfil de implementación, incluidas las propiedades de la casilla.

Nota: En contraste con las casillas de secuencia, las casillas de política de implementación no incluyen estos parámetros: events (eventos), requirements (requisitos).

Punto de conexión

/services/boxes

Esquema

http://elasticbox.net/schemas/boxes/policy

Nuevos parámetros

Parámetro Tipo Descripción
perfil object Required. Describe todas las propiedades para implementar una instancia de una casilla. Contiene los mismos datos que el punto de enlace de perfil de implementación anterior.
provider_id object Required. Especifica la ID del proveedor.
draft_from guid Opcional. ID de la versión de la casilla de la que esta casilla es un borrador.
reclamos array Required. Una matriz de secuencias; especifica los requisitos aplicados a una casilla.
automatic_updates secuencia Required. Especifique una opción: off (desactivadas) major (mayores), minor (menores) o patch (parche). El valor predeterminado es off (apagado).

CloudFormation Box

Nota: En contraste con las casillas de secuencia, las casillas de CloudFormation no incluyen el parámetro: events (eventos).

Punto de conexión

/services/boxes

Esquema

http://elasticbox.net/schemas/boxes/cloudformation

Nuevos parámetros

Parámetro Tipo Descripción
perfil object Describe todas las propiedades para implementar una instancia de una casilla. Contiene los mismos datos que el punto de enlace de perfil de implementación anterior. Solo acepta información de AWS. No es un requisito para las casillas de la plantilla de CloudFormation.
automatic_updates secuencia Required. Especifique una opción: off (desactivadas) major (mayores), minor (menores) o patch (parche). El valor predeterminado es off (apagado).
provider_id object Required. Especifica la ID de un proveedor de AWS.
tipo object Required. Especifica un servicio. El valor aceptado es CloudFormation Service (servicio de CloudFormation).
draft_from guid Opcional. ID de la versión de la casilla de la que esta casilla es un borrador.
requisitos array Required. Contiene secuencias como etiquetas. Especifica las tecnologías de tiempo de ejecución que una casilla necesita para implementarse.

Casilla de contenedor de Docker

Punto de conexión

/services/boxes

Esquema

http://elasticbox.net/schemas/boxes/docker

Nuevos parámetros

Parámetro Tipo Descripción
dockerfile object Opcional. Se refiere al esquema del blob que contiene la secuencia de Dockerfile. Esto sustituye a la variable de casilla de Dockerfile anteriormente conocida como DOCKER_FILE.
automatic_updates secuencia Required. Especifique una opción: off (desactivadas) major (mayores), minor (menores) o patch (parche). El valor predeterminado es off (apagado).
draft_from guid Opcional. ID de la versión de la casilla de la que esta casilla es un borrador.
requisitos array Required. Contiene secuencias como etiquetas. Especifica las tecnologías de tiempo de ejecución que una casilla necesita para implementarse.

Llamadas API de muestra

  • Casillas
  • Instancias
  • Organizaciones
  • Proveedores
  • Solicitud de instancia de implementación
  • Instancia
  • Versión
  • Casillas

GET /services/boxes

Esta solicitud devuelve casillas de todos los tipos: secuencia, política, cloudformation y docker.

Solicitud

Ninguno.

Respuesta

Devuelve una matriz de casillas (cloudformation, docker, secuencia, política).

{
    "description": "Cookbook with a simple recipe",
    "automatic_updates": "off",
    "requirements": [
        "linux"
    ],
    "name": "Chef Cookbook",
    ...
     "schema": "http://elasticbox.net/schemas/boxes/script"
}
},
{
    "automatic_updates": "off",
    "requirements": [],
    "name": "MyCloudFormation",
     ...
    "schema": "http://elasticbox.net/schemas/boxes/cloudformation"
},
{
    "automatic_updates": "off",
    "requirements": [
        "docker"
    ],
    "name": "Docker RabbitMQ",
    "dockerfile": {
        "url": "/services/blobs/download/54feda7093abba06c7591422/Dockerfile",
        "upload_date": "2015-03-10 11:50:07.960399",
        "length": 30,
        "content_type": "text/x-shellscript"
    },
    "schema": "http://elasticbox.net/schemas/boxes/docker"
}

PUT /services/boxes/{box_id}/diff

Solicitud

Esquema de la casilla.

{
  "profile": {
      "instances": 1,
      "keypair': 'test_keypair",
      "location': 'SimulatedLocation",
      "image': 'test",
      "flavor': 'test.small",
      "schema': 'http://elasticbox.net/schemas/test/compute/profile"
  },
  "provider_id": "720d78f5-1139-4526-872f-bcddcd20b9b7",
  "automatic_updates": "off",
  "deleted": None,
  "variables": [

  ],
  "name": "MyPolicy",
  "version": {
      "box": "596ea6d6-faeb-46f7-bcd8-bd2b7fc2db15",
      "number": {
          "major": 0,
          "minor": 1,
          "patch": 1
      },
      "workspace": "operations",
      "description": "SmallVMtype"
  },
  "claims": [
      "linux"
  ],
  "draft_from": "54cbac10-44a0-4c4f-8580-f0f66e34d9dd",
  "schema": "http://elasticbox.net/schemas/boxes/policy"
}

Respuesta

El comparador de JSON ha cambiado, ahora incluye la propiedad “box_profile_properties” (propiedades del perfil de la casilla) si se utiliza una casilla para política de implementación.

{
  "box_variables": {
      "removed": [],
      "files_diff": [],
      "added": [],
      "changed": []
  },
  "box_profile_properties": {
      "title": "Modified Box Profile properties",
      "removed": [],
      "added": [],
      "changed": [
          {
              "new": "test.small",
              "name": "flavor",
              "previous": "test.micro"
          }
      ]
  },
  "box_details": {
      "removed": [],
      "added": [],
      "changed": []
  },
  "box_events": [],
  "changed": true
}

Instancias

GET /services/instances

Parámetro eliminado

medio ambiente

Nuevos parámetros

Parámetro Tipo Descripción
automatic_updates secuencia Required. Especifique una opción: off (desactivadas) major (mayores), minor (menores) o patch (parche). El valor predeterminado es off (apagado).
box secuencia Required. ID de la casilla (no la versión) implementada en la instancia.
policy_box secuencia Opcional. Es una casilla para política de implementación o de CloudFormation.

Solicitud

Ninguno.

Respuesta

Esquema de la matriz de la instancia.

[
    {
        "automatic_updates": "off",
        "box" : "f61a336d-4807-4220-891f-e56ef8c54326",
        "name": "TestBox",
        "policy_box" : {
            "profile" : {
               "image" : "test",
               "instances" : 1,
               "keypair" : "test_keypair",
               "location" : "Simulated Location",
               "flavor" : "test.micro",
               "schema" : "http://elasticbox.net/schemas/test/compute/profile"
            },
            "provider_id" : "26fd7fac-ff2a-4e24-a01d-708bff07fb9a",
            "automatic_updates" : "off",
            ...
            "claims" : [],
            "schema" : "http://elasticbox.net/schemas/boxes/policy"
        },

        "boxes": [
           ...
        ],
      ...
        "operation": "deploy",
    },
...
]

POST /services/instances

Parámetros eliminados

environment (entorno), profile (perfil), variables

Nuevos parámetros

Parámetro Tipo Descripción
automatic_updates secuencia Required. Especifique una opción: off (desactivadas) major (mayores), minor (menores) o patch (parche). El valor predeterminado es off (apagado).
box object Required. Contiene dos parámetros:
  • id: de tipo string (secuencia); es la ID de la casilla de secuencia (no la versión) que se implementa en la instancia.
  • variables: de tipo array (matriz); son las variables de la casilla de secuencia.
policy_box object Required. Contiene dos parámetros:
  • id: de tipo string (secuencia); es la ID de la casilla para política de implementación (no la versión) que se implementa en la instancia.
  • variables: de tipo array (matriz); son las variables de la casilla para política de implementación.
instance_tags Array Opcional. Etiquetas personalizadas para describir una instancia.
ipv4_address secuencia Opcional. Dirección IP de la máquina donde quiere ejecutar el agente del Gestor de aplicaciones en la nube para implementar una casilla.

Solicitud

Contiene el esquema para implementar una instancia.

{
  "box": {
      "variables": [

      ],
      "id": "32375764-f73a-41ca-8268-12ac1785586e"
  },
  "automatic_updates": "off",
  "name": "TestBox",
  "policy_box": {
      "variables": [

      ],
      "id": "e109e536-e437-4707-8048-cbf8b09c9307"
  },
  "environment": "TestBox",
  "instance_tags": [

  ],
  "schema": "http://elasticbox.net/schemas/deploy-instance-request"
}

Respuesta

Devuelve el esquema de la instancia implementada.

{
  "box": "6c714599-f045-4476-9068-5c34effa618f",
  "policy_box": {
      "profile": {
          "image": "test",
          "instances": 1,
          "keypair": "test_keypair',
          "location": "SimulatedLocation",
          "flavor": 'test.micro",
          "schema": 'http://elasticbox.net/schemas/test/compute/profile'
      },
      'provider_id': 'ffe0da74-c96a-413d-b534-8f112f051043',
      'automatic_updates': 'off',
      'name': 'admin_box-2ec08eb02dDeployPolicy',
      ...
      'claims': [
          'linux'
      ],
      'schema': 'http://elasticbox.net/schemas/boxes/policy'
  },
  'automatic_updates': 'off',
  'name': 'TestBox',
  'boxes': [
      {
   ...
      }
  ],
  'operation': 'deploy',
  'schema': 'http://elasticbox.net/schemas/instance'
}

Organizaciones

GET /services/organizations/{organization_name}

Parámetro eliminado

admin_boxes

Solicitud

Ninguno.

Respuesta

Devuelve el esquema de la organización.

{
  "schema": "http://elasticbox.net/schemas/organization",
  "name": "elasticbox",
  "features": {
           "cost_center": false,
           "custom_pricing": false,
           "onboard_checklist": false,
           “provider_sharing": true,
           "reporting": false
  },
  ...
       "webhooks": []
}

Proveedores

GET /services/providers

Parámetro eliminado

admin_box

Solicitud

Ninguno.

Respuesta

Devuelve una matriz del esquema del proveedor.

{
      "state": "ready",
      "services": [
          {
              "name": "Linux Compute"
          }
      ],
      "type": "Test Provider",
      ...
      "name": "report-c04cbc85dc"
}

Esquema

  • Organización
  • Proveedor
  • Script Box
  • Casilla para política
  • Casilla de contenedor
  • CloudFormation Box

Organización

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "http://elasticbox.net/schemas/organization",
    "additionalProperties": false,
    "allOf": [
        {
            "$ref": "http://elasticbox.net/schemas/object-timestamp"
        },
        {
            "type": "object",
            "required": [
                "schema",
                "name",
                "domains",
                "administrators",
                "authentication",
                "features",
                "cost_centers"
            ],
            "properties": {
                "authentication": {
                    "type": "object",
                    "required": [
                        "github",
                        "google",
                        "password",
                        "ldap"
                    ],
                    "default": {
                        "github": true,
                        "google": true,
                        "ldap": false,
                        "ldap_config": {},
                        "password": true
                    },
                    "properties": {
                        "github": {
                            "type": "boolean",
                            "default": true
                        },
                        "google": {
                            "type": "boolean",
                            "default": true
                        },
                        "ldap": {
                            "type": "boolean",
                            "default": false
                        },
                        "ldap_config": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                                "sources": {
                                    "type": "array",
                                    "default": [],
                                    "items": {
                                        "type": "object",
                                        "required": [
                                            "host"
                                        ],
                                        "properties": {
                                            "base_dn_filter": {
                                                "type": "string",
                                                "maxLength": 512
                                            },
                                            "email_field": {
                                                "type": "string",
                                                "maxLength": 256
                                            },
                                            "group_dn_filter": {
                                                "type": "string",
                                                "maxLength": 512
                                            },
                                            "groups_dn": {
                                                "type": "string",
                                                "maxLength": 512
                                            },
                                            "host": {
                                                "type": "string",
                                                "maxLength": 256
                                            }
                                        }
                                    }
                                }
                            }
                        },
                        "password": {
                            "type": "boolean",
                            "default": true
                        }
                    }
                },
                "features": {
                    "type": "object",
                    "required": [
                        "provider_sharing",
                        "cost_center",
                        "onboard_checklist",
                        "reporting"
                    ],
                    "default": {
                        "cost_center": false,
                        "custom_pricing": false,
                        "onboard_checklist": false,
                        "provider_sharing": true,
                        "reporting": false
                    },
                    "properties": {
                        "cost_center": {
                            "type": "boolean",
                            "default": false
                        },
                        "custom_pricing": {
                            "type": "boolean",
                            "default": false
                        },
                        "onboard_checklist": {
                            "type": "boolean",
                            "default": false
                        },
                        "provider_sharing": {
                            "type": "boolean",
                            "default": true
                        },
                        "reporting": {
                            "type": "boolean",
                            "default": false
                        }
                    }
                },
                "icon": {
                    "type": "string",
                    "maxLength": 256
                },
                "name": {
                    "type": "string",
                    "maxLength": 256
                },
                "schema": {
                    "type": "string",
                    "enum": [
                        "http://elasticbox.net/schemas/organization"
                    ]
                },
                "theme": {
                    "type": "string",
                    "maxLength": 256
                },
                "administrators": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64
                    }
                },
                "cost_centers": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "type": "object",
                        "required": [
                            "name",
                            "workspaces",
                            "quotas"
                        ],
                        "additionalProperties": false,
                        "properties": {
                            "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 125
                            },
                            "quotas": {
                                "type": "array",
                                "default": [],
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "cost": {
                                            "type": "integer",
                                            "description": "Quota in in decimal of the currency units per month."
                                        },
                                        "provider": {
                                            "$ref": "http://elasticbox.net/schemas/guid"
                                        }
                                    }
                                }
                            },
                            "workspaces": {
                                "type": "array",
                                "default": [],
                                "items": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 64
                                }
                            }
                        }
                    }
                },
                "domains": {
                    "type": "array",
                    "default": [],
                    "properties": {
                        "items": {
                            "type": "string",
                            "maxLength": 256
                        }
                    }
                },
                "providers": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "type": "object",
                        "required": [
                            "description",
                            "enabled",
                            "pricing",
                            "type"
                        ],
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": [
                                    "Amazon Web Services",
                                    "Amazon Web Services GovCloud",
                                    "Cloudstack",
                                    "Google Compute",
                                    "Microsoft Azure",
                                    "Rackspace",
                                    "SoftLayer",
                                    "Openstack",
                                    "Test Provider",
                                    "VMware vCloud Director",
                                    "VMware vSphere"
                                ]
                            },
                            "description": {
                                "type": "string",
                                "maxLenght": 256
                            },
                            "enabled": {
                                "type": "boolean",
                                "default": false
                            },
                            "pricing": {
                                "type": "array",
                                "default": [],
                                "items": {
                                    "type": "object",
                                    "oneOf": [
                                        {
                                            "$ref": "http://elasticbox.net/schemas/gce/compute/pricing"
                                        },
                                        {
                                            "$ref": "http://elasticbox.net/schemas/aws/compute/pricing"
                                        },
                                        {
                                            "$ref": "http://elasticbox.net/schemas/azure/compute/linux/pricing"
                                        },
                                        {
                                            "$ref": "http://elasticbox.net/schemas/azure/compute/windows/pricing"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "tags": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "type": "object",
                        "required": [
                            "name",
                            "type"
                        ],
                        "additionalProperties": false,
                        "properties": {
                            "type": {
                                "enum": [
                                    "Location",
                                    "Custom",
                                    "Workspace",
                                    "Workspace name",
                                    "Workspace ID",
                                    "Provider",
                                    "Provider name",
                                    "Environment",
                                    "Box",
                                    "Box name",
                                    "User ID",
                                    "Email",
                                    "User email",
                                    "Service Instance ID",
                                    "Service ID",
                                    "Instance ID"
                                ]
                            },
                            "name": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 125
                            },
                            "value": {
                                "type": "string",
                                "maxLength": 254
                            }
                        }
                    }
                },
                "webhooks": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 512,
                        "not": {
                            "type": "null"
                        }
                    }
                }
            }
        }
    ]
}

Proveedor

Este esquema utiliza un ejemplo de CloudStack.

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "http://elasticbox.net/schemas/gce/provider",
    "type": "object",
    "additionalProperties": false,
    "allOf": [
        {
            "$ref": "http://elasticbox.net/schemas/object-base"
        },
        {
            "$ref": "http://elasticbox.net/schemas/shareable"
        },
        {
            "type": "object",
            "required": [
                "schema",
                "icon",
                "type",
                "email",
                "credentials",
                "project_id",
                "state",
                "services",
                "deleted",
                "organization"
            ],
            "properties": {
                "type": {
                    "type": "string",
                    "default": "Google Compute",
                    "enum": [
                        "Google Compute"
                    ]
                },
                "credentials": {
                    "type": "object",
                    "oneOf": [
                        {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                                "key": {
                                    "type": "string",
                                    "maxLength": 4096
                                }
                            }
                        },
                        {
                            "type": "object",
                            "required": [
                                "refresh_token"
                            ],
                            "additionalProperties": false,
                            "properties": {
                                "access_token": {
                                    "type": "string",
                                    "maxLength": 4096
                                },
                                "refresh_token": {
                                    "type": "string",
                                    "maxLength": 4096
                                }
                            }
                        }
                    ]
                },
                "deleted": {
                    "type": "string",
                    "maxLength": 2048,
                    "default": null
                },
                "email": {
                    "type": "string",
                    "maxLength": 2048
                },
                "icon": {
                    "type": "string",
                    "maxLength": 256,
                    "default": "images/platform/google.png"
                },
                "organization": {
                    "type": "string",
                    "maxLength": 256,
                    "description": "The name of the organization that owns this provider."
                },
                "project_id": {
                    "type": "string",
                    "maxLength": 2048
                },
                "schema": {
                    "type": "string",
                    "enum": [
                        "http://elasticbox.net/schemas/gce/provider"
                    ]
                },
                "state": {
                    "type": "string",
                    "default": "initializing",
                    "enum": [
                        "initializing",
                        "processing",
                        "ready",
                        "deleting",
                        "unavailable"
                    ]
                },
                "services": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "type": "object",
                        "oneOf": [
                            {
                                "$ref": "http://elasticbox.net/schemas/gce/compute/linux"
                            }
                        ]
                    }
                }
            }
        }
    ]
}

Script Box

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "http://elasticbox.net/schemas/boxes/script",
    "type": "object",
    "additionalProperties": false,
    "description": "Schema for a Script box",
    "allOf": [
        {
            "$ref": "http://elasticbox.net/schemas/object-base"
        },
        {
            "$ref": "http://elasticbox.net/schemas/shareable"
        },
        {
            "$ref": "http://elasticbox.net/schemas/versionable"
        },
        {
            "type": "object",
            "required": [
                "automatic_updates",
                "deleted",
                "organization",
                "requirements",
                "schema",
                "visibility"
            ],
            "properties": {
                "automatic_updates": {
                    "type": "string",
                    "default": "off",
                    "enum": [
                        "major",
                        "minor",
                        "patch",
                        "off"
                    ]
                },
                "deleted": {
                    "type": "string",
                    "maxLength": 2048,
                    "default": null
                },
                "events": {
                    "type": "object",
                    "default": {},
                    "properties": {
                        "configure": {
                            "$ref": "http://elasticbox.net/schemas/file-reference"
                        },
                        "dispose": {
                            "$ref": "http://elasticbox.net/schemas/file-reference"
                        },
                        "install": {
                            "$ref": "http://elasticbox.net/schemas/file-reference"
                        },
                        "post_dispose": {
                            "$ref": "http://elasticbox.net/schemas/file-reference"
                        },
                        "post_stop": {
                            "$ref": "http://elasticbox.net/schemas/file-reference"
                        },
                        "pre_configure": {
                            "$ref": "http://elasticbox.net/schemas/file-reference"
                        },
                        "pre_install": {
                            "$ref": "http://elasticbox.net/schemas/file-reference"
                        },
                        "pre_start": {
                            "$ref": "http://elasticbox.net/schemas/file-reference"
                        },
                        "start": {
                            "$ref": "http://elasticbox.net/schemas/file-reference"
                        },
                        "stop": {
                            "$ref": "http://elasticbox.net/schemas/file-reference"
                        }
                    }
                },
                "icon": {
                    "type": "string",
                    "maxLength": 256
                },
                "organization": {
                    "type": "string",
                    "maxLength": 256,
                    "description": "The name of the organization that owns this box."
                },
                "requirements": {
                    "type": "array",
                    "default": [],
                    "items": {"$ref": "http://elasticbox.net/schemas/name"}
                },
                "schema": {
                    "type": "string",
                    "enum": [
                        "http://elasticbox.net/schemas/boxes/script"
                    ]
                },
                "visibility": {
                    "type": "string",
                    "default": "workspace",
                    "enum": [
                        "public",
                        "workspace",
                        "organization"
                    ]
                },
                "tags": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "$ref": "http://elasticbox.net/schemas/name"
                    }
                },
                "variables": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "$ref": "http://elasticbox.net/schemas/variable"
                    }
                }
            }
        }
    ]
}

Casilla para política

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "http://elasticbox.net/schemas/boxes/policy",
    "type": "object",
    "additionalProperties": false,
    "description": "Schema for a Policy box",
    "allOf": [
        {
            "$ref": "http://elasticbox.net/schemas/object-base"
        },
        {
            "$ref": "http://elasticbox.net/schemas/shareable"
        },
        {
            "$ref": "http://elasticbox.net/schemas/versionable"
        },
        {
            "type": "object",
            "required": [
                "automatic_updates",
                "claims",
                "deleted",
                "organization",
                "profile",
                "provider_id",
                "schema",
                "visibility"
            ],
            "properties": {
                "automatic_updates": {
                    "type": "string",
                    "default": "off",
                    "enum": [
                        "major",
                        "minor",
                        "patch",
                        "off"
                    ]
                },
                "deleted": {
                    "type": "string",
                    "maxLength": 2048,
                    "default": null
                },
                "icon": {
                    "type": "string",
                    "maxLength": 256
                },
                "organization": {
                    "type": "string",
                    "maxLength": 256,
                    "description": "The name of the organization that owns this box."
                },
                "profile": {
                    "type": "object",
                    "anyOf": [
                        {"$ref": "http://elasticbox.net/schemas/aws/ec2/profile"},
                        {"$ref": "http://elasticbox.net/schemas/azure/compute/linux/profile"},
                        {"$ref": "http://elasticbox.net/schemas/azure/compute/windows/profile"},
                        {"$ref": "http://elasticbox.net/schemas/cloudstack/compute/profile"},
                        {"$ref": "http://elasticbox.net/schemas/openstack/compute/profile"},
                        {"$ref": "http://elasticbox.net/schemas/vcloud/compute/profile"},
                        {"$ref": "http://elasticbox.net/schemas/vsphere/compute/profile"},
                        {"$ref": "http://elasticbox.net/schemas/gce/compute/profile"},
                        {"$ref": "http://elasticbox.net/schemas/test/compute/profile"},
                        {"$ref": "http://elasticbox.net/schemas/softlayer/compute/profile"},
                        {"$ref": "http://elasticbox.net/schemas/byoi/compute/profile"}
                    ],
                    "description": "The policy to define a new instance or the reference to an existing instance"
                },
                "provider_id": {
                    "$ref": "http://elasticbox.net/schemas/guid",
                    "description": "The provider ID"
                },
                "claims": {
                    "type": "array",
                    "default": [],
                    "items": {"$ref": "http://elasticbox.net/schemas/name"}
                },
                "schema": {
                    "type": "string",
                    "enum": [
                        "http://elasticbox.net/schemas/boxes/policy"
                    ]
                },
                "tags": {
                    "type": "array",
                    "default": [],
                    "items": {"$ref": "http://elasticbox.net/schemas/name"}
                },
                "variables": {
                    "type": "array",
                    "default": [],
                    "items": {"$ref": "http://elasticbox.net/schemas/variable"}
                },
                "visibility": {
                    "type": "string",
                    "default": "workspace",
                    "enum": [
                        "public",
                        "workspace",
                        "organization"
                    ]
                }
            }
        }
    ]
}

Casilla de contenedor

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "http://elasticbox.net/schemas/boxes/docker",
    "type": "object",
    "additionalProperties": false,
    "description": "Schema for a docker box",
    "allOf": [
        {
            "$ref": "http://elasticbox.net/schemas/object-base"
        },
        {
            "$ref": "http://elasticbox.net/schemas/shareable"
        },
        {
            "$ref": "http://elasticbox.net/schemas/versionable"
        },
        {
            "type": "object",
            "required": [
                "automatic_updates",
                "deleted",
                "organization",
                "requirements",
                "schema",
                "visibility"
            ],
            "properties": {
                "automatic_updates": {
                    "type": "string",
                    "default": "off",
                    "enum": [
                        "major",
                        "minor",
                        "patch",
                        "off"
                    ]
                },
                "deleted": {
                    "type": "string",
                    "maxLength": 2048,
                    "default": null
                },
                "events": {
                    "type": "object",
                    "default": {},
                    "properties": {
                        "configure": {"$ref": "http://elasticbox.net/schemas/file-reference"},
                        "dispose": {"$ref": "http://elasticbox.net/schemas/file-reference"},
                        "install": {"$ref": "http://elasticbox.net/schemas/file-reference"},
                        "post_dispose": {"$ref": "http://elasticbox.net/schemas/file-reference"},
                        "post_stop": {"$ref": "http://elasticbox.net/schemas/file-reference"},
                        "pre_configure": {"$ref": "http://elasticbox.net/schemas/file-reference"},
                        "pre_install": {"$ref": "http://elasticbox.net/schemas/file-reference"},
                        "pre_start": {"$ref": "http://elasticbox.net/schemas/file-reference"},
                        "start": {"$ref": "http://elasticbox.net/schemas/file-reference"},
                        "stop": {"$ref": "http://elasticbox.net/schemas/file-reference"}
                    }
                },
                "icon": {
                    "type": "string",
                    "maxLength": 256
                },
                "organization": {
                    "type": "string",
                    "maxLength": 256,
                    "description": "The name of the organization that owns this box."
                },
                "requirements": {
                    "type": "array",
                    "default": [],
                    "items": {"$ref": "http://elasticbox.net/schemas/name"}
                },
                "schema": {
                    "type": "string",
                    "enum": ["http://elasticbox.net/schemas/boxes/docker"]
                },
                "variables": {
                    "type": "array",
                    "default": [],
                    "items": {"$ref": "http://elasticbox.net/schemas/variable"}
                },
                "visibility": {
                    "type": "string",
                    "default": "workspace",
                    "enum": [
                        "public",
                        "workspace",
                        "organization"
                    ]
                },
                "dockerfile": {
                    "$ref": "http://elasticbox.net/schemas/file-reference"
                }
            }
        }
    ]
}

CloudFormation Box

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "http://elasticbox.net/schemas/boxes/cloudformation",
    "type": "object",
    "additionalProperties": false,
    "description": "Schema for a Cloud Formation box",
    "allOf": [
        {
            "$ref": "http://elasticbox.net/schemas/object-base"
        },
        {
            "$ref": "http://elasticbox.net/schemas/shareable"
        },
        {
            "$ref": "http://elasticbox.net/schemas/versionable"
        },
        {
            "type": "object",
            "required": [
                "automatic_updates",
                "deleted",
                "organization",
                "requirements",
                "schema",
                "visibility",
                "type"
            ],
            "properties": {
                "automatic_updates": {
                    "type": "string",
                    "default": "off",
                    "enum": [
                        "major",
                        "minor",
                        "patch",
                        "off"
                    ]
                },
                "deleted": {
                    "type": "string",
                    "maxLength": 2048,
                    "default": null
                },
                "icon": {
                    "type": "string",
                    "maxLength": 256
                },
                "organization": {
                    "type": "string",
                    "maxLength": 256,
                    "description": "The name of the organization that owns this box."
                },
                "profile": {
                    "type": "object",
                    "anyOf": [
                        {
                            "$ref": "http://elasticbox.net/schemas/aws/cloudformation/profile"
                        }
                    ]
                },
                "provider_id": {
                    "$ref": "http://elasticbox.net/schemas/guid",
                    "description": "The provider ID"
                },
                "requirements": {
                    "type": "array",
                    "default": [],
                    "items": {"$ref": "http://elasticbox.net/schemas/name"}
                },
                "schema": {
                    "type": "string",
                    "enum": ["http://elasticbox.net/schemas/boxes/cloudformation"]
                },
                "tags": {
                    "type": "array",
                    "default": [],
                    "items": {"$ref": "http://elasticbox.net/schemas/name"}
                },
                "variables": {
                    "type": "array",
                    "default": [],
                    "items": {"$ref": "http://elasticbox.net/schemas/variable"}
                },
                "visibility": {
                    "type": "string",
                    "default": "workspace",
                    "enum": [
                        "public",
                        "workspace",
                        "organization"
                    ]
                },
                "type": {
                    "type": "string",
                    "default": "CloudFormation Service",
                    "enum": [
                         "CloudFormation Service"
                    ]
                },
                "template": {
                    "$ref": "http://elasticbox.net/schemas/file-reference"
                }
            }
        }
    ]
}

Solicitud de instancia de implementación

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "http://elasticbox.net/schemas/deploy-instance-request",
    "type": "object",
    "required": [
        "automatic_updates",
        "box",
        "name",
        "schema"
    ],
    "additionalProperties": false,
    "description": "Schema for a deployment instance request",
    "properties": {
        "automatic_updates": {
            "type": "string",
            "default": "off",
            "enum": [
                "major",
                "minor",
                "patch",
                "off"
            ]
        },
        "box": {
            "type": "object",
            "required": [
                "id",
                "variables"
            ],
            "additionalProperties": false,
            "properties": {
                "id": {
                    "$ref": "http://elasticbox.net/schemas/guid"
                },
                "variables": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "$ref": "http://elasticbox.net/schemas/variable"
                    }
                }
            }
        },
        "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 30
        },
        "instance_tags": {
            "type": "array",
            "default": [],
            "items": {"$ref": "http://elasticbox.net/schemas/name"}
        },
        "lease": {
            "type": "object",
            "required": [
                "expire",
                "operation"
            ],
            "additionalProperties": false,
            "properties": {
                "expire": {
                    "type": "string",
                    "maxLength": 2048
                },
                "operation": {
                    "type": "string",
                    "enum": [
                        "shutdown",
                        "terminate"
                    ]
                }
            }
        },
        "owner": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
        },
        "ipv4_address": {
            "type": "string",
            "maxLength": 15
        },
        "policy_box": {
            "type": "object",
            "required": [
                "id",
                "variables"
            ],
            "additionalProperties": false,
            "properties": {
                "id": {
                    "$ref": "http://elasticbox.net/schemas/guid"
                },
                "variables": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "$ref": "http://elasticbox.net/schemas/variable"
                    }
                }
            }
        },
        "schema": {
            "type": "string",
            "enum": [
                "http://elasticbox.net/schemas/deploy-instance-request"
            ]
        }
    }
}

Instancia

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "http://elasticbox.net/schemas/instance",
    "type": "object",
    "additionalProperties": false,
    "allOf": [
        {
            "$ref": "http://elasticbox.net/schemas/object-timestamp"
        },
        {
            "$ref": "http://elasticbox.net/schemas/shareable"
        },
        {
            "required": [
                "automatic_updates",
                "box",
                "boxes",
                "deleted",
                "id",
                "name",
                "operation",
                "schema",
                "service",
                "state",
                "tags"
            ],
            "properties": {
                "id": {
                    "type": "string",
                    "maxLength": 36
                },
                "automatic_updates": {
                    "type": "string",
                    "default": "off",
                    "enum": [
                      "major",
                      "minor",
                      "patch",
                      "off"
                    ]
                },
                "box": {
                    "$ref": "http://elasticbox.net/schemas/guid"
                },
                "deleted": {
                    "type": "string",
                    "maxLength": 2048,
                    "default": null
                },
                "policy_box": {
                    "type": "object",
                    "anyOf": [
                        {
                            "$ref": "http://elasticbox.net/schemas/boxes/policy"
                        },
                        {
                            "$ref": "http://elasticbox.net/schemas/boxes/cloudformation"
                        }
                    ]
                },
                "icon": {
                    "type": "string",
                    "maxLength": 256
                },
                "lease": {
                    "type": "object",
                    "required": [
                        "expire",
                        "operation",
                        "released"
                    ],
                    "additionalProperties": false,
                    "properties": {
                        "expire": {
                            "type": "string",
                            "maxLength": 2048
                        },
                        "operation": {
                            "type": "string",
                            "enum": [
                                "shutdown",
                                "terminate"
                            ]
                        },
                        "released": {
                            "type": "boolean",
                            "default": false
                        }
                    }
                },
                "name": {
                    "$ref": "http://elasticbox.net/schemas/name"
                },
                "operation": {
                    "type": "string",
                    "enum": [
                        "deploy",
                        "shutdown",
                        "shutdown_service",
                        "poweron",
                        "reinstall",
                        "reconfigure",
                        "terminate",
                        "terminate_service",
                        "snapshot"
                    ]
                },
                "schema": {
                    "type": "string",
                    "enum": [
                        "http://elasticbox.net/schemas/instance"
                    ]
                },
                "service": {
                    "type": "object",
                    "required": [
                        "id",
                        "machines"
                    ],
                    "additionalProperties": false,
                    "properties": {
                        "id": {
                            "type": "string",
                            "maxLength": 30
                        },
                        "type": {
                            "$ref": "http://elasticbox.net/schemas/service-type"
                        },
                        "machines": {
                            "type": "array",
                            "default": [],
                            "items": {
                                "$ref": "#/definitions/instance-machine"
                            }
                        }
                    }
                },
                "state": {
                    "type": "string",
                    "enum": [
                        "processing",
                        "done",
                        "unavailable"
                    ]
                },
                "boxes": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "$ref": "http://elasticbox.net/schemas/box"
                    }
                },
                "tags": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "$ref": "http://elasticbox.net/schemas/name"
                    }
                },
                "variables": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "$ref": "http://elasticbox.net/schemas/variable"
                    }
                }
            }
        }
    ],
    "definitions": {
        "instance-machine": {
            "type": "object",
            "required": [
                "name",
                "state",
                "workflow"
            ],
            "additionalProperties": false,
            "properties": {
                "name": {
                    "$ref": "http://elasticbox.net/schemas/name"
                },
                "state": {
                    "type": "string",
                    "enum": [
                        "processing",
                        "done",
                        "unavailable"
                    ]
                },
                "workflow": {
                    "type": "array",
                    "default": [],
                    "items": {
                        "type": "object",
                        "required": [
                            "event"
                        ],
                        "additionalProperties": false,
                        "properties": {
                            "box": {
                                "type": "string",
                                "pattern": "^[a-zA-Z0-9_\\.]*$"
                            },
                            "event": {
                                "type": "string",
                                "maxLength": 256
                            },
                            "script": {
                                "type": "string",
                                "maxLength": 512
                            }
                        }
                    }
                }
            }
        }
    }
}

Versión

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "http://elasticbox.net/schemas//versionable",
    "type": "object",
    "properties": {
        "draft_from": {
            "$ref": "http://elasticbox.net/schemas/guid"
        },
        "version": {
            "type": "object",
            "required": [
                "box",
                "description",
                "number"
            ],
            "properties": {
                "box": {
                    "$ref": "http://elasticbox.net/schemas/guid"
                },
                "description": {
                    "type": "string",
                    "maxLength": 2048
                },
                "number": {
                    "type": "object",
                    "required": [
                        "major",
                        "minor",
                        "patch"
                    ],
                    "properties": {
                        "major": {
                            "type": "integer",
                            "minimum": 0
                        },
                        "minor": {
                            "type": "integer",
                            "minimum": 0
                        },
                        "patch": {
                            "type": "integer",
                            "minimum": 0
                        }
                    }
                },
                "workspace": {
                    "type": "string",
                    "maxLength": 64
                }
            }
        }
    }
}

Comunicarse con soporte de Cloud Application Manager

Lamentamos que esté teniendo problemas en el Gestor de aplicaciones en la nube. Revise los consejos para solucionar problemas o comuníquese con soporte de Cloud Application Manager para proporcionar detalles y capturas de pantalla de ser posible.

Para problemas relacionados con las llamadas API, envíe el cuerpo de la solicitud junto con los detalles del problema.

En el caso de error de casilla, comparta la casilla en el espacio de trabajo en el que su organización y Cloud Application Manager pueden ingresar y adjunte los registros.

  • Linux: SSH y busque el registro en /var/log/elasticbox/elasticbox-agent.log
  • Windows: RDP dentro de la instancia para ubicar el registro en ProgramDataElasticBoxLogselasticbox-agent.log

API para proveedores

Gestione y realice acciones en proveedores.

Gestionar proveedores

Recursos Descripción
POST /services/providers Crea una nueva cuenta de proveedor en el Gestor de aplicaciones en la nube y obtiene el estado del proveedor.
GET /services/providers Obtiene la lista de proveedores.
GET /services/providers/{provider_id} Recupera un proveedor existente.
PUT /services/providers/{provider_id} Actualiza un proveedor existente.
DELETE /services/providers/{provider_id} Elimina un proveedor existente.

Operaciones del proveedor

Recursos Descripción
PUT /services/providers/{provider_id}/sync Sincroniza un proveedor existente.
GET /services/providers/{provider_id}/logs Obtiene los registros de un proveedor.
GET /services/providers/{provider_id}/unregisted-instances Obtiene las instancias no registradas de un proveedor.
POST /services/providers/{provider_id}/images Agrega una nueva imagen de máquina a un proveedor.
DELETE /services/providers/{provider_id}/images/{machine_image_id} Elimina una imagen de máquina existente de un proveedor.

POST /services/providers

Crea una nueva cuenta de proveedor en el Gestor de aplicaciones en la nube y obtiene el estado del proveedor.

URL

Estructura

[POST] /services/providers

Ejemplo

POST https://cam.ctl.io/services/providers

Solicitud

Encabezados

content-type:application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Solicitar parámetros para todos los proveedores

Parámetro Tipo Descripción
icon secuencia Especifica un URI de ícono para la cuenta del proveedor.
tipo secuencia Required. Especifica el tipo de cuenta como uno de los siguientes: Amazon Web Services, Amazon Web Services GovCloud, Rackspace, Openstack, VMware vSphere, VMware vCloud Director, Google Compute, Microsoft Azure, Microsoft Azure Classic, Cloudstack, SoftLayer, CenturyLink, CenturyLink DCC, CenturyLink DCC Foundation, Dimension Data.
descripción secuencia Describe los servicios del proveedor.
esquema secuencia Required. Proporciona el esquema para la solicitud.
nombre secuencia Required. Proporciona a la cuenta del proveedor un nombre en el Gestor de aplicaciones en la nube.
owner secuencia Especifica la ID del espacio de trabajo en el Gestor de aplicaciones en la nube propietario de la cuenta del proveedor.

Parámetros de solicitud de Amazon Web Services

Parámetro Tipo Descripción
credentials object Required. Contiene el objeto Credential (credencial), que es el nombre ARN del rol de AWS, si se utiliza el Gestor de aplicaciones en la nube como un software como servicio, o la clave y el secreto, si se utiliza como un dispositivo.

Cuerpo de la solicitud de Amazon Web Services

{
   "icon": "images/platform/aws.png",
   "type": "Amazon Web Services",
   "description": "Manage EC2, ECS and Cloudformation instances",
   "schema": "http://elasticbox.net/schemas/aws/provider",
   "name": "example account",
   "credentials": {
      "role": "role_ARN_that_gives_Cloud_Application_Manager_access"
   },
   "owner": "mrina"
}

Parámetros de la solicitud de Amazon Web Services Gov

Parámetro Tipo Descripción
credentials object Obligatorio (clave secreta o rol). Contiene el objeto Credential (credencial), que es el nombre ARN del rol de AWS, si se utiliza el Gestor de aplicaciones en la nube como un software como servicio, o la clave y el secreto, si se utiliza como un dispositivo.

Cuerpo de la solicitud de Amazon Web Services Gov

{
  "icon": "images/platform/govcloud.png",
  "type": "Amazon Web Services GovCloud",
  "description": "Manage compute services in an isolated ITAR compliant AWS region",
  "schema": "http://elasticbox.net/schemas/aws/provider",
  "name": "AWSGovCloud",
  "credentials": {
    "key": "_the_key",
    "secret": "_the_secret"
  },
  "owner": "operations"
}

{
  "icon": "images/platform/govcloud.png",
  "type": "Amazon Web Services GovCloud",
  "description": "Manage compute services in an isolated ITAR compliant AWS region",
  "schema": "http://elasticbox.net/schemas/aws/provider",
  "name": "AWSGovCloud",
  "credentials": {
    "role": "arn:aws:iam::63659945208:role/Cam_Access"
  },
  "owner": "operations"
}

Parámetros de la solicitud de Rackspace y OpenStack

Parámetro Tipo Descripción
identity_url secuencia Required. Especifica el punto de enlace del servicio de identidad.
project secuencia Required. Especifica la ID del proyecto para Rackspace o el inquilino para OpenStack.
nombre de usuario secuencia Required. Especifica el nombre de usuario.
contraseña secuencia Required. Especifica la contraseña.

Cuerpo de la solicitud de Rackspace

{
   "icon": "images/platform/rackspace.png",
   "type": "Rackspace",
   "description": "Manage cloud hosting and Linux machines",
   "schema": "http://elasticbox.net/schemas/openstack/provider",
   "identity_url": "https://identity.api.rackspacecloud.com/v2.0",
   "name": "example rackspace",
   "project": "your_project_ID",
   "username": "your_Rackspace_username",
   "password": "your_Rackspace_password",
   "owner": "mrina"
}

Cuerpo de la solicitud de OpenStack

{
   "icon": "images/platform/openstack.png",
   "type": "Openstack",
   "description": "Manage cloud hosting, Linux and Windows machines",
   "schema": "http://elasticbox.net/schemas/openstack/provider",
   "name": "example openstack",
   "identity_url": "http://openstack-26.cam.ctl.io:5000/v2.0",
   "project": "your_OpenStack_tenant",
   "username": "your_OpenStack_username",
   "password": "your_OpenStack_password",
   "owner": "mrina"
}

Parámetros de la solicitud de VMware vSphere

Parámetro Tipo Descripción
nombre de usuario secuencia Required. Especifica un nombre de usuario de vCenter.
secreto secuencia Required. Especifica la contraseña del usuario.
punto de conexión secuencia Required. Especifica el URL del servidor de vCenter.

Cuerpo de la solicitud de VMware vSphere

{
   "icon": "images/platform/vsphere.png",
   "type": "VMware vSphere",
   "description": "Manage cloud hosting, Linux and Windows machines",
   "schema": "http://elasticbox.net/schemas/vsphere/provider",
   "name": "example vcenter",
   "username": "your_Vspherer_username",
   "secret": "your_Vsphere_user_password",
   "endpoint": "your_vCenter_server_URL",
   "owner": "mrina"
}

Parámetros de la solicitud de VMware vCloud Director

Parámetro Tipo Descripción
nombre de usuario secuencia Required. Especifica un nombre de usuario de vCenter.
contraseña secuencia Required. Especifica la contraseña del usuario.
url secuencia Required. Especifica el URL del servidor de vCenter.
organización secuencia Required. Organización.

Cuerpo de la solicitud de VMware vCloud Director

{
  "icon": "images/platform/vcloud.png",
  "type": "VMware vCloud Director",
  "description": "Manage cloud hosting, Linux and Windows machines",
  "schema": "http://elasticbox.net/schemas/vcloud/provider",
  "name": "VMwareVCloudProvider",
  "url": "https://v-cloud.cam.ctl.io",
  "vorg": "system",
  "username": "_the_username",
  "password": "_the_password",
  "owner": "operations"
}

Parámetros de la solicitud de Google Cloud

Parámetro Tipo Descripción
project_id secuencia Required. Especifica una ID de proyecto en Google Cloud que tiene la facturación y la API Compute Engine de Google habilitadas.
email secuencia Required. Especifica su cuenta de Gmail asociada con Google Cloud.
credentials object Required. Especifica el objeto refresh_token (token de actualización) o la clave. Puede obtener el token de actualización de Google OAuth 2.0 para permitir que el Gestor de aplicaciones en la nube realice solicitudes de API en su nombre. O puede proporcionar la clave JSON para la cuenta de servicio del proyecto.

Cuerpo de la solicitud de Google Cloud

{
   "icon": "images/platform/google.png",
   "type": "Google Compute",
   "description": "Manage cloud hosting and Linux machines",
   "name": "example google cloud account",
   "project_id": "your_GoogleCloud_projectID",
   "email": "your_gmailaccount_for_GoogleCloud",
   "credentials": {
      "refresh_token": "Google_OAuth_2.0_refresh_token"
   },
   "schema": "http://elasticbox.net/schemas/gce/provider",
   "owner": "mrina"
}

Parámetro de la solicitud de Microsoft Azure Classic

Para agregar una suscripción de Azure en el Gestor de aplicaciones en la nube, primero tendrá que cargar el certificado de gestión del Gestor de aplicaciones en la nube a su suscripción de Azure Classic.

Parámetro Tipo Descripción
subscription_id secuencia Required. Especifica la ID de suscripción de Azure.

Cuerpo de la solicitud de Microsoft Azure Classic

{
   "icon": "images/platform/azure-storage.png",
   "type": "Microsoft Azure",
   "description": "Manage compute services for Windows and Linux machines.",
   "schema": "http://elasticbox.net/schemas/azure/provider",
   "name": "example azure",
   "subscription_id": "your_Azure_subscription_ID",
   "owner": "mrina"
}

Parámetro de la solicitud de Microsoft Azure

Para agregar una suscripción de Azure en el Gestor de aplicaciones en la nube, primero tendrá que cargar el certificado de gestión del Gestor de aplicaciones en la nube a su suscripción de Azure.

Parámetro Tipo Descripción
subscription_id secuencia Required. Especifica la ID de suscripción de Azure.
client_id secuencia Solo es un requisito para usuarios normales. Los revendedores no requieren este campo.
secreto secuencia La clave secreta que proporcionará Azure al usuario.
tenant secuencia La instancia de inquilino especificada en el panel de Azure.

Cuerpo de la solicitud de Microsoft Azure

{
   "icon": "images/platform/azure-storage.png",
   "type": "Microsoft Azure",
   "description": "Manage compute services for Windows and Linux machines.",
   "schema": "http://elasticbox.net/schemas/azure-arm/provider",
   "name": "example azure",
   "owner": "mrina",
   "subscription_id": "",
   "client_id": "",
   "secret": "",
   "tenant": "1728acb8-cf75-45d8-bf56-ec39873b7e1b"
}

Parámetros de la solicitud de CloudStack

Parámetro Tipo Descripción
url secuencia Required. Especifica el punto de enlace de la API al servidor de administración de CloudStack.
api_key secuencia Required. Especifica la clave de la API para la cuenta de usuario de CloudStack.
secret_key secuencia Required. Especifica el secreto de API para la cuenta de usuario de CloudStack.

Cuerpo de la solicitud de CloudStack

{
   "icon": "images/platform/cloudstack.png",
   "type": "Cloudstack",
   "description": "Manage cloud hosting, Linux and Windows machines",
   "schema": "http://elasticbox.net/schemas/cloudstack/provider",
   "name": "example CloudStack",
   "url": "CloudStack_management_server_endpoint",
   "api_key": "CloudStack_API_key",
   "secret_key": "CloudStack_secret_key",
   "owner": "mrina"
}

Parámetros de la solicitud de SoftLayer

Parámetro Tipo Descripción
nombre de usuario secuencia Required. Especifica un nombre de usuario de la cuenta de SoftLayer.
api_key secuencia Required. Especifica la clave de la API para el usuario de SoftLayer.

Cuerpo de la solicitud de SoftLayer

{
   "icon": "images/platform/softlayer.png",
   "type": "SoftLayer",
   "description": "Manage compute services for Windows and Linux machines.",
   "schema": "http://elasticbox.net/schemas/softlayer/provider",
   "name": "example softlayer",
   "username": "your_SoftLayer_username",
   "api_key": "SoftLayer_API_key_for_username",
   "owner": "mrina"
}

Respuesta

Código normal

  • 202 aceptado

Códigos de error

  • Sin códigos de error

Parámetros de respuesta para todos los proveedores

Parámetro Tipo Descripción
updated secuencia Devuelve la fecha en la que se actualizó el proveedor.
descripción secuencia Devuelve la descripción del proveedor.
deleted object Identifica si se eliminó al proveedor.
servicios array Devuelve los servicios disponibles del proveedor.
members array Devuelve a los usuarios con los que se comparte el proveedor.
owner secuencia Devuelve el propietario de la cuenta del proveedor en el Gestor de aplicaciones en la nube.
id secuencia Devuelve la ID de la cuenta del proveedor en el Gestor de aplicaciones en la nube.
icon secuencia Devuelve el ícono utilizado para la cuenta del proveedor.
nombre secuencia Devuelve el nombre usado para identificar la cuenta del proveedor en el Gestor de aplicaciones en la nube.
created secuencia Devuelve la fecha en la que se agregó el proveedor.
uri secuencia Devuelve la ruta del identificador único de recursos a la cuenta del proveedor.
admin_boxes secuencia Enumera las casillas de administración adjuntas al proveedor.
organización secuencia Identifica el nombre de la organización.
tipo secuencia Identifica al proveedor como uno de los siguientes: Amazon Web Services, Rackspace, Openstack, VMware vSphere, Google Compute, Microsoft Azure, Cloudstack, SoftLayer.
esquema secuencia Devuelve el URL del esquema.

Parámetros de la respuesta de AWS

Parámetro Tipo Descripción
credentials object Devuelve el ARN del rol de Amazon Web Services, si se utiliza el Gestor de aplicaciones en la nube como un software como servicio, o identifica la clave y el secreto, si se utiliza como un dispositivo.

Cuerpo de respuesta de AWS

{
   "updated": "2015-01-05 18:36:26.227970",
   "description": "Manage EC2, ECS and Cloudformation instances",
   "deleted": null,
   "services": [],
   "members": [],
   "owner": "mrina",
   "credentials": {
      "role": "your_ARN_role_that_allows_Cloud_Application_Manager_access"
   },
   "id": "aefc3f24-74af-414d-98ae-d6ee05997610",
   "icon": "images/platform/aws.png",
   "name": "example account",
   "created": "2015-01-05 18:36:26.227970",
   "uri": "/services/providers/aefc3f24-74af-414d-98ae-d6ee05997610",
   "state": "initializing",
   "admin_boxes": [],
   "organization": "elasticbox",
   "type": "Amazon Web Services",
   "schema": "http://elasticbox.net/schemas/aws/provider"
}

Parámetros de la respuesta de Rackspace y OpenStack

Parámetro Tipo Descripción
nombre de usuario secuencia Devuelve el nombre de usuario.
contraseña secuencia Enmascara la contraseña de la cuenta del proveedor.
project secuencia Devuelve la ID de proyecto de Rackspace o el inquilino de OpenStack.
identity_url secuencia Devuelve el punto de enlace de servicio de identidad de OpenStack.

Ejemplo de la respuesta de Rackspace

{
  "username": "_the_username",
  "updated": "2015-10-30 12:16:30.836398",
  "password": "_the_password",
  "description": "Manage cloud hosting and Linux machines",
  "created": "2015-10-30 12:16:30.836398",
  "deleted": null,
  "type": "Rackspace",
  "uri": "/services/providers/c6ade25c-cc46-4271-934d-55c75dba821a",
  "name": "RackSpace",
  "project": "937535",
  "services": [

  ],
  "state": "initializing",
  "admin_boxes": [

  ],
  "members": [

  ],
  "owner": "operations",
  "organization": "elasticbox",
  "icon": "images/platform/rackspace.png",
  "identity_url": "https://identity.api.rackspacecloud.com/v2.0",
  "id": "c6ade25c-cc46-4271-934d-55c75dba821a",
  "schema": "http://elasticbox.net/schemas/openstack/provider"
}

Ejemplo de la respuesta de Openstack

{
  "username": "_the_username",
  "updated": "2015-10-30 12:26:14.331420",
  "password": "_the_password",
  "description": "Manage cloud hosting, Linux and Windows machines",
  "created": "2015-10-30 12:26:14.331420",
  "deleted": null,
  "identity_url": "http://openstack-36.cam.ctl.io:5000/v2.0",
  "uri": "/services/providers/57106d2a-ab5d-486a-988f-31a729a0c29d",
  "name": "OpenStackProvider",
  "project": "admin",
  "services": [

  ],
  "state": "initializing",
  "admin_boxes": [

  ],
  "members": [

  ],
  "owner": "operations",
  "organization": "elasticbox",
  "icon": "images/platform/openstack.png",
  "type": "Openstack",
  "id": "57106d2a-ab5d-486a-988f-31a729a0c29d",
  "schema": "http://elasticbox.net/schemas/openstack/provider"
}

Parámetros de la respuesta de vSphere

Parámetro Tipo Descripción
nombre de usuario secuencia Devuelve el nombre de usuario de vCenter.
secreto secuencia Enmascara la contraseña del usuario.
punto de conexión secuencia Devuelve el URL del servidor de vCenter.

Ejemplo de la respuesta de vSphere

{
  "username": "_the_username",
  "updated": "2015-10-30 12:51:53.729679",
  "endpoint": "https://10.0.128.2",
  "description": "Manage cloud hosting, Linux and Windows machines",
  "state": "initializing",
  "deleted": null,
  "created": "2015-10-30 12:51:53.729679",
  "uri": "/services/providers/3afc1c99-dd66-436a-ace4-33979dd5f5ca",
  "name": "VMWareVSphereProvider",
  "services": [Provider id

  ],
  "secret": "_the_secret",
  "admin_boxes": [

  ],
  "members": [

  ],
  "owner": "operations",
  "organization": "elasticbox",
  "icon": "images/platform/vsphere.png",
  "type": "VMware vSphere",
  "id": "3afc1c99-dd66-436a-ace4-33979dd5f5ca",
  "schema": "http://elasticbox.net/schemas/vsphere/provider"
}

Parámetros de la respuesta de Google Cloud

Parámetro Tipo Descripción
project_id secuencia Devuelve la ID de proyecto de Google Cloud que utiliza la cuenta de proveedor.
email secuencia Devuelve la cuenta de Gmail asociada con Google Cloud para la cuenta del proveedor.
credentials object Devuelve los objetos access_token (token de acceso) y refresh_token (token de actualización) o la clave. Devuelve una clave si se proporcionó una clave JSON para la cuenta de servicio del proyecto.

Ejemplo de la respuesta de Google Cloud

{
  "updated": "2015-10-30 12:34:09.062710",
  "description": "Manage cloud hosting and Linux machines",
  "icon": "images/platform/google.png",
  "created": "2015-10-30 12:34:09.062710",
  "deleted": null,
  "id": "d86e3bfe-1edc-45b4-a03b-28d1e2b7eee2",
  "uri": "/services/providers/d86e3bfe-1edc-45b4-a03b-28d1e2b7eee2",
  "name": "GoogleComputeProvider",
  "services": [

  ],
  "state": "initializing",
  "admin_boxes": [

  ],
  "members": [

  ],
  "organization": "elasticbox",
  "owner": "operations",
  "credentials": {
    "key": "_the_key"
  },
  "project_id": "_project_id",
  "type": "Google Compute",
  "email": "email@company.com",
  "schema": "http://elasticbox.net/schemas/gce/provider"
}

Parámetros de respuesta de Microsoft Azure Classic

Parámetro Tipo Descripción
subscription_id secuencia Devuelve la ID de suscripción de Azure que utiliza la cuenta del proveedor.

Ejemplo de la respuesta de Microsoft Azure Classic

{
  "updated": "2015-10-30 12:49:38.014690",
  "description": "Manage compute services for Windows and Linux machines",
  "created": "2015-10-30 12:49:38.014690",
  "deleted": null,
  "uri": "/services/providers/57b41251-43fd-4a18-9182-c71db30f9035",
  "name": "MicrosoftAzureServiceProvider",
  "services": [

  ],
  "state": "initializing",
  "admin_boxes": [

  ],
  "members": [

  ],
  "owner": "operations",
  "organization": "elasticbox",
  "subscription_id": "_the_subscription_id",
  "icon": "images/platform/azure-storage.png",
  "type": "Azure Classic",
  "id": "57b41251-43fd-4a18-9182-c71db30f9035",
  "schema": "http://elasticbox.net/schemas/azure/provider"
}

Ejemplo de la respuesta de Microsoft Azure

{
  "updated": "2015-10-30 12:49:38.014690",
  "description": "Manage compute services for Windows and Linux machines",
  "created": "2015-10-30 12:49:38.014690",
  "deleted": null,
  "uri": "/services/providers/57b41251-43fd-4a18-9182-XXXXXXXXX",
  "name": "MicrosoftAzureServiceProvider",
  "services": [

  ],
  "state": "initializing",
  "admin_boxes": [

  ],
  "members": [

  ],
  "owner": "operations",
  "organization": "elasticbox",
  "subscription_id": "_the_subscription_id",
  "icon": "images/platform/azure-storage.png",
  "type": "Microsoft Azure",
  "id": "57b41251-43fd-4a18-9182-XXXXXXXXXX",
  "schema": "http://elasticbox.net/schemas/azure/provider"
 "client_id": "_client_id",
 "secret": "_secret",
 "tenant": "1728acb8-cf75-45d8-bf56-XXXXXXXXX"
}

Parámetros de la respuesta de CloudStack

Parámetro Tipo Descripción
url secuencia Devuelve el punto de enlace de la API al servidor de administración de CloudStack.
api_key secuencia Devuelve la clave API para la cuenta de usuario de CloudStack.
secret_key secuencia Devuelve el secreto de API para la cuenta de usuario de CloudStack.

Ejemplo de la respuesta de CloudStack

{
  "updated": "2015-10-30 12:28:22.315749",
  "api_key": "the_api_key",
  "description": "Manage cloud hosting, Linux and Windows machines",
  "created": "2015-10-30 12:28:22.315749",
  "url": "http://10.0.128.21:8080/client/api",
  "uri": "/services/providers/e50e4612-74a5-40b9-8aa0-b82631782c10",
  "name": "CloudStack",
  "deleted": null,
  "state": "initializing",
  "admin_boxes": [

  ],
  "members": [

  ],
  "organization": "elasticbox",
  "owner": "operations",
  "services": [

  ],
  "secret_key": "_the_secret_key",
  "icon": "images/platform/cloudstack.png",
  "type": "Cloudstack",
  "id": "e50e4612-74a5-40b9-8aa0-b82631782c10",
  "schema": "http://elasticbox.net/schemas/cloudstack/provider"
}

Parámetros de la respuesta de SoftLayer

Parámetro Tipo Descripción
nombre de usuario secuencia Devuelve el nombre de usuario de SoftLayer que utiliza la cuenta del proveedor.
api_key secuencia Devuelve la clave API para el usuario de SoftLayer.

Ejemplo de la respuesta de SoftLayer

{
  "username": "_the_username",
  "updated": "2015-10-30 12:22:57.519720",
  "api_key": "_the_apikey",
  "description": "Manage compute services for Windows and Linux machines",
  "created": "2015-10-30 12:22:57.519720",
  "deleted": null,
  "uri": "/services/providers/8a820dc5-c21e-434f-9ca7-03434d066bd6",
  "name": "SoftlayerProvider",
  "services": [

  ],
  "state": "initializing",
  "admin_boxes": [

  ],
  "members": [

  ],
  "owner": "operations",
  "organization": "elasticbox",
  "icon": "images/platform/softlayer.png",
  "type": "SoftLayer",
  "id": "8a820dc5-c21e-434f-9ca7-03434d066bd6",
  "schema": "http://elasticbox.net/schemas/softlayer/provider"
}

GET /services/providers

Obtiene proveedores disponibles del espacio de trabajo personal del usuario autenticado.

URL

Estructura

[GET] /services/providers

Ejemplo

GET https://cam.ctl.io/services/providers

Solicitud

Encabezados

content-type:application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Nombre Tipo Descripción Req.
-------- ------- --------------- -----

Respuesta

Código normal

  • 200 aceptado

Códigos de error

  • 400: Solicitud incorrecta

Parámetros de la respuesta

Parámetro Tipo Descripción
updated secuencia Fecha de la última actualización.
descripción secuencia Descripción del proveedor.
created secuencia Fecha de creación.
uri secuencia URI del proveedor.
nombre secuencia Nombre de proveedor.
servicios array Lista de servicios asociados al proveedor; cada servicio tiene un nombre.
state secuencia Estado del proveedor; hay cinco estados posibles: initializing (iniciándose), processing (en proceso), ready (listo), deleting (borrándose) o unavailable (no disponible).
members array Lista de miembros con acceso al proveedor.
owner secuencia Propietario del proveedor.
tipo secuencia Tipo de proveedor; uno de los proveedores disponibles: Amazon Web Services (AWS), VShpere, VCloud, RackSpace, Openstack, Google Compute, Azure, CloudStack, SoftLayer, AWS Gov.
id secuencia Identificador único del proveedor.
icon secuencia URI del ícono del proveedor.
esquema secuencia El esquema de URI del proveedor adecuado.

Cuerpo de respuesta

[
    {
        "updated": "2015-10-30 12:28:38.312157",
        "description": "Manage cloud hosting, Linux and Windows machines",
        "icon": "images/platform/cloudstack.png",
        "created": "2015-10-30 12:28:22.315749",
        "uri": "/services/providers/e50e4612-74a5-40b9-8aa0-b82631782c10",
        "name": "CloudStack",
        "services": [],
        "state": "unavailable",
        "members": [],
        "owner": "operations",
        "type": "Cloudstack",
        "id": "e50e4612-74a5-40b9-8aa0-b82631782c10",
        "schema": "http://elasticbox.net/schemas/cloudstack/provider"
    },
    {
        "schema": "http://elasticbox.net/schemas/vsphere/provider",
        "updated": "2015-10-30 12:25:42.135998",
        "description": "Manage cloud hosting, Linux and Windows machines",
        "created": "2015-10-09 07:35:00.273473",
        "uri": "/services/providers/cac26e4c-16f8-46ad-83ae-52a2b1ba4fca",
        "name": "vSphere",
        "owner": "operations",
        "state": "ready",
        "members": [],
        "services": [
            {
                "name": "Linux Compute"
            },
            {
                "name": "Windows Compute"
            }
        ],
        "type": "VMware vSphere",
        "id": "cac26e4c-16f8-46ad-83ae-52a2b1ba4fca",
        "icon": "images/platform/vsphere.png"
    },
    {
        "schema": "http://elasticbox.net/schemas/dimension-data/provider",
        "updated": "2015-10-30 12:58:20.228258",
        "description": "Manage compute services in DD",
        "created": "2015-10-30 12:58:19.078758",
        "uri": "/services/providers/052211ae-096a-44e7-b88c-27d8dcac3971",
        "name": "DimensionDataProvider",
        "services": [
            {
                "locations": [],
                "name": "Linux Compute"
            },
            {
                "locations": [],
                "name": "Windows Compute"
            }
        ],
        "state": "unavailable",
        "members": [],
        "owner": "operations",
        "type": "Dimension Data",
        "id": "052211ae-096a-44e7-b88c-27d8dcac3971",
        "icon": "images/platform/dimension-data.png"
    },
    {
        "updated": "2015-10-27 20:54:28.739422",
        "description": "Manage EC2, ECS and Cloudformation instances",
        "icon": "images/platform/aws.png",
        "created": "2015-10-27 16:25:58.448390",
        "uri": "/services/providers/7e841966-1dec-4460-a981-1db4e1eec10c",
        "name": "AWSProvider",
        "owner": "operations",
        "state": "ready",
        "members": [],
        "services": [
            {
                "locations": [
                    {},
                    {}
                ],
                "name": "CloudFormation Service"
            },
            {
                "name": "ECS Service",
                "locations": [
                    {
                        "clusters": []
                    },
                    {},
                    {
                        "clusters": []
                    }
                    {
                        "clusters": [
                            {
                                "name": "scenarios-cluster",
                                "arn": "arn:aws:ecs:us-east-1:729190825118:cluster/scenarios-cluster"
                            }
                        ]
                    }
                ]
            },
            {
                "name": "Linux Compute",
                "locations": [
                    {},
                    {}
                ]
            },
            {
                "name": "Windows Compute",
                "locations": [
                    {},
                    {}
                ]
            }
        ],
        "type": "Amazon Web Services",
        "id": "7e841966-1dec-4460-a981-1db4e1eec10c",
        "schema": "http://elasticbox.net/schemas/aws/provider"
    }
]

GET /services/providers/{provider_id}

Recupera un proveedor existente cuando se proporciona la ID del proveedor.

URL

Estructura

[GET] /services/providers/{provider_id}

Ejemplo

GET https://cam.ctl.io/services/providers/338f38dc-e667-47e0-9026-b253138f109e

Solicitud

Encabezados

content-type:application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Nombre Tipo Descripción Req.
provider_id secuencia La ID del proveedor.

Respuesta

Código normal

  • 202 Aceptado

Códigos de error

  • 403: Prohibido
  • 404: No se encontró

Parámetros de la respuesta

Parámetro Tipo Descripción
updated secuencia Fecha de la última actualización.
descripción secuencia Descripción del proveedor.
created secuencia Fecha de creación.
uri secuencia URI del proveedor.
nombre secuencia Nombre de proveedor.
servicios array Lista de servicios asociados al proveedor; cada servicio tiene un nombre.
state secuencia Estado del proveedor; hay cinco estados posibles: initializing (iniciándose), processing (en proceso), ready (listo), deleting (borrándose) o unavailable (no disponible).
members array Lista de miembros con acceso al proveedor.
owner secuencia Propietario del proveedor.
tipo secuencia Tipo de proveedor; uno de los proveedores disponibles: Amazon Web Services (AWS), VShpere, VCloud, RackSpace, Openstack, Google Compute, Azure, CloudStack, SoftLayer, AWS Gov.
id secuencia Identificador único del proveedor.
esquema secuencia El esquema de URI del tipo de proveedor.
icon secuencia URI del ícono del proveedor.

Cuerpo de respuesta

{
    "costcenter": "c3195962-4c70-4ad6-a17a-189a5579a45a",
    "owner": "dryrun",
    "default_managed_iis_policies_created": true,
    "clc_alias": "DA4",
    "management_state": true,
    "id": "8132cc1d-38b0-4867-b7a3-1af7b83d4792",
    "state": "ready",
    "admin_boxes": [],
    "type": "Amazon Web Services",
    "managed_os": true,
    "schema": "http://elasticbox.net/schemas/aws/provider",
    "updated": "2018-10-15 19:10:57.749750",
    "description": null,
    "management_state_history": [
        {
            "started": "2018-04-06 00:29:28.414938",
            "state": "up",
            "completed": "2018-07-26 18:43:46.867016"
        },
        {
            "started": "2018-07-26 18:43:46.867016",
            "state": "down",
            "completed": "2018-07-26 18:53:27.827179"
        }
    ],
    "default_sql_server_policies_created": true,
    "deleted": null,
    "default_management_appliance_policies_created": true,
    "default_policies_created": true,
    "members": [
        {
            "role": "read",
            "workspace": "mission5"
        }
    ],
    "services": [
        {
            "icon": "images/platform/aws-cloudformation.png",
            "locations": [
                {
                    "name": "ap-northeast-1"
                },
                {
                    "name": "ap-northeast-2"
                }
            ],
            "name": "CloudFormation Service",
            "schema": "http://elasticbox.net/schemas/aws/cloudformation/cloudformation"
        },
        {
            "locations": [
                {
                    "clusters": [],
                    "name": "ap-northeast-1"
                },
                {
                    "name": "ap-northeast-2"
                }
            ],
            "icon": "images/platform/amazon-ecs.png",
            "name": "Container Service",
            "roles": [
                {
                    "name": "None"
                }
            ],
            "schema": "http://elasticbox.net/schemas/aws/ecs/container"
        },
        {
            "flavors": [
                {
                    "name": "c1.medium"
                },
                {
                    "name": "c1.xlarge"
                }
            ],
            "name": "Linux Compute",
            "roles": [
                {
                    "name": "None"
                },
                {
                    "name": "AutoScaleS3Access"
                }
            ],
            "locations": [
                {
                    "clouds": [
                        {
                            "subnets": [
                                {
                                    "description": "172.31.16.0/20",
                                    "name": "subnet-ygygjyg"
                                },
                                {
                                    "description": "172.31.0.0/20",
                                    "name": "subnet-97ty97h"
                                }
                            ],
                            "description": "172.31.0.0/16",
                            "target_groups": [],
                            "load_balancers": [],
                            "security_groups": [
                                {
                                    "name": "Automatic"
                                },
                                {
                                    "description": "default VPC security group",
                                    "name": "sg-40c1ea39"
                                }
                            ],
                            "name": "vpc-9ff879f8"
                        }
                    ],
                    "name": "ap-northeast-1",
                    "placement_groups": [],
                    "images": [
                        {
                            "owner": "user",
                            "description": "Latest Amazon AMI",
                            "name": "Linux Compute"
                        },
                        {
                            "owner": "user",
                            "description": "CentOS 7 for Management Appliance",
                            "root_disk": {
                                "device": "/dev/sda1",
                                "iops": null,
                                "type": "gp2",
                                "size": 8
                            },
                            "name": "ami-3185744e"
                        }
                    ],
                    "alarms": [],
                    "keypairs": [
                        {
                            "name": "None"
                        }
                    ]
                }
            ],
            "certificates": [],
            "schema": "http://elasticbox.net/schemas/aws/compute/linux",
            "icon": "images/platform/linux.png"
        },
    ],
    "credentials": {
        "role": "arn:aws:iam::6366654466:role/Cam_Access"
    },
    "icon": "images/platform/aws.svg",
    "target_regions": [
        {
            "appliance_id": "***********",
            "name": "us-east-1",
            "vpc": "************"
        }
    ],
    "name": "Dry-Run AWS",
    "reseller": false,
    "created": "2018-03-16 16:17:59.531589",
    "uri": "/services/providers/8132cc1d-38b0-4867-b7a3-1af7b83d4792",
    "organization": "mission-field"
}

PUT /services/providers/{provider_id}

Actualiza un proveedor existente cuando se proporciona la ID del proveedor. Transfiere el objeto Provider (proveedor) en el cuerpo de la solicitud para actualizar estos campos: name (nombre), description (descripción) y members (miembros).

Para AWS, también puede actualizar la clave y el secreto. Para VMware vShpere y SoftLayer, también puede actualizar el nombre de usuario, el secreto y el punto de enlace.

URL

Estructura

[PUT] /services/providers/{provider_id}

Ejemplo

PUT https://cam.ctl.io/services/providers/338f38dc-e667-47e0-9026-b253138f109e

Solicitud

Encabezados

Content-Type: application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Parámetro Tipo Descripción Req.
provider_id secuencia La ID única del proveedor creado.

Respuesta

Códigos de respuesta normales

  • 200 Aceptado

Códigos de respuesta de error comunes

  • 400: Solicitud incorrecta - Datos no válidos
  • 403: Prohibido - El usuario no pertenece a la organización
  • 404: No se encontró
  • 409: Conflicto

Parámetros de la respuesta

Parámetro Tipo Descripción
updated secuencia Fecha de la última actualización.
descripción secuencia Descripción del proveedor.
created secuencia Fecha de creación.
uri secuencia URI del proveedor.
nombre secuencia Nombre de proveedor.
servicios array Lista de servicios asociados al proveedor; cada servicio tiene un nombre.
state secuencia Estado del proveedor; hay cinco estados posibles: initializing (iniciándose), processing (en proceso), ready (listo), deleting (borrándose) o unavailable (no disponible).
members array Lista de miembros con acceso al proveedor.
owner secuencia Propietario del proveedor.
tipo secuencia Tipo de proveedor; hay dos proveedores posibles: Amazon Web Services o VMware vShpere.
id secuencia Identificador único del proveedor.
icon secuencia URI del ícono del proveedor.

Cuerpo de respuesta

{
    "costcenter": "c3195962-4c70-4ad6-a17a-189a5579a45a",
    "owner": "dryrun",
    "default_managed_iis_policies_created": true,
    "clc_alias": "DA4",
    "management_state": true,
    "id": "8132cc1d-38b0-4867-b7a3-1af7b83d4792",
    "state": "ready",
    "admin_boxes": [],
    "type": "Amazon Web Services",
    "managed_os": true,
    "schema": "http://elasticbox.net/schemas/aws/provider",
    "updated": "2018-10-15 19:10:57.749750",
    "description": null,
    "management_state_history": [
        {
            "started": "2018-04-06 00:29:28.414938",
            "state": "up",
            "completed": "2018-07-26 18:43:46.867016"
        },
        {
            "started": "2018-07-26 18:43:46.867016",
            "state": "down",
            "completed": "2018-07-26 18:53:27.827179"
        }
    ],
    "default_sql_server_policies_created": true,
    "deleted": null,
    "default_management_appliance_policies_created": true,
    "default_policies_created": true,
    "members": [
        {
            "role": "read",
            "workspace": "mission5"
        }
    ],
    "services": [
        {
            "icon": "images/platform/aws-cloudformation.png",
            "locations": [
                {
                    "name": "ap-northeast-1"
                },
                {
                    "name": "ap-northeast-2"
                }
            ],
            "name": "CloudFormation Service",
            "schema": "http://elasticbox.net/schemas/aws/cloudformation/cloudformation"
        },
        {
            "locations": [
                {
                    "clusters": [],
                    "name": "ap-northeast-1"
                },
                {
                    "name": "ap-northeast-2"
                }
            ],
            "icon": "images/platform/amazon-ecs.png",
            "name": "Container Service",
            "roles": [
                {
                    "name": "None"
                }
            ],
            "schema": "http://elasticbox.net/schemas/aws/ecs/container"
        },
        {
            "flavors": [
                {
                    "name": "c1.medium"
                },
                {
                    "name": "c1.xlarge"
                }
            ],
            "name": "Linux Compute",
            "roles": [
                {
                    "name": "None"
                },
                {
                    "name": "AutoScaleS3Access"
                }
            ],
            "locations": [
                {
                    "clouds": [
                        {
                            "subnets": [
                                {
                                    "description": "172.31.16.0/20",
                                    "name": "subnet-231b2d0b"
                                },
                                {
                                    "description": "172.31.0.0/20",
                                    "name": "subnet-af8e04f4"
                                }
                            ],
                            "description": "172.31.0.0/16",
                            "target_groups": [],
                            "load_balancers": [],
                            "security_groups": [
                                {
                                    "name": "Automatic"
                                },
                                {
                                    "description": "default VPC security group",
                                    "name": "sg-40c1ea39"
                                }
                            ],
                            "name": "vpc-9ff879f8"
                        }
                    ],
                    "name": "ap-northeast-1",
                    "placement_groups": [],
                    "images": [
                        {
                            "owner": "user",
                            "description": "Latest Amazon AMI",
                            "name": "Linux Compute"
                        },
                        {
                            "owner": "user",
                            "description": "CentOS 7 for Management Appliance",
                            "root_disk": {
                                "device": "/dev/sda1",
                                "iops": null,
                                "type": "gp2",
                                "size": 8
                            },
                            "name": "ami-3185744e"
                        }
                    ],
                    "alarms": [],
                    "keypairs": [
                        {
                            "name": "None"
                        }
                    ]
                },
                {
                    "clouds": [
                        {
                            "subnets": [
                                {
                                    "description": "172.31.0.0/20",
                                    "name": "subnet-9ecc86f6"
                                },
                                {
                                    "description": "172.31.16.0/20",
                                    "name": "subnet-1dee5651"
                                }
                            ],
                            "description": "172.31.0.0/16",
                            "target_groups": [],
                            "load_balancers": [],
                            "security_groups": [
                                {
                                    "name": "Automatic"
                                },
                                {
                                    "description": "default VPC security group",
                                    "name": "sg-ff282394"
                                }
                            ],
                            "name": "vpc-08296b60"
                        }
                    ],
                    "name": "ap-northeast-2",
                    "placement_groups": [],
                    "images": [
                        {
                            "owner": "user",
                            "description": "Latest Amazon AMI",
                            "name": "Linux Compute"
                        },
                        {
                            "owner": "user",
                            "description": "CentOS 7 for Management Appliance",
                            "root_disk": {
                                "device": "/dev/sda1",
                                "iops": null,
                                "type": "gp2",
                                "size": 8
                            },
                            "name": "ami-46963e28"
                        }
                    ],
                    "alarms": [],
                    "keypairs": [
                        {
                            "name": "None"
                        }
                    ]
                }
            ],
            "certificates": [],
            "schema": "http://elasticbox.net/schemas/aws/compute/windows",
            "icon": "images/platform/windows.png"
        }
    ],
    "credentials": {
        "role": "arn:aws:iam::636534623543:role/Cam_Access"
    },
    "icon": "images/platform/aws.svg",
    "target_regions": [
        {
            "appliance_id": "*********",
            "name": "us-east-1",
            "vpc": "**************"
        }
    ],
    "name": "Dry-Run AWS",
    "reseller": false,
    "created": "2018-03-16 16:17:59.531589",
    "uri": "/services/providers/8132cc1d-38b0-4867-b7a3-1af7b83d4792",
    "organization": "mission-field"
}

DELETE /services/providers/{provider_id}

Elimina un proveedor existente cuando se proporciona la ID del proveedor.

URL

Estructura

[DELETE] /services/providers/{provider_id}

Ejemplo

DELETE https://cam.ctl.io/services/providers/338f38dc-e667-47e0-9026-b253138f109e

Solicitud

Encabezados

Content-Type: application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Parámetro Tipo Descripción Req.

| provider_id | secuencia | La ID única que se proporciona a cada proveedor. | Sí |

Respuesta

Códigos de respuesta normales

  • 202 Aceptado

Códigos de respuesta de error comunes

  • 400: Solicitud incorrecta - Datos no válidos
  • 400: Solicitud incorrecta - Servicio activo usando el proveedor
  • 403: Prohibido
  • 404: No se encontró

PUT /services/providers/{provider_id}/sync

Sincroniza un proveedor existente cuando se proporciona la ID del proveedor.

URL

Estructura

[PUT] /services/providers/{provider_id}/sync

Ejemplo

PUT https://cam.ctl.io/services/providers/338f38dc-e667-47e0-9026-b253138f109e/sync

Solicitud

Encabezados

Content-Type: application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Parámetro Tipo Descripción Req.

| provider_id | secuencia | La ID única que se proporciona a cada proveedor. | Sí |

Respuesta

Códigos de respuesta normales

  • 202 Aceptado

Códigos de respuesta de error comunes

  • 403: Prohibido - El usuario no pertenece a la organización
  • 404: No se encontró

GET /services/providers/{provider_id}/logs

Recupera los registros de un proveedor cuando se proporciona la ID del proveedor.

URL

Estructura

[GET] /services/providers/{provider_id}/logs

Ejemplo

GET https://cam.ctl.io/services/providers/338f38dc-e667-47e0-9026-b253138f109e/logs

Solicitud

Encabezados

Content-Type: application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Parámetro Tipo Descripción Req.

| provider_id | secuencia | La ID única que se proporciona a cada proveedor. | Sí |

Respuesta

Códigos de respuesta normales

  • 200 Aceptado

Códigos de respuesta de error comunes

  • 403: Prohibido - El usuario no pertenece a la organización
  • 404: No se encontró

Parámetros de la respuesta

Parámetro Tipo Descripción
workspace secuencia ID del espacio de trabajo que realiza la acción.
provider_id secuencia Identificador único del proveedor.
created secuencia Fecha de creación.
texto secuencia Descripción de la acción de registro de proveedor.
level integer Nivel de la acción de registro de proveedor.
updated array Fecha de la actualización.
id secuencia Identificador único del proveedor.
esquema secuencia URL del esquema del registro de proveedor.

Cuerpo de respuesta

 [
    {
       provider_id: "72626gg12d-38b0-4867-b7a3-1af7b83d4792",
       level: 40,
       text: "Amazon Web Services Management Console was accessed",
       created: "2018-10-22 07:30:47.808486",
       updated: "2018-10-22 07:30:47.808621",
       role: "arn:aws:iam::636588615608:role/ElasticBox_Access",
       workspace: "thomasbroadwell",
       request_id: "e09360e1-7738-4cd9-91f2-dhh7883253fv",
       operation: "console_access",
       id: "231373e4-ab8f-4c28-8ba6-i981fhgw6923gs9",
       schema: "http://elasticbox.net/schemas/provider-log"
    },
    {
       provider_id: "8132cc1d-38b0-4867-b1hsh-1af7b83d4792",
       level: 40,
       text: "Image ami-2051294a in location us-east-1 added successfully.",
       created: "2018-10-15 19:10:57.765608",
       updated: "2018-10-15 19:10:57.766848",
       workspace: "msa_service_account1",
       request_id: "77aac7887c1-1655-4e09-a500-0ccf83161eec",
       operation: "sync",
       id: "b87672c001d-64c4-4103-ac0b-92927373f",
       schema: "http://elasticbox.net/schemas/provider-log"
    }
 ]

GET /services/providers/{provider_id}/unregisted-instances

Recupera una lista de instancias no registradas que se encuentran en un proveedor cuando se proporciona la ID del proveedor.

URL

Estructura

[GET] /services/providers/{provider_id}/unregisted-instances

Ejemplo

GET https://cam.ctl.io/services/providers/338f38dc-e667-47e0-9026-b253138f109e/unregisted-instances

Solicitud

Encabezados

Content-Type: application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Parámetro Tipo Descripción Req.
provider_id secuencia La ID única que se proporciona a cada proveedor.

Respuesta

Códigos de respuesta normales

  • 200 Aceptado

Códigos de respuesta de error comunes

  • 403: Prohibido - El usuario no pertenece a la organización
  • 404: No se encontró

Parámetros de la respuesta

Parámetro Tipo Descripción
perfil object Perfil de la instancia (el objeto de perfil depende del proveedor; tiene un subobjeto diferente)
provider_id secuencia Identificador único del proveedor de la instancia.
nombre secuencia Nombre de instancia.
created secuencia Fecha de creación.
deleted secuencia Fecha de eliminación lógica.
tipo secuencia Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
server_info object IP pública y privada y DNS público de la instancia.
updated array Fecha de la actualización.
power_state secuencia Puede ser running (ejecutándose) o stopped (detenido).
organización secuencia Organización a la que pertenece la instancia.
external_id secuencia ID externa de la instancia.
id secuencia Identificador único de la instancia.
esquema secuencia URL del esquema de la instancia sin registrar.

Cuerpo de respuesta

  [
     {
       profile: {
       location: "us-west-2",
       service: "cloudtrail",
       schema: "http://elasticbox.net/schemas/aws/native-service/profile"
       },
       schema: "http://elasticbox.net/schemas/unregistered-instance",
       provider_id: "34g4-38b0-4867-b7a3-a8827f662g1b",
       description: "S3 Bucket: partsultd-cloudtrail",
       created: "2018-09-24 16:10:06.198406",
       deleted: null,
       type: "Native Service",
       server_info: { },
       updated: "2018-09-24 16:22:18.000760",
       stack_id: null,
       autoscaling_group: null,
       power_state: "running",
       organization: "mission-field",
       external_id: "MissionField-Mgmt",
       id: "451873d3-07cb-450d-b20d-183g3189d2001f",
       name: "PartsUltdAPILogs-Mgmt"
     }
  ]

POST /services/providers/{provider_id}/images

Agrega una nueva imagen de máquina a un proveedor cuando se proporciona la ID del proveedor. Solo compatible con AWS y Azure.

URL

Estructura

[POST] /services/providers/{provider_id}/images

Ejemplo

POST https://cam.ctl.io/services/providers/338f38dc-e667-47e0-9026-b253138f109e/images

Solicitud

Encabezados

Content-Type: application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Parámetro Tipo Descripción Req.
provider_id secuencia La ID única que se proporciona a cada proveedor.

Parámetros del cuerpo de la solicitud

Parámetro Tipo Descripción
ubicación secuencia Región de la imagen.
nombre secuencia Nombre de la imagen.
descripción secuencia Descripción de la imagen.

Cuerpo de la solicitud

{
   "location":"us-east-1",
   "name":"ami-3275ee5b",
   "description":"New Image Description"
}

Respuesta

Códigos de respuesta normales

  • 202 Aceptado

Códigos de respuesta de error comunes

  • 400: Solicitud incorrecta: solicitud ausente, incompleta o con propiedades no válidas (detalles proporcionados dentro del cuerpo)
  • 403: Prohibido - El usuario no pertenece a la organización
  • 404: No se encontró

DELETE /services/providers/{provider_id}/images/{machine_image_id}

Elimina una imagen de máquina existente cuando se proporciona la ID del proveedor y la ID de la imagen de máquina.

URL

Estructura

[DELETE] /services/providers/{provider_id}/images/{machine_image_id}

Ejemplo

DELETE https://cam.ctl.io/services/providers/338f38dc-e667-47e0-9026-b253138f109e/images/b253138f109e?location=us-east-1

Solicitud

Encabezados

Content-Type: application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Parámetro Tipo Descripción Req.
provider_id secuencia La ID única que se proporciona a cada proveedor.

Parámetros del cuerpo de la solicitud

Parámetro Tipo Descripción
ubicación secuencia Región de la imagen de máquina que se va a eliminar.

Respuesta

Códigos de respuesta normales

  • 202 Aceptado

Códigos de respuesta de error comunes

  • 400: Solicitud incorrecta: solicitud ausente, incompleta o con propiedades no válidas (detalles proporcionados dentro del cuerpo)
  • 403: Prohibido - El usuario no pertenece a la organización
  • 404: No se encontró

GET /services/providers/{provider_id}/search/images"

Elimina una imagen de máquina existente cuando se proporciona la ID del proveedor y la ID de la imagen de máquina.

URL

Estructura

[GET] GET /services/providers/{provider_id}/search/images

Ejemplo

GET https://cam.ctl.io/services/providers/de5524a3-94f4-406b-a878-c9600bf3ed1a/search/images?publisher=4psa&offer=voipnow

Solicitud

Encabezados

Content-Type: application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Parámetro Tipo Descripción Req.
provider_id secuencia La ID única que se proporciona a cada proveedor.
publicador secuencia El número único del publicador No
oferta secuencia El número de la oferta No

Respuesta

Si ningún publicador está en la cadena de consulta

{
 "publishers": [
    "128technology",
    "1e",
    "4psa",
    "5nine-software-inc",
    "7isolutions",
    "a10networks",
    "a10_networks-5255398",
    ...
 }

si el editor tiene ofertas

{
  offers: [
    "voipnow"
  ]
}

Códigos de respuesta normales

  • 202 Aceptado

Códigos de respuesta de error comunes

  • 400: Solicitud incorrecta - Operación no admitida para XXXXXXXXXXX
  • 500: Error interno del servidor - Error crítico al procesar la solicitud XXXXXXXXXXX
  • 404: No encontrado - No se puede encontrar el proveedor con la ID XXXXXXXXXXX

Comunicarse con soporte de Cloud Application Manager

Lamentamos que esté teniendo problemas en el Gestor de aplicaciones en la nube. Revise los consejos para solucionar problemas o comuníquese con soporte de Cloud Application Manager para proporcionar detalles y capturas de pantalla de ser posible.

Para problemas relacionados con las llamadas API, envíe el cuerpo de la solicitud junto con los detalles del problema.

En el caso de error de casilla, comparta la casilla en el espacio de trabajo en el que su organización y Cloud Application Manager pueden ingresar y adjunte los registros.

  • Linux: SSH y busque el registro en /var/log/elasticbox/elasticbox-agent.log
  • Windows: RDP dentro de la instancia para ubicar el registro en ProgramDataElasticBoxLogselasticbox-agent.log

API para centros de costos

Gestione centros de costos

Recursos Descripción
POST /services/costcenters Crear un centro de costos.
GET /services/costcenters/{costcenter_id} Recupera un centro de costos existente.
PUT /services/costcenters/{costcenter_id} Actualiza un centro de costos existente.
DELETE /services/costcenters/{costcenter_id} Elimina un centro de costos existente.

POST /services/costcenters

Crea un nuevo centro de costos y obtiene el centro de costos creado.

URL

Estructura

[POST] /services/costcenters

Ejemplo

[POST] https://cam.ctl.io/services/costcenters

Solicitud

Encabezados

Content-Type: application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

  • Ninguno

Parámetros del cuerpo de la solicitud

Nombre Tipo Descripción Req.
nombre secuencia Nombre del centro de costos.
organización secuencia Nombre de la organización con acceso al centro de costos.
esquema secuencia Esquema del centro de costos. Siempre “http://elasticbox.net/schemas/costcenter”
members array Lista de las ID de los miembros del centro de costos como administradores. No
Parámetros de lista de miembros

Un elemento de la lista members (miembros) requiere 3 parámetros:

Parámetro Tipo Descripción Req.
id secuencia Puede ser una ID de espacio de trabajo o un DN de grupo de LDAP.
rol secuencia Siempre es administrator (administrador). No
tipo secuencia Puede ser workspace (espacio de trabajo) (predeterminado) o LDAP. No
{
    "name": "Cost Center example",
    "organization": "camdemo",
    "schema": "http://elasticbox.net/schemas/costcenter",
    "members":[{"id":"camdemo"}]
}

Respuesta

Códigos de respuesta normales

  • 201 Creado

Códigos de respuesta de error comunes

  • 400 Solicitud incorrecta
  • 401 No autorizado

Encabezados

Content-Type: application/json
Content-Length: 489
Date: Thu, 27 Dec 2018 09:57:34 GMT
Elasticbox-Release: 4.0.0

Parámetros de la respuesta

Parámetro Tipo Descripción
clc_alias secuencia Alias de la cuenta del centro de costos en la organización.
created secuencia Fecha de creación. Ejemplo: “2015-07-02 10:23:47.748740”
deleted object Identifica si se elimina el centro de costos; null (nulo) para objetos existentes.
id secuencia Identificador único del centro de costos.
members array Lista de miembros de un centro de costos. Ver parámetros de los miembros
nombre secuencia Nombre del centro de costos
organización secuencia Organización a la que pertenece el centro de costos.
esquema secuencia URI del esquema. http://elasticbox.net/schemas/costcenter.
updated secuencia Fecha de la última actualización. Ejemplo: “2018-10-30 16:03:14.409029”
uri secuencia URI del centro de costos.

Cuerpo de respuesta

{
    "created": "2018-12-27 10:53:26.389183",
    "deleted": null,
    "id": "1072ca63-d84d-42f2-87a5-f09c72338eb1",
    "members": [
        {
            "type": "workspace",
            "role": "administrator",
            "id": "camdemo"
        },
    ],
    "name": "Cost Center example",
    "organization": "camdemo",
    "schema": "http://elasticbox.net/schemas/costcenter",
    "updated": "2018-12-27 10:53:26.389183",
    "uri": "/services/costcenters/1072ca63-d84d-42f2-87a5-f09c72338eb1"
}

GET /services/costcenters

Recupera un centro de costos existente.

URL

Estructura

[GET] /services/costcenters/{costcenter_id}

Ejemplo

[GET] https://cam.ctl.io/services/costcenters/1072ca63-d84d-42f2-87a5-f09c72338eb1

Solicitud

Encabezados

Content-Type: application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Nombre Tipo Descripción Req.
costcenter_id secuencia ID del centro de costos.

Parámetros del cuerpo de la solicitud

  • Ninguno

Respuesta

Códigos de respuesta normales

  • 200 Aceptar

Códigos de respuesta de error comunes

  • 400 Solicitud incorrecta
  • 401 No autorizado
  • 404 No encontrado

Parámetros de la respuesta

Parámetro Tipo Descripción
clc_alias secuencia Alias de la cuenta del centro de costos en la organización.
created secuencia Fecha de creación. Ejemplo: “2015-07-02 10:23:47.748740”
deleted object Identifica si se elimina el centro de costos.
id secuencia Identificador único del centro de costos.
members array Lista de miembros de un centro de costos. Ver parámetros de los miembros
nombre secuencia Nombre del centro de costos
organización secuencia Organización a la que pertenece el centro de costos.
esquema secuencia URI del esquema. http://elasticbox.net/schemas/costcenter.
updated secuencia Fecha de la última actualización. Ejemplo: “2018-10-30 16:03:14.409029”
uri secuencia URI del centro de costos.

Cuerpo de respuesta

{
    "updated": "2018-10-30 16:03:14.409029",
    "name": "Cost Center example",
    "created": "2015-07-02 10:23:47.748740",
    "deleted": null,
    "uri": "/services/costcenters/1072ca63-d84d-42f2-87a5-f09c72338eb1",
    "members": [
        {
            "type": "workspace",
            "role": "administrator",
            "id": "camdemo"
        },
    ],
    "clc_alias": "A73B",
    "organization": "camdemo",
    "id": "1072ca63-d84d-42f2-87a5-f09c72338eb1",
    "schema": "http://elasticbox.net/schemas/costcenter"
}

PUT /services/costcenters

Actualiza uno o varios valores en un centro de costos existente.

Nota:
Tenga cuidado con este comando porque puede agregar o eliminar algunos valores, dependiendo de si están incluidos o no como parámetro de la solicitud. Recomendamos obtener primero estos datos con el comando GET y luego hacer cambios sobre ellos.

Preste atención a valores como members (miembros), que se agregarán o eliminarán si existen o no en el parámetro de la solicitud.

URL

Estructura

[PUT] /services/costcenters/{costcenter_id}

Ejemplo

[PUT] https://cam.ctl.io/services/costcenters/1072ca63-d84d-42f2-87a5-f09c72338eb1

Solicitud

Encabezados

Content-Type: application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Nombre Tipo Descripción Req.
costcenter_id secuencia ID del centro de costos.

Parámetros del cuerpo de la solicitud

Nombre Tipo Descripción Req.
id secuencia Identificador único del centro de costos.
members array Lista de miembros del centro de costos. Ver parámetros de los miembros
nombre secuencia Nombre del centro de costos.
organización secuencia Organización a la que pertenece el centro de costos.
esquema secuencia URI del esquema. http://elasticbox.net/schemas/costcenter.
icon_metadata secuencia Icono utilizado para la cuenta del centro de costos. No

Nota:
Tenga cuidado con este comando porque algunos valores como members (miembros) se agregarán o eliminarán si existen o no en el parámetro de la solicitud. Para que no se elimine un miembro existente, solo tiene que proporcionar su ID de miembro.

{
    "id":"1072ca63-d84d-42f2-87a5-f09c72338eb1",
    "name":"Cost Center example",
    "organization":"camdemo",
    "schema":"http://elasticbox.net/schemas/costcenter",
    "members":[{"id":"camdemo"}]
}

Respuesta

Códigos de respuesta normales

  • 200 Aceptar

Códigos de respuesta de error comunes

  • 400 Solicitud incorrecta
  • 401 No autorizado
  • 404 No encontrado

Encabezados

Content-Type: application/json
Content-Length: 489
Date: Thu, 27 Dec 2018 09:57:34 GMT
Elasticbox-Release: 4.0.0

Parámetros de la respuesta

  • Ninguno

Cuerpo de respuesta

DELETE /services/costcenters

Elimina un centro de costos existente del usuario autenticado.

URL

Estructura

[DELETE] /services/costcenters/{costcenter_id}

Ejemplo

[DELETE] https://cam.ctl.io/services/costcenters/1072ca63-d84d-42f2-87a5-f09c72338eb1

Solicitud

Encabezados

Content-Type: application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Nombre Tipo Descripción Req.
costcenter_id secuencia ID del centro de costos.

Parámetros del cuerpo de la solicitud

  • Ninguno

Respuesta

Códigos de respuesta normales

  • 204 Aceptar - Sin contenido

Códigos de respuesta de error comunes

  • 401 No autorizado
  • 404 No encontrado

Parámetros de la respuesta

  • Ninguno

Cuerpo de respuesta

  • Ninguno

API para organizaciones

Gestione una organización

Recursos Descripción
GET /services/organizations/{organization_name} Obtiene el documento de la organización.
GET /services/organizations/{organization_name}/boxes Obtiene las casillas de la organización proporcionada.
GET /services/organizations/{organization_name}/instances Obtiene las instancias de la organización proporcionada.
GET /services/organizations/{organization_name}/providers Get the providers of the given organization.
GET /services/organizations/{organization_name}/workspaces Obtiene los espacios de trabajo de la organización proporcionada.
PUT /services/organizations/{organization_name} Actualiza una organización existente.
PUT /organizations/{organization_name}/sync_groups Pone una solicitud en cola para sincronizar grupos de LDAP.

GET /services/organizations/{organization_name}

Obtiene el esquema de una organización proporcionada.

URL

Estructura

[GET] /services/organizations/{organization_name}

Ejemplo

GET https://cam.ctl.io/services/organizations/customer_org

Solicitud

Encabezados

Content-Type: application/json
Authorization: Bearer your_json_web_token
ElasticBox-Release: 4.0

Parámetros del URI

Parámetro Tipo Descripción Req.
organization_name secuencia El nombre de la organización.

Respuesta

Códigos de respuesta normales

  • 200 Aceptar

Códigos de respuesta de error comunes

  • 401: No autorizado - Cookie o token de acceso no válido
  • 403: Prohibido - El usuario no pertenece a la organización
  • 404: No encontrado - No se ha encontrado ninguna organización con el nombre proporcionado

Parámetros de la respuesta

Parámetro Tipo Descripción
esquema secuencia URI del esquema de la organización: //elasticbox.net/schemas/organization
nombre secuencia Nombre de la organización
icon secuencia URI del ícono de la organización
updated secuencia Fecha de la última actualización
created secuencia Fecha de creación
setup boolean Esto es de solo lectura. Indica que el dispositivo del Gestor de aplicaciones en la nube está configurado y listo para su uso.
administrators array Lista de usuarios que pueden administrar la organización.
domains secuencia Dominios que forman parte de la organización.
autenticación object Lista de métodos de autenticación para permitir el inicio de sesión único en la organización. Contiene las siguientes propiedades:
  • github: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • google: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • password: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • ldap: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • ldap_config: objeto que contiene la configuración del servicio LDAP:
    • ldap_group_sync: booleano. De forma predeterminada, es false (falso). Especificar como true (verdadero) para habilitar la sincronización con grupos de LDAP.
    • sources: Matriz de fuentes LDAP. Cada fuente tiene las siguientes propiedades:
      • host: Required. La secuencia identifica el nombre del host o la dirección IP del servicio de LDAP.
      • groups_dn: la secuencia especifica un nombre de grupo completo.
      • group_dn_filter: la secuencia define una entidad en el servidor LDAP. Todos los grupos se sincronizan como elementos secundarios de esta entidad.
      • email_field: la secuencia especifica el nombre del campo de email por el cual se buscan usuarios. Normalmente, este campo se llama email.
      • ldap_search_password: la secuencia especifica la contraseña de la cuenta de servicio de LDAP para buscar usuarios que intentan iniciar sesión.
      • ldap_search_usuario: la secuencia especifica el nombre de usuario de la cuenta de servicio de LDAP para buscar usuarios que intentan iniciar sesión.
    ldap_last_sync_completed secuencia Marca de tiempo de la última sincronización exitosa de grupo de LDAP, por ejemplo, 2015-04-06 14:28:12.874910. El valor es nulo si ldap_group_sync está configurado como falso.
    ldap_groups array Lista de objetos, cada uno de los cuales es un grupo de LDAP. Cada grupo tiene dos propiedades:
  • dn: identificador de la secuencia para el grupo.
  • name: nombre de secuencia mostrado en la interfaz web del espacio de trabajo.
  • proveedores array Lista de proveedores de nube que la organización puede permitir para registrar e implementar. Cada tipo de proveedor tiene las siguientes propiedades habilitadas:
  • Valor booleano de true (verdadero) si está habilitado, o false (falso) si no.
  • type: valores de secuencia de los proveedores de nube admitidos: Amazon Web Services, Openstack, VMWare vSphere, Google Compute, Microsoft Azure, Cloudstack, SoftLayer, VMware vCloud Director, Amazon Web Services GovCloud, Rackspace.
  • description: secuencia que enumera brevemente los servicios del proveedor de nube.
  • pricing: matriz de información de precios para tipos de instancias de proceso de Linux y Windows. Solo disponible para Amazon Web Services.
  • etiquetas array Lista de etiquetas aplicada en las instancias implementadas a proveedores de nube de la organización. Cada etiqueta tiene tres propiedades:
  • name: secuencia que se aplica como etiqueta.
  • type: la secuencia identifica el tipo de etiqueta, sea un objeto del gestor de aplicaciones en la nube o uno personalizado. Los valores permitidos son Box (casilla), Workspace (espacio de trabajo), Provider (proveedor), Environment (entorno), Email, User ID (ID de usuario), Service Instance ID (ID de instancia de servicio), Service ID (ID de servicio), Workspace ID (ID de espacio de trabajo), Instance ID (ID de instancia), Custom (personalizado).
  • valor: Valor de secuencia null (nulo) para los objetos del Gestor de aplicaciones en la nube. Para etiquetas personalizadas, se debe establecer el valor utilizando esta propiedad.
  • webhooks array Lista de webhooks que se integran con la organización.

    Cuerpo de respuesta

    {
        "remedy_account_id": "CPY000000115554",
        "features": {
            "net_x": true,
            "alm": true,
            "monitoring": true,
            "managed_provider": true,
            "show_unregistered_resources": true,
            "sync_corporate_groups": false,
            "aws_reseller": true,
            "ignore_velocity_templates": true,
            "safehaven_dr": false,
            "reporting": false,
            "ucpe": false,
            "managed_clc_provider": true,
            "delegate_managed_os": true,
            "custom_pricing": false,
            "analytics": true,
            "provider_sharing": true,
            "validate_emails": true,
            "safehaven_migration": false,
            "azure_reseller": true,
            "onboard_checklist": false,
            "aware_duplicate_arns": false
        },
            "providers": [
                {
                    "enabled": true,
                    "type": "CenturyLink",
                    "description": "Manage cloud hosting, Linux and Windows machines",
                    "pricing": []
                },
                {
                    "enabled": true,
                    "type": "CenturyLink DCC Foundation",
                    "description": "Manage cloud hosting, Linux and Windows machines.",
                    "pricing": []
                },
                {
                    "enabled": true,
                    "type": "CenturyLink DCC",
                    "pricing": [],
                    "description": "Manage cloud hosting, Linux and Windows machines"
                },
                {
                    "enabled": true,
                    "type": "Microsoft Azure",
                    "pricing": [],
                    "description": "Manage Microsoft services using Azure Resource Manager"
                },
                {
                    "enabled": true,
                    "type": "Amazon Web Services",
                    "description": "Manage EC2, S3, Dynamo DB, and RDS instances",
                    "pricing": []
                },
                {
                    "enabled": true,
                    "type": "Openstack",
                    "description": "Manage cloud hosting, Linux and Windows machines",
                    "pricing": []
                },
                {
                    "enabled": true,
                    "type": "VMware vSphere",
                    "description": "Manage cloud hosting, Linux and Windows machines",
                    "pricing": []
                },
                {
                    "enabled": true,
                    "type": "Google Compute",
                    "description": "Manage cloud hosting and Linux machines",
                    "pricing": []
                },
                {
                    "enabled": true,
                    "type": "Azure Classic",
                    "description": "Manage compute services for Windows and Linux machines.",
                    "pricing": []
                },
                {
                    "enabled": true,
                    "type": "Cloudstack",
                    "description": "Manage cloud hosting, Linux and Windows machines",
                    "pricing": []
                },
                {
                    "enabled": true,
                    "type": "SoftLayer",
                    "description": "Manage compute services for Windows and Linux machines.",
                    "pricing": []
                },
                {
                    "enabled": true,
                    "type": "Rackspace",
                    "description": "Manage cloud hosting and Linux machines.",
                    "pricing": []
                },
                {
                    "enabled": true,
                    "type": "VMware vCloud Director",
                    "description": "Manage cloud hosting, Linux and Windows machines.",
                    "pricing": []
                },
                {
                    "enabled": true,
                    "type": "Dimension Data",
                    "description": "Manage cloud hosting, Linux and Windows machines",
                    "pricing": []
                }
            ],
        "account_installed_product": "******",
        "clc_alias": "*****",
        "plugins": [],
        "account_status": "Active",
        "vantive_id": "*******",
        "display_name": "MissionField LLC",
        "billing_account_number": "*******",
        "theme": {
            "logo": "/services/blobs/download/58888fc42364025f58d42b9a/mission-field.png",
            "accent": null,
            "css": "/services/blobs/download/58888fd3c571007a8af06207/mission-field.css"
        },
        "authentication": {
            "password": true,
            "google": true,
            "saml": false,
            "saml_config": {},
            "github": true,
            "ldap": true,
            "clc": false,
            "ldap_config": {
                "ldap_group_sync": true,
                "sources": [
                    {
                        "host": "ldap://ldap.***********.com",
                        "ldap_search_password": "************"
                    }
                ]
            }
        },
        "itsm": {
            "servicenow": {
                "enabled": false
            }
        },
        "default_costcenter": "c3195962-4c70-4ad6-a17a-189a5579a45a",
        "ldap_groups": [],
        "schema": "http://elasticbox.net/schemas/organization",
        "updated": "2018-10-25 15:48:03.290547",
        "account_type": "Billable",
        "tags": [
            {
                "type": "Box",
                "name": "box",
                "value": null
            },
            {
                "type": "Email",
                "name": "email",
                "value": null
            }
        ],
        "deleted": null,
        "ldap_last_sync_completed": null,
        "domains": [
            "**************"
        ],
        "members": [
            {
                "role": "administrator",
                "type": "workspace",
                "id": "********"
            },
            {
                "type": "workspace",
                "role": "administrator",
                "id": "**************"
            },
            {
                "role": "administrator",
                "type": "ldap",
                "id": "CN=Cloud Application Manager Support,OU=Internal Server Security Groups,OU=******,OU=******,OU=ManagedHosting,DC=na,DC=msmps,DC=net"
            }
        ],
        "icon": "/services/blobs/download/58888fc42364025f58d42b9a/mission-field.png",
        "federated_to": [
            "centurylink",
            "ctlops"
        ],
        "name": "mission-field",
        "created": "2017-01-25 11:11:13.254512",
        "setup": true,
        "release": "4.0"
    }
    

    GET /services/organizations/{organization_name}/boxes

    Obtenga las casillas en la organización proporcionada.

    URL

    Estructura

    [GET] /services/organizations/{organization_name}/boxes
    

    Ejemplo

    GET https://cam.ctl.io/services/organizations/centurylink/boxes
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Nombre Tipo Descripción Req.
    organization_name Secuencia El nombre de la organización.

    Respuesta

    Código normal

    • 200 Aceptar

    Códigos de error

    • 401: No autorizado - Cookie o token de acceso no válido
    • 403: Prohibido - El usuario no pertenece a la organización
    • 404 - No encontrado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    esquema secuencia URI del esquema de la casilla: //elasticbox.net/schemas/boxes
    nombre secuencia Nombre de la casilla de la organización.
    id secuencia Número de identificación de la casilla de la organización.
    auto_update boolean Actualiza automáticamente la casilla si se actualiza cualquier requisito relacionado.
    updated secuencia Fecha de la última actualización.
    created secuencia Fecha de creación.
    deleted secuencia Fecha de eliminación.
    perfil array Muestra la información de perfil de la casilla.
    members array Lista de usuarios que pueden acceder a esta casilla.
    organización secuencia Muestra el nombre de la organización.
    provider_id secuencia Dice a qué proveedor pertenece esta casilla.
    uri secuencia Un URL del servicio de API que permite recuperar los datos de esta casilla directamente mediante una solicitud GET.
    readme array Lista de la información sobre la documentación de este servicio de API.
    owner secuencia Muestra el propietario de esta casilla.
    visibilidad strings Indica la visibilidad de la casilla: para el público, el espacio de trabajo o la organización únicamente.
    variables array Una lista de las variables definidas en la casilla.
    reclamos array Una lista de los reclamos definidos en la casilla.

    Cuerpo de respuesta

      {
        "profile": {
          "datacenter": "va1",
          "group": [
            "Default Group"
          ],
          "network": "vlan_3135_10.128.235",
          "server_type": "Standard",
          "pricing_info": {
            "estimated_monthly": 2592000000,
            "provider_type": "CenturyLink",
            "hourly_price": 3600000,
            "factor": 100000000
          },
          "disks": [],
          "cpus": 1,
          "public_ip": false,
          "instances": 1,
          "template": "CENTOS-7-64-TEMPLATE",
          "memory": 2,
          "managed_os": false,
          "schema": "http://elasticbox.net/schemas/centurylink/compute/profile"
        },
        "provider_id": "338f38dc-e667-47e0-9026-b253138f109e",
        "automatic_updates": "off",
        "name": "default-small-va1",
        "created": "2018-08-21 20:26:17.273033",
        "deleted": null,
        "variables": [],
        "updated": "2018-08-21 20:26:17.273033",
        "visibility": "workspace",
        "uri": "/services/boxes/55c6aad7-393c-439e-94a0-88108ae1ee76",
        "readme": {
          "url": "#cam-platform-services/resources/default-box-overview",
          "upload_date": "2018-08-21 20:26:17.272359",
          "length": 1307,
          "content_type": "text/x-markdown"
        },
        "members": [],
        "claims": [
          "small",
          "linux"
        ],
        "owner": "cam3",
        "organization": "mission-field",
        "id": "55c6aad7-393c-439e-94a0-88108ae1ee76",
        "schema": "http://elasticbox.net/schemas/boxes/policy"
      }
    

    GET /services/organizations/{organization_name}/instances

    Obtenga el esquema de instancias en la organización proporcionada.

    URL

    Estructura

    [GET] /services/organizations/{organization_name}/instances
    

    Ejemplo

    GET https://cam.ctl.io/services/organizations/customer_org/instances
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Nombre Tipo Descripción Req.
    organization_name Secuencia El nombre de la organización.

    Respuesta

    Código normal

    • 200 Aceptar

    Códigos de error

    • 401: No autorizado - Cookie o token de acceso no válido
    • 403: Prohibido - El usuario no pertenece a la organización
    • 404: No se encontró

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    esquema secuencia URI del esquema de la organización: //elasticbox.net/schemas/instance
    nombre secuencia Nombre de instancia
    id secuencia Identificador de la instancia.
    updated secuencia Fecha de la última actualización
    created secuencia Fecha de creación
    auto_update boolean Actualiza automáticamente la casilla si se actualiza cualquier requisito relacionado.
    box secuencia Identificador de la última casilla implementada.
    casillas array Una lista de las casillas definidas en el ciclo de vida de la instancia.
    bindings array Lista de enlaces especificados de la instancia.
    uri secuencia Un URL del servicio de API que permite recuperar los datos de esta casilla directamente mediante una solicitud GET.
    owner secuencia Muestra el propietario de esta casilla.
    state secuencia El último estado de la instancia.
    members array Lista de usuarios que pueden acceder a esta casilla.
    servicio object Un objeto que contiene información sobre el servicio de la instancia.
    policy_box object Un objeto que incluye la política de la casilla definida para la instancia.

    Cuerpo de respuesta

        {
            "box": "c2be22d3-22bf-4694-8a6d-e2efe3dceebd",
            "bindings": [],
            "updated": "2018-08-22 13:32:51.728997",
            "automatic_updates": "off",
            "policy_box": {
                "profile": {
                    "datacenter": "va1",
                    "group": [
                        "Default Group"
                    ],
                    "network": "vlan_3135_10.128.235",
                    "server_type": "Standard",
                    "pricing_info": {
                        "estimated_monthly": 5388004080,
                        "factor": 100000000,
                        "hourly_price": 7483339,
                        "provider_type": "CenturyLink"
                    },
                    "disks": [],
                    "cpus": 2,
                    "public_ip": false,
                    "instances": 1,
                    "template": "CENTOS-7-64-TEMPLATE",
                    "memory": 4,
                    "managed_os": false,
                    "schema": "http://elasticbox.net/schemas/centurylink/compute/profile"
                },
                "provider_id": "338f38dc-e667-47e0-9026-b253138f109e",
                "automatic_updates": "off",
                "name": "management-appliance-va1",
                "deleted": null,
                "variables": [],
                "visibility": "workspace",
                "owner": "cam3",
                "members": [],
                "organization": "mission-field",
                "readme": {
                    "url": "#cam-platform-services/resources/default-box-overview",
                    "upload_date": "2018-08-22 13:16:15.650210",
                    "length": 1307,
                    "content_type": "text/x-markdown"
                },
                "claims": [
                    "centos7",
                    "linux"
                ],
                "id": "01bf237e-2e73-416c-a72b-d94ea10d1c2e",
                "schema": "http://elasticbox.net/schemas/boxes/policy"
            },
            "name": "managed-provider-appliance-va1",
            "service": {
                "type": "Linux Compute",
                "id": "eb-6okdo",
                "machines": [
                    {
                        "state": "done",
                        "name": "managed-provider-appliance-va1-6okdo-1",
                        "workflow": []
                    }
                ]
            },
            "tags": [
                "managed",
                "appliance"
            ],
            "variables": [
                {
                    "scope": "gateway.constants",
                    "type": "Text",
                    "value": "https://gateway.managedos.ctl.io",
                    "visibility": "internal",
                    "name": "managed_os_api_url"
                },
                {
                    "scope": "gateway.constants",
                    "type": "Text",
                    "visibility": "internal",
                    "value": "https://api.watcher.ctl.io/",
                    "name": "watcher_reg_url"
                }
            ],
            "created": "2018-08-22 13:16:15.687975",
            "boxes": [
                {
                    "schema": "http://elasticbox.net/schemas/boxes/script",
                    "updated": "2018-08-07 23:20:02.898885",
                    "automatic_updates": "off",
                    "requirements": [
                        "centos7",
                        "linux"
                    ],
                    "description": "CenturyLink Management Appliance",
                    "created": "2018-08-08 16:43:02.151411",
                    "icon_metadata": {
                        "image": "/services/blobs/download/58a21fb465eca605038edc67/centurylink-logo.svg",
                        "border": "#8CC63F",
                        "fill": "#ffffff"
                    },
                    "variables": [
                        {
                            "name": "WaitForCMDBRecon",
                            "required": true,
                            "visibility": "internal",
                            "value": "true",
                            "type": "Options",
                            "options": "true,false"
                        },
                        {
                            "required": true,
                            "type": "Text",
                            "name": "CMDB_MaxTries",
                            "value": "120",
                            "visibility": "internal"
                        }
                    ],
                    "visibility": "workspace",
                    "name": "CenturyLink Management Appliance",
                    "deleted": null,
                    "version": {
                        "box": "c2be22d3-22bf-4694-8a6d-e2efe3dceebd",
                        "number": {
                            "major": 0,
                            "minor": 5,
                            "patch": 5
                        },
                        "workspace": "keithhomco",
                        "description": "Limited support for no outbound connectivity scenarios (contact cam-msa@centurylink.com for details)"
                    },
                    "id": "fe257f92-2808-4c1a-aa1d-310a87e228b9",
                    "categories": [
                        "managed"
                    ],
                    "members": [
                        {
                            "role": "read",
                            "workspace": "mgd"
                        },
                        {
                            "role": "read",
                            "workspace": "managed6"
                        }
                    ],
                    "owner": "managed1",
                    "organization": "centurylink",
                    "readme": {
                        "url": "#cam-platform-services/blobs/download/593843b76d4c585793fe1fb9/readme",
                        "upload_date": "2017-06-07 18:19:35.185072",
                        "length": 2962,
                        "content_type": "text/x-markdown"
                    },
                    "events": {
                        "pre_install": {
                            "url": "/services/blobs/download/5b6a26565fc39f10a99fefaa/pre_install",
                            "length": 2170,
                            "destination_path": "scripts",
                            "content_type": "text/x-shellscript"
                        }
                    },
                    "draft_from": "7f1bd23f-14cf-4e44-a831-53716e0f20a8",
                    "icon": "/icons/boxes/c2be22d3-22bf-4694-8a6d-e2efe3dceebd"
                }
            ],
            "uri": "/services/instances/i-k2tj0y",
            "is_deploy_only": true,
            "state": "done",
            "members": [],
            "owner": "cam3",
            "operation": {
                "event": "deploy",
                "workspace": "cam3",
                "created": "2018-08-22 13:16:15.857029"
            },
            "id": "i-k2tj0y",
            "schema": "http://elasticbox.net/schemas/instance"
        }
    

    GET /services/organizations/{organization_name}/providers

    Obtenga el esquema de proveedores en la organización proporcionada.

    URL

    Estructura

    [GET] /services/organizations/{organization_name}/providers
    

    Ejemplo

    GET https://cam.ctl.io/services/organizations/centurylink/providers
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Nombre Tipo Descripción Req.
    organization_name Secuencia El nombre de la organización.

    Respuesta

    Código normal

    • 200 Aceptar

    Códigos de error

    • 401: No autorizado - Cookie o token de acceso no válido
    • 403: Prohibido - El usuario no pertenece a la organización
    • 404: No se encontró

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    esquema secuencia URI del esquema del proveedor: //elasticbox.net/schemas/providers
    nombre secuencia Define el nombre del proveedor.
    icon secuencia URI del ícono del proveedor.
    updated secuencia Fecha de la última actualización
    created secuencia Fecha de creación
    descripción secuencia Breve descripción del proveedor.
    uri secuencia Un URL del servicio de API que permite recuperar los datos de esta casilla directamente mediante una solicitud GET.
    state secuencia Muestra el último estado del proveedor.
    members array Lista de usuarios que pueden acceder a esta casilla.
    tipo secuencia Indica el tipo de proveedor.
    id secuencia Contiene la ID del proveedor.
    proveedores array Lista de proveedores de nube que la organización puede permitir para registrar e implementar. Cada tipo de proveedor tiene las siguientes propiedades habilitadas:
  • Valor booleano de true (verdadero) si está habilitado, o false (falso) si no.
  • type: valores de secuencia de los proveedores de nube admitidos: Amazon Web Services, Openstack, VMWare vSphere, Google Compute, Microsoft Azure, Cloudstack, SoftLayer, VMware vCloud Director, Amazon Web Services GovCloud, Rackspace.
  • description: secuencia que enumera brevemente los servicios del proveedor de nube.
  • pricing: matriz de información de precios para tipos de instancias de proceso de Linux y Windows. Solo disponible para Amazon Web Services.
  • owner secuencia Muestra el propietario de esta casilla.
    servicio object Un objeto que contiene información sobre el servicio de la instancia.

    Cuerpo de respuesta

      {
        "updated": "2018-09-28 21:18:17.691311",
        "description": "UMW Lab Account for CAM MSA Testing",
        "icon": "images/platform/centurylink.svg",
        "created": "2018-08-21 20:03:15.901180",
        "deleted": null,
        "uri": "/services/providers/338f38dc-e667-47e0-9026-b253138f109e",
        "name": "UMWC",
        "services": [
          {
            "name": "Linux Compute"
          },
          {
            "name": "Windows Compute"
          }
        ],
        "state": "ready",
        "members": [],
        "owner": "cam3",
        "type": "CenturyLink",
        "id": "338f38dc-e667-47e0-9026-b253138f109e",
        "schema": "http://elasticbox.net/schemas/centurylink/provider"
      }
    

    GET /services/organizations/{organization_name}/workspaces

    Obtenga el esquema de espacios de trabajo en la organización proporcionada.

    URL

    Estructura

    [GET] /services/organizations/{organization_name}/workspaces
    

    Ejemplo

    GET https://cam.ctl.io/services/organizations/centurylink/workspaces
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Nombre Tipo Descripción Req.
    organization_name Secuencia El nombre de la organización.

    Respuesta

    Código normal

    • 200 Aceptar

    Códigos de error

    • 401: No autorizado - Cookie o token de acceso no válido
    • 403: Prohibido - El usuario no pertenece a la organización
    • 404: No se encontró

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    last_name secuencia El apellido del usuario.
    favorites array Lista de usuarios u organizaciones seleccionados como favoritos.
    clc_alias secuencia Indica el alias de facturación de CenturyLink, si existe, para el espacio de trabajo.
    id secuencia El nombre de usuario en este espacio de trabajo.
    last_login secuencia La fecha del último inicio de sesión.
    add_provider boolean
    deploy_instance boolean
    tipo secuencia El tipo de usuario.
    email secuencia El email del usuario.
    esquema secuencia URI del esquema del proveedor: //elasticbox.net/schemas/providers
    updated secuencia Fecha de la última actualización
    take_tour boolean Indica si se ha realizado o no el paseo al iniciar sesión por primera vez.
    deleted secuencia La fecha de eliminación del usuario.
    costcenter secuencia El nombre proporcionado del centro de costos cuando se proporcionó el usuario.
    icon secuencia URI del ícono de usuario.
    group_dns array La lista de usuarios que se han configurado por Active Directory en una red local.
    email_validated_at secuencia La fecha en la que se validó al usuario.
    validate_email_id secuencia La ID de validación que se generó para el usuario.
    reset_password_id secuencia La ID de restablecimiento que se generó para el usuario.
    nombre secuencia El nombre proporcionado al usuario.
    created secuencia La fecha de creación del usuario.
    uri secuencia Un URL del servicio de API que permite recuperar los datos de esta casilla directamente mediante una solicitud GET.
    members array Si el tipo de usuario es “team” (equipo), muestra los espacios de trabajo a los que pertenece este usuario.
    organización secuencia El nombre de la organización a la que pertenece el usuario.

    Cuerpo de respuesta

      {
        "last_name": "1",
        "favorites": [
          {
            "type": "team_workspace",
            "id": "insightglobal4"
          }
        ],
        "clc_alias": "DMFC",
        "id": "missionfields1",
        "last_login": "2018-07-25 14:18:22.323786",
        "add_provider": true,
        "deploy_instance": true,
        "type": "personal",
        "email": "*****@*************.com",
        "schema": "http://elasticbox.net/schemas/workspaces/personal",
        "updated": "2018-07-25 14:24:05.510205",
        "take_tour": true,
        "deleted": null,
        "clc_username": null,
        "costcenter": "c3195962-4c70-4ad6-a17a-189a5579a45a",
        "icon": null,
        "group_dns": [],
        "email_validated_at": "2017-02-01 15:03:54.087863",
        "name": "MF User",
        "created": "2017-02-01 15:03:54.087863",
        "support_user_created": true,
        "uri": "/services/workspaces/missionfields1",
        "organization": "mission-field"
      }
    

    PUT /services/organizations/{organization_name}

    Actualiza una organización existente cuando se proporciona su nombre. Solo el administrador de la organización lo puede actualizar.

    URL

    Estructura

    [PUT] /services/organizations/{organization_name}
    

    Ejemplo

    PUT https://cam.ctl.io/services/organizations/{organization_name}
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Nombre Tipo Descripción Req.
    organization_name Secuencia El nombre de la organización.

    Cuerpo de la solicitud

    {
       "schema":"http://elasticbox.net/schemas/organization",
       "name":"elasticbox",
       "icon":"/services/blobs/download/5452705c3bbd224ef9541c41/elasticbox.png",
       "theme":null,
       "updated":"2015-04-06 14:28:12.874910",
       "created":"2014-02-14 15:12:21.526672",
       "setup":true,
       "administrators":[
          "ad",
          "al"
       ],
       "domains":[
          "cam.ctl.io"
       ],
       "authentication":{
          "github":false,
          "google":true,
          "ldap":true,
          "password":false,
          "username":null,
          "ldap_config":{
             "sources":[
                {
                   "host":"ldap://ldap.cam.ctl.io",
                   "email_field":"mail"
                }
             ]
          }
       },
       "features":{
          "admin_boxes":true,
          "cost_center":true,
          "custom_pricing":false,
          "onboard_checklist":false,
          "provider_sharing":true,
          "reporting":true
       },
       "providers":[
          {
             "enabled":true,
             "type":"Amazon Web Services",
             "description":"Manage EC2, ECS and Cloudformation instances",
             "pricing":[
                {
                   "platform":"Linux Compute",
                   "price":7000,
                   "region":"ap-southeast-2",
                   "flavor":"i2.8xlarge",
                   "schema":"http://elasticbox.net/schemas/aws/compute/pricing"
                },
                {
                   "platform":"Linux Compute",
                   "price":5,
                   "region":"us-east-1",
                   "flavor":"t2.micro",
                   "schema":"http://elasticbox.net/schemas/aws/compute/pricing"
                }
             ]
          },
          {
             "enabled":true,
             "type":"Openstack",
             "description":"Manage cloud hosting, Linux and Windows machines",
             "pricing":[
    
             ]
          },
          {
             "enabled":true,
             "type":"VMware vSphere",
             "description":"Manage cloud hosting, Linux and Windows machines",
             "pricing":[
    
             ]
          }
       ],
       "tags":[
          {
             "name":"workspace",
             "type":"Workspace",
             "value":null
          },
          {
             "name":"box",
             "type":"Box",
             "value":null
          }
       ],
       "cost_centers":[
          {
             "name":"test",
             "enforce":false,
             "quotas":[
                {
                   "allocated":[
    
                   ],
                   "cost":0,
                   "provider":"2bf1bd2c-b03d-460f-80da-647d26bdbcfe"
                },
                {
                   "cost":3000,
                   "provider":"5908ee9b-0c0a-4af6-8eef-2dc9f95d033a"
                }
             ],
             "workspaces":[
                "operations"
             ]
          }
       ],
       "webhooks":[
    
       ]
    }
    

    Parámetros de la solicitud

    Parámetro Tipo Descripción
    esquema secuencia URI del esquema de la organización: //elasticbox.net/schemas/organization
    nombre secuencia Nombre de la organización
    icon secuencia URI del ícono de la organización
    updated secuencia Fecha de la última actualización
    created secuencia Fecha de creación
    setup boolean Esto es de solo lectura. Indica que el dispositivo del Gestor de aplicaciones en la nube está configurado y listo para su uso.
    administrators array Lista de usuarios que pueden administrar la organización.
    domains secuencia Dominios que forman parte de la organización.
    autenticación object Lista de métodos de autenticación para permitir el inicio de sesión único en la organización. Contiene las siguientes propiedades:
  • github: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • google: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • password: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • ldap: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • ldap_config: objeto que contiene la configuración del servicio LDAP:
    • ldap_group_sync: booleano. De forma predeterminada, es false (falso). Especificar como true (verdadero) para habilitar la sincronización con grupos de LDAP.
    • sources: Matriz de fuentes LDAP. Cada fuente tiene las siguientes propiedades:
      • host: Required. La secuencia identifica el nombre del host o la dirección IP del servicio de LDAP.
      • groups_dn: la secuencia especifica un nombre de grupo completo.
      • group_dn_filter: la secuencia define una entidad en el servidor LDAP. Todos los grupos se sincronizan como elementos secundarios de esta entidad.
      • email_field: la secuencia especifica el nombre del campo de email por el cual se buscan usuarios. Normalmente, este campo se llama email.
      • ldap_search_password: la secuencia especifica la contraseña de la cuenta de servicio de LDAP para buscar usuarios que intentan iniciar sesión.
      • ldap_search_usuario: la secuencia especifica el nombre de usuario de la cuenta de servicio de LDAP para buscar usuarios que intentan iniciar sesión.
    ldap_last_sync_completed secuencia Marca de tiempo de la última sincronización exitosa de grupo de LDAP, por ejemplo, 2015-04-06 14:28:12.874910. El valor es nulo si ldap_group_sync está configurado como falso.
    ldap_groups array Lista de objetos, cada uno de los cuales es un grupo de LDAP. Cada grupo tiene dos propiedades:
  • dn: identificador de la secuencia para el grupo.
  • name: nombre de secuencia mostrado en la interfaz web del espacio de trabajo.
  • proveedores array Lista de proveedores de nube que la organización puede permitir para registrar e implementar. Cada tipo de proveedor tiene las siguientes propiedades:
  • enabled: Valor booleano de true (verdadero) si está habilitado, o false (falso) si no.
  • type: valores de secuencia de los proveedores de nube admitidos: Amazon Web Services, Openstack, VMWare vSphere, Google Compute, Microsoft Azure, Cloudstack, SoftLayer, VMware vCloud Director, Amazon Web Services GovCloud, Rackspace.
  • description: secuencia que enumera brevemente los servicios del proveedor de nube.
  • pricing: matriz de información de precios para tipos de instancias de proceso de Linux y Windows. Solo disponible para Amazon Web Services.
  • etiquetas array Lista de etiquetas aplicada en las instancias implementadas a proveedores de nube de la organización. Cada etiqueta tiene tres propiedades:
  • name: secuencia que se aplica como etiqueta.
  • type: la secuencia identifica el tipo de etiqueta, sea un objeto del gestor de aplicaciones en la nube o uno personalizado. Los valores permitidos son Box (casilla), Workspace (espacio de trabajo), Provider (proveedor), Environment (entorno), Email, User ID (ID de usuario), Service Instance ID (ID de instancia de servicio), Service ID (ID de servicio), Workspace ID (ID de espacio de trabajo), Instance ID (ID de instancia), Custom (personalizado).
  • valor: Valor de secuencia null (nulo) para los objetos del Gestor de aplicaciones en la nube. Para etiquetas personalizadas, se debe establecer el valor utilizando esta propiedad.
  • webhooks array Lista de webhooks que se integran con la organización.
    cost_centers array Lista de centros de costos. Cada centro de costos contiene las siguientes propiedades:
  • enforce: booleano. Si es true (verdadero), no se puede implementar una instancia si está por encima de la cuota.
  • name: Secuencia. Nombre del centro de costos.
  • workspaces: Matriz. Lista de nombres que pertenecen al centro de costos.
  • quotas: Lista de cuotas. Cada cuota contiene un objeto con las siguientes propiedades:
    • cost: Required. booleano. De forma predeterminada, es false (falso). Especificar como true (verdadero) para habilitar la sincronización con grupos de LDAP.
    • provider: Required. booleano. De forma predeterminada, es false (falso). Especificar como true (verdadero) para habilitar la sincronización con grupos de LDAP.
    • allocated: Matriz. Lista de instancias que contribuyen a la cuota actual. Cada instancia asignada tiene estas propiedades:
      • instance_id: Required. Secuencia. ID de la instancia.
      • instances: Required. Int. Número de instancias.
      • started: Required. Secuencia. Fecha en la que se implementó esta instancia.
      • flavor: Required. Secuencia. Tipo de instancia.
      • region: Required. Secuencia. Región donde se implementó.
      • service_type: Required. Secuencia. Tipo de servicio.
      • terminated: la secuencia especifica el nombre de usuario de la cuenta de servicio de LDAP para buscar usuarios que intentan iniciar sesión.
    • resources: objeto. Recursos de la cuota.
      • cpu: Required. Int. cantidad de unidades de CPU.
      • disk: Required. objeto. Un disco con estas propiedades:
        • quantity: Required. Secuencia. Cantidad de almacenamiento.
        • unit: Required. Secuencia. Mb, Gb o Tb.
      • ram: Required. Secuencia. RAM de la cuota.
        • quantity: Required. Secuencia. Cantidad de almacenamiento.
        • unit: Required. Secuencia. Mb o Gb.

    Respuesta

    Código normal

    • 200 Aceptar

    Códigos de error

    • 400: Solicitud incorrecta: solicitud ausente, incompleta o con propiedades no válidas (detalles proporcionados dentro del cuerpo)
    • 401: No autorizado - Cookie o token de acceso no válido
    • 403: Prohibido - El usuario no pertenece a la organización
    • 404: No se encontró
    • 409: Conflicto - La propiedad “actualizada” no coincide. (Haga una llamada GET a la API para recuperar la propiedad “actualizada” actual y usarla en una nueva solicitud PUT)

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    esquema secuencia URI del esquema de la organización: http://elasticbox.net/schemas/organization
    nombre secuencia Nombre de la organización
    icon secuencia URI del ícono de la organización
    updated secuencia Fecha de la última actualización
    created secuencia Fecha de creación
    setup boolean Esto es de solo lectura. Indica que el dispositivo del Gestor de aplicaciones en la nube está configurado y listo para su uso.
    administrators array Lista de usuarios que pueden administrar la organización.
    domains secuencia Dominios que forman parte de la organización.
    autenticación object Lista de métodos de autenticación para permitir el inicio de sesión único en la organización. Contiene las siguientes propiedades:
  • github: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • google: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • password: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • ldap: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • ldap_config: objeto que contiene la configuración del servicio LDAP:
    • ldap_group_sync: booleano. De forma predeterminada, es false (falso). Especificar como true (verdadero) para habilitar la sincronización con grupos de LDAP.
    • sources: Matriz de fuentes LDAP. Cada fuente tiene las siguientes propiedades:
      • host: Required. La secuencia identifica el nombre del host o la dirección IP del servicio de LDAP.
      • groups_dn: la secuencia especifica un nombre de grupo completo.
      • group_dn_filter: la secuencia define una entidad en el servidor LDAP. Todos los grupos se sincronizan como elementos secundarios de esta entidad.
      • email_field: la secuencia especifica el nombre del campo de email por el cual se buscan usuarios. Normalmente, este campo se llama email.
      • ldap_search_password: la secuencia especifica la contraseña de la cuenta de servicio de LDAP para buscar usuarios que intentan iniciar sesión.
      • ldap_search_usuario: la secuencia especifica el nombre de usuario de la cuenta de servicio de LDAP para buscar usuarios que intentan iniciar sesión.
    ldap_last_sync_completed secuencia Marca de tiempo de la última sincronización exitosa de grupo de LDAP, por ejemplo, 2015-04-06 14:28:12.874910. El valor es nulo si ldap_group_sync está configurado como falso.
    ldap_groups array Lista de objetos, cada uno de los cuales es un grupo de LDAP. Cada grupo tiene dos propiedades:
  • dn: identificador de la secuencia para el grupo.
  • name: nombre de secuencia mostrado en la interfaz web del espacio de trabajo.
  • proveedores array Lista de proveedores de nube que la organización puede permitir para registrar e implementar. Cada tipo de proveedor tiene las siguientes propiedades habilitadas:
  • Valor booleano de true (verdadero) si está habilitado, o false (falso) si no.
  • type: valores de secuencia de los proveedores de nube admitidos: Amazon Web Services, Openstack, VMWare vSphere, Google Compute, Microsoft Azure, Cloudstack, SoftLayer, VMware vCloud Director, Amazon Web Services GovCloud, Rackspace.
  • description: secuencia que enumera brevemente los servicios del proveedor de nube.
  • pricing: matriz de información de precios para tipos de instancias de proceso de Linux y Windows. Solo disponible para Amazon Web Services.
  • etiquetas array Lista de etiquetas aplicada en las instancias implementadas a proveedores de nube de la organización. Cada etiqueta tiene tres propiedades:
  • name: secuencia que se aplica como etiqueta.
  • type: la secuencia identifica el tipo de etiqueta, sea un objeto del gestor de aplicaciones en la nube o uno personalizado. Los valores permitidos son Box (casilla), Workspace (espacio de trabajo), Provider (proveedor), Environment (entorno), Email, User ID (ID de usuario), Service Instance ID (ID de instancia de servicio), Service ID (ID de servicio), Workspace ID (ID de espacio de trabajo), Instance ID (ID de instancia), Custom (personalizado).
  • valor: Valor de secuencia null (nulo) para los objetos del Gestor de aplicaciones en la nube. Para etiquetas personalizadas, se debe establecer el valor utilizando esta propiedad.
  • webhooks array Lista de webhooks que se integran con la organización.
    cost_centers array Lista de centros de costos. Cada centro de costos contiene las siguientes propiedades:
  • enforce: booleano. Si es true (verdadero), no se puede implementar una instancia si está por encima de la cuota.
  • name: Secuencia. Nombre del centro de costos.
  • workspaces: Matriz. Lista de nombres que pertenecen al centro de costos.
  • quotas: Lista de cuotas. Cada cuota contiene un objeto con las siguientes propiedades:
    • cost: Required. booleano. De forma predeterminada, es false (falso). Especificar como true (verdadero) para habilitar la sincronización con grupos de LDAP.
    • provider: Required. booleano. De forma predeterminada, es false (falso). Especificar como true (verdadero) para habilitar la sincronización con grupos de LDAP.
    • allocated: Matriz. Lista de instancias que contribuyen a la cuota actual. Cada instancia asignada tiene estas propiedades:
      • instance_id: Required. Secuencia. ID de la instancia.
      • instances: Required. Int. Número de instancias.
      • started: Required. Secuencia. Fecha en la que se implementó esta instancia.
      • flavor: Required. Secuencia. Tipo de instancia.
      • region: Required. Secuencia. Región donde se implementó.
      • service_type: Required. Secuencia. Tipo de servicio.
      • terminated: la secuencia especifica el nombre de usuario de la cuenta de servicio de LDAP para buscar usuarios que intentan iniciar sesión.
    • resources: objeto. Recursos de la cuota.
      • cpu: Required. Int. cantidad de unidades de CPU.
      • disk: Required. objeto. Un disco con estas propiedades:
        • quantity: Required. Secuencia. Cantidad de almacenamiento.
        • unit: Required. Secuencia. Mb, Gb o Tb.
      • ram: Required. Secuencia. RAM de la cuota.
        • quantity: Required. Secuencia. Cantidad de almacenamiento.
        • unit: Required. Secuencia. Mb o Gb.

    Cuerpo de respuesta

    {
       "schema":"http://elasticbox.net/schemas/organization",
       "name":"elasticbox",
       "icon":"/services/blobs/download/5452705c3bbd224ef9541c41/elasticbox.png",
       "theme":null,
       "updated":"2015-04-06 20:38:46.060399",
       "created":"2014-02-14 15:12:21.526672",
       "setup":true,
       "administrators":[
          "ad",
          "al",
          "ar"
       ],
       "domains":[
          "cam.ctl.io"
       ],
       "authentication":{
          "github":false,
          "google":true,
          "ldap":true,
          "password":false,
          "username":null,
          "ldap_config":{
             "sources":[
                {
                   "host":"ldap://ldap.cam.ctl.io",
                   "email_field":"mail"
                }
             ]
          }
       },
       "features":{
          "admin_boxes":true,
          "cost_center":true,
          "custom_pricing":false,
          "onboard_checklist":false,
          "provider_sharing":true,
          "reporting":true
       },
       "providers":[
          {
             "enabled":true,
             "type":"Amazon Web Services",
             "description":"Manage EC2, ECS and Cloudformation instances",
             "pricing":[
                {
                   "platform":"Linux Compute",
                   "price":7000,
                   "region":"ap-southeast-2",
                   "flavor":"i2.8xlarge",
                   "schema":"http://elasticbox.net/schemas/aws/compute/pricing"
                },
                {
                   "platform":"Linux Compute",
                   "price":5,
                   "region":"us-east-1",
                   "flavor":"t2.micro",
                   "schema":"http://elasticbox.net/schemas/aws/compute/pricing"
                }
             ]
          },
          {
             "enabled":true,
             "type":"Amazon Web Services GovCloud",
             "description":"Manage compute services in an isolated ITAR compliant AWS region.",
             "pricing":[
    
             ]
          },
          {
             "enabled":true,
             "type":"Rackspace",
             "description":"Manage cloud hosting and Linux machines.",
             "pricing":[
    
             ]
          }
       ],
       "tags":[
          {
             "name":"workspace",
             "type":"Workspace",
             "value":null
          },
          {
             "name":"box",
             "type":"Box",
             "value":null
          }
       ],
       "cost_centers":[
          {
             "name":"test",
             "enforce":false,
             "quotas":[
                {
                   "allocated":[
    
                   ],
                   "cost":0,
                   "provider":"2bf1bd2c-b03d-460f-80da-647d26bdbcfe"
                },
                {
                   "cost":3000,
                   "provider":"5908ee9b-0c0a-4af6-8eef-2dc9f95d033a"
                }
             ],
             "workspaces":[
                "operations"
             ]
          }
       ],
       "webhooks":[
    
       ]
    }
    

    PUT /organizations/{organization_name}/sync_groups

    Pone una solicitud en cola para sincronizar grupos de LDAP. La solicitud de sincronización, dependiendo de la cantidad de datos del servicio de LDAP, puede tardar unos minutos. La propiedad ldap_last_sync_completed se actualiza cuando la solicitud finaliza correctamente.

    URL

    Estructura

    [PUT] /organizations/{organization_name}/sync_groups
    

    Ejemplo

    PUT https://cam.ctl.io/organizations/{organization_name}/sync_groups
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Nombre Tipo Descripción Req.
    organization_name Secuencia El nombre de la organización.

    Respuesta

    Código normal

    • 202 Aceptado

    Códigos de error

    • 401: No autorizado - Cookie o token de acceso no válido
    • 404: No se encontró

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    esquema secuencia URI del esquema de la organización: //elasticbox.net/schemas/organization
    nombre secuencia Nombre de la organización
    icon secuencia URI del ícono de la organización
    updated secuencia Fecha de la última actualización
    created secuencia Fecha de creación
    setup boolean Esto es de solo lectura. Indica que el dispositivo del Gestor de aplicaciones en la nube está configurado y listo para su uso.
    administrators array Lista de usuarios que pueden administrar la organización.
    domains secuencia Dominios que forman parte de la organización.
    autenticación object Lista de métodos de autenticación para permitir el inicio de sesión único en la organización. Contiene las siguientes propiedades:
  • github: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • google: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • password: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • ldap: booleano. Si está habilitado, es true (verdadero), si no, es false (falso).
  • ldap_config: objeto que contiene la configuración del servicio LDAP:
    • ldap_group_sync: booleano. De forma predeterminada, es false (falso). Especificar como true (verdadero) para habilitar la sincronización con grupos de LDAP.
    • sources: Matriz de fuentes LDAP. Cada fuente tiene las siguientes propiedades:
      • host: Required. La secuencia identifica el nombre del host o la dirección IP del servicio de LDAP.
      • groups_dn: la secuencia especifica un nombre de grupo completo.
      • group_dn_filter: la secuencia define una entidad en el servidor LDAP. Todos los grupos se sincronizan como elementos secundarios de esta entidad.
      • email_field: la secuencia especifica el nombre del campo de email por el cual se buscan usuarios. Normalmente, este campo se llama email.
      • ldap_search_password: la secuencia especifica la contraseña de la cuenta de servicio de LDAP para buscar usuarios que intentan iniciar sesión.
      • ldap_search_usuario: la secuencia especifica el nombre de usuario de la cuenta de servicio de LDAP para buscar usuarios que intentan iniciar sesión.
    ldap_last_sync_completed secuencia Marca de tiempo de la última sincronización exitosa de grupo de LDAP, por ejemplo, 2015-04-06 14:28:12.874910. El valor es nulo si ldap_group_sync está configurado como falso.
    ldap_groups array Lista de objetos, cada uno de los cuales es un grupo de LDAP. Cada grupo tiene dos propiedades:
  • dn: identificador de la secuencia para el grupo.
  • name: nombre de secuencia mostrado en la interfaz web del espacio de trabajo.
  • proveedores array Lista de proveedores de nube que la organización puede permitir para registrar e implementar. Cada tipo de proveedor tiene las siguientes propiedades habilitadas:
  • Valor booleano de true (verdadero) si está habilitado, o false (falso) si no.
  • type: valores de secuencia de los proveedores de nube admitidos: Amazon Web Services, Openstack, VMWare vSphere, Google Compute, Microsoft Azure, Cloudstack, SoftLayer, VMware vCloud Director, Amazon Web Services GovCloud, Rackspace.
  • description: secuencia que enumera brevemente los servicios del proveedor de nube.
  • pricing: matriz de información de precios para tipos de instancias de proceso de Linux y Windows. Solo disponible para Amazon Web Services.
  • etiquetas array Lista de etiquetas aplicada en las instancias implementadas a proveedores de nube de la organización. Cada etiqueta tiene tres propiedades:
  • name: secuencia que se aplica como etiqueta.
  • type: la secuencia identifica el tipo de etiqueta, sea un objeto del gestor de aplicaciones en la nube o uno personalizado. Los valores permitidos son Box (casilla), Workspace (espacio de trabajo), Provider (proveedor), Environment (entorno), Email, User ID (ID de usuario), Service Instance ID (ID de instancia de servicio), Service ID (ID de servicio), Workspace ID (ID de espacio de trabajo), Instance ID (ID de instancia), Custom (personalizado).
  • valor: Valor de secuencia null (nulo) para los objetos del Gestor de aplicaciones en la nube. Para etiquetas personalizadas, se debe establecer el valor utilizando esta propiedad.
  • webhooks array Lista de webhooks que se integran con la organización.
    cost_centers array Lista de centros de costos. Cada centro de costos contiene las siguientes propiedades:
  • enforce: booleano. Si es true (verdadero), no se puede implementar una instancia si está por encima de la cuota.
  • name: Secuencia. Nombre del centro de costos.
  • workspaces: Matriz. Lista de nombres que pertenecen al centro de costos.
  • quotas: Lista de cuotas. Cada cuota contiene un objeto con las siguientes propiedades:
    • cost: Required. booleano. De forma predeterminada, es false (falso). Especificar como true (verdadero) para habilitar la sincronización con grupos de LDAP.
    • provider: Required. booleano. De forma predeterminada, es false (falso). Especificar como true (verdadero) para habilitar la sincronización con grupos de LDAP.
    • allocated: Matriz. Lista de instancias que contribuyen a la cuota actual. Cada instancia asignada tiene estas propiedades:
      • instance_id: Required. Secuencia. ID de la instancia.
      • instances: Required. Int. Número de instancias.
      • started: Required. Secuencia. Fecha en la que se implementó esta instancia.
      • flavor: Required. Secuencia. Tipo de instancia.
      • region: Required. Secuencia. Región donde se implementó.
      • service_type: Required. Secuencia. Tipo de servicio.
      • terminated: la secuencia especifica el nombre de usuario de la cuenta de servicio de LDAP para buscar usuarios que intentan iniciar sesión.
    • resources: objeto. Recursos de la cuota.
      • cpu: Required. Int. cantidad de unidades de CPU.
      • disk: Required. objeto. Un disco con estas propiedades:
        • quantity: Required. Secuencia. Cantidad de almacenamiento.
        • unit: Required. Secuencia. Mb, Gb o Tb.
      • ram: Required. Secuencia. RAM de la cuota.
        • quantity: Required. Secuencia. Cantidad de almacenamiento.
        • unit: Required. Secuencia. Mb o Gb.

    Cuerpo de respuesta

    {
       "schema":"http://elasticbox.net/schemas/organization",
       "name":"organization_name",
       "icon":null,
       "theme":null,
       "updated":"2015-04-06 16:59:02.486606",
       "created":"2015-03-25 10:41:15.098256",
       "setup":true,
       "administrators":[
          "operations"
       ],
       "domains":[
          "cam.ctl.io"
       ],
       "authentication":{
          "ldap_config":{
             "ldap_group_sync":false,
             "sources":[
                {
                   "host":"ldap://test_ldap"
                }
             ]
          },
          "github":true,
          "google":true,
          "ldap":true,
          "password":true,
       },
       "ldap_groups":[
    
       ],
           "providers": [
               {
                   "enabled": true,
                   "type": "CenturyLink",
                   "description": "Manage cloud hosting, Linux and Windows machines",
                   "pricing": []
               },
               {
                   "enabled": true,
                   "type": "CenturyLink DCC Foundation",
                   "description": "Manage cloud hosting, Linux and Windows machines.",
                   "pricing": []
               },
               {
                   "enabled": true,
                   "type": "CenturyLink DCC",
                   "pricing": [],
                   "description": "Manage cloud hosting, Linux and Windows machines"
               },
               {
                   "enabled": true,
                   "type": "Microsoft Azure",
                   "pricing": [],
                   "description": "Manage Microsoft services using Azure Resource Manager"
               },
               {
                   "enabled": true,
                   "type": "Amazon Web Services",
                   "description": "Manage EC2, S3, Dynamo DB, and RDS instances",
                   "pricing": []
               },
               {
                   "enabled": true,
                   "type": "Openstack",
                   "description": "Manage cloud hosting, Linux and Windows machines",
                   "pricing": []
               },
               {
                   "enabled": true,
                   "type": "VMware vSphere",
                   "description": "Manage cloud hosting, Linux and Windows machines",
                   "pricing": []
               },
               {
                   "enabled": true,
                   "type": "Google Compute",
                   "description": "Manage cloud hosting and Linux machines",
                   "pricing": []
               },
               {
                   "enabled": true,
                   "type": "Azure Classic",
                   "description": "Manage compute services for Windows and Linux machines.",
                   "pricing": []
               },
               {
                   "enabled": true,
                   "type": "Cloudstack",
                   "description": "Manage cloud hosting, Linux and Windows machines",
                   "pricing": []
               },
               {
                   "enabled": true,
                   "type": "SoftLayer",
                   "description": "Manage compute services for Windows and Linux machines.",
                   "pricing": []
               },
               {
                   "enabled": true,
                   "type": "Rackspace",
                   "description": "Manage cloud hosting and Linux machines.",
                   "pricing": []
               },
               {
                   "enabled": true,
                   "type": "VMware vCloud Director",
                   "description": "Manage cloud hosting, Linux and Windows machines.",
                   "pricing": []
               },
               {
                   "enabled": true,
                   "type": "Dimension Data",
                   "description": "Manage cloud hosting, Linux and Windows machines",
                   "pricing": []
               }
           ],
       "ldap_last_sync_completed":null,
       "tags":[
          {
             "name":"box",
             "type":"Box name",
             "value":null
          },
          {
             "name":"environment",
             "type":"Environment",
             "value":null
          }
       ],
       "cost_centers":[
          {
             "name":"test",
             "enforce":false,
             "quotas":[
                {
                   "allocated":[
    
                   ],
                   "cost":0,
                   "provider":"2bf1bd2c-b03d-460f-80da-647d26bdbcfe"
                },
                {
                   "cost":3000,
                   "provider":"5908ee9b-0c0a-4af6-8eef-2dc9f95d033a"
                }
             ],
             "workspaces":[
                "operations"
             ]
          }
       ],
       "webhooks":[
    
       ]
    }
    

    Comunicarse con soporte de Cloud Application Manager

    Lamentamos que esté teniendo problemas en el Gestor de aplicaciones en la nube. Revise los consejos para solucionar problemas o comuníquese con soporte de Cloud Application Manager para proporcionar detalles y capturas de pantalla de ser posible.

    Para problemas relacionados con las llamadas API, envíe el cuerpo de la solicitud junto con los detalles del problema.

    En el caso de error de casilla, comparta la casilla en el espacio de trabajo en el que su organización y Cloud Application Manager pueden ingresar y adjunte los registros.

    • Linux: SSH y busque el registro en /var/log/elasticbox/elasticbox-agent.log
    • Windows: RDP dentro de la instancia para ubicar el registro en ProgramDataElasticBoxLogselasticbox-agent.log

    API para espacios de trabajo

    Gestione y realice acciones en espacios de trabajo.

    Crear o enumerar espacios de trabajo

    Recursos Descripción
    GET /services/workspaces Obtiene la lista de espacios de trabajo.
    POST /services/workspace Crea un nuevo espacio de trabajo de equipo.

    Realizar otras operaciones de espacios de trabajo

    Parámetro Descripción
    GET /services/workspaces/{workspace_id} Recupera un espacio de trabajo existente.
    PUT /services/workspaces/{workspace_id} Actualiza un espacio de trabajo existente.
    DELETE /services/workspaces/{workspace_id} Elimina un espacio de trabajo existente.
    GET /services/workspaces/{workspace_id}/providers Obtiene los proveedores de nube registrados en un espacio de trabajo.
    GET /services/workspaces/{workspace_id}/boxes Obtiene las casillas de un espacio de trabajo.
    GET /services/workspaces/{workspace_id}/instances Obtiene las instancias de un espacio de trabajo.

    GET /services/workspaces

    Obtiene el espacio de trabajo predeterminado si no se proporciona ningún parámetro y el usuario no tiene otro privilegio. Si se proporciona el parámetro de ID (una lista de ID de espacios de trabajo), recupera todos los espacios de trabajo correspondientes a esa lista y a los que tiene acceso el usuario.

    URL

    Estructura

    [GET] /services/workspaces
    

    Ejemplo

    [GET] https://cam.ctl.io/services/workspaces
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    NOMBRE TIPO DESCRIPCIÓN REQ.
    ids secuencia Recupera los espacios de trabajo correspondientes a cada ID de espacio de trabajo de la secuencia. Las ID se separarán por comas. Por ejemplo: workspace4,operations,workspace5. No
    limit integer Limita la cantidad de espacios de trabajo enumerados en la respuesta. No

    Parámetros del cuerpo de la solicitud

    • Ninguno

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 400 Solicitud incorrecta
    • 401 No autorizado
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    add_provider boolean Indica true (verdadero) si un espacio de trabajo personal tiene un proveedor.
    billing_notice boolean Si el indicador es False (falso), no se muestra el aviso de facturación al usuario.
    clc_alias secuencia (opcional) ID de la cuenta para clientes de facturación que tienen una cuenta en CL.
    clc_username secuencia Si el usuario tiene autenticación de Lumen Cloud.
    created secuencia Fecha de creación
    costcenter secuencia ID del centro de costos.
    dashboard_notice boolean Si el indicador es False (falso), no se muestra el aviso en el panel al usuario.
    deleted secuencia Será null (nulo) si el recurso es válido, o una secuencia con la hora y fecha de eliminación si se eliminó. Los usuarios finales siempre verán este parámetro como null (nulo).
    deploy_instance boolean Indica si el espacio de trabajo ha implementado una instancia.
    email secuencia Email de usuario
    email_validated_at secuencia Fecha de validación del email.
    favorites array Lista de los espacios de trabajo favoritos del usuario. El usuario configura un espacio de trabajo como favorito cuando hace clic en una estrella.
    group_dns array Lista de nombres completos de grupos de LDAP a los que pertenece el espacio de trabajo personal de un usuario. No se puede actualizar este campo. Presente en espacios de trabajo personales.
    icon secuencia URL relativo a un archivo que se almacena como blob en el CAM y representa el ícono del espacio de trabajo.
    id secuencia Identificador único del espacio de trabajo.
    last_login secuencia Fecha del último inicio de sesión. Ejemplo: “2015-07-02 10:23:47.748740”
    last_name secuencia Apellido del usuario.
    ldap_groups array Lista de nombres completos de grupos de LDAP que son miembros de un espacio de trabajo. Presente en los espacios de trabajo de equipo.
    members array Enumera los miembros de un espacio de trabajo de equipo.
    nombre secuencia Nombre del usuario (del espacio de trabajo).
    organización secuencia (Espacios de trabajo personales) Organización del espacio de trabajo.
    organizaciones array (Espacios de trabajo de equipo) Lista de nombres de las organizaciones del espacio de trabajo
    owner secuencia Se refiere al nombre del usuario propietario del espacio de trabajo. Presente en los espacios de trabajo de equipo.
    saml_id secuencia (opcional) ID de cuenta si el usuario ha iniciado sesión con lenguaje de marcado para confirmaciones de seguridad (SAML, por sus siglas en inglés).
    esquema secuencia URI del esquema. Para espacio de trabajo personal: “http://elasticbox.net/schemas/workspaces/personal” Para el espacio de trabajo de equipo: “http://elasticbox.net/schemas/workspaces/team”
    support_user_created boolean True (verdadero) si se ha creado el usuario de soporte del CAM para este espacio de trabajo y está listo.
    take_tour boolean Si es true (verdadero), el usuario ha descartado la ventana emergente del paseo.
    tipo secuencia Tipo de espacio de trabajo. Puede ser personal o team (de equipo). Los usuarios pueden editar el espacio de trabajo personal siempre que tengan privilegios y los esquemas sean válidos.
    updated secuencia Fecha de la última actualización
    uri secuencia URI del espacio de trabajo

    Cuerpo de respuesta

    • Respuesta a solicitud sin parámetros
    [
        {
            "last_name": "ElasticBox",
            "costcenter": "3ef6e6e0-a08d-40f1-98bf-4a7fc9b9c63a",
            "clc_alias": "CTLX",
            "id": "operations",
            "billing_notice": true,
            "last_login": "2018-12-11 12:53:11.636462",
            "add_provider": true,
            "deploy_instance": true,
            "type": "personal",
            "email": "operations@elasticbox.com",
            "schema": "http://elasticbox.net/schemas/workspaces/personal",
            "updated": "2018-12-11 12:53:11.636781",
            "take_tour": true,
            "deleted": null,
            "dashboard_notice": true,
            "email_validated_at": "2018-10-11 12:10:03.468280",
            "favorites": [],
            "icon": null,
            "group_dns": [],
            "clc_username": null,
            "name": "Operations",
            "created": "2018-10-11 12:10:03.468280",
            "support_user_created": false,
            "uri": "/services/workspaces/operations",
            "organization": "elasticbox"
        }
    ]
    
    • Respuesta a solicitud con parámetros
    [
        {
            "uri": "/services/workspaces/operations",
            "icon": null,
            "id": "operations",
            "name": "Operations",
            "schema": "http://elasticbox.net/schemas/workspaces/personal"
        },
        {
            "uri": "/services/workspaces/workspace4",
            "icon": "/services/blobs/download/5bcf2c5c1862a312d7ac3c37/Screen-Shot-2018-10-23-at-16.12.23.png",
            "id": "workspace4",
            "name": "WORKSPACE A",
            "schema": "http://elasticbox.net/schemas/workspaces/team"
        },
        {
            "uri": "/services/workspaces/workspace5",
            "icon": "/services/blobs/download/5bcf2c5c1862a312d7ac3c37/Screen-Shot-2018-10-23-at-16.12.23.png",
            "id": "workspace5",
            "name": "WORKSPACE B",
            "schema": "http://elasticbox.net/schemas/workspaces/team"
        }
    ]
    

    POST /services/workspaces

    Crea un espacio de trabajo y obtiene el espacio de trabajo creado.

    URL

    Estructura

    [POST] /services/workspaces
    

    Ejemplo

    [POST] https://cam.ctl.io/services/workspaces
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    • Ninguno

    Parámetros del cuerpo de la solicitud

    NOMBRE TIPO DESCRIPCIÓN REQ.
    costcenter secuencia ID del centro de costos.
    nombre secuencia Nombre de espacio de trabajo
    esquema secuencia URL del esquema. Por ejemplo, http://elasticbox.net/schemas/workspaces/team

    Respuesta

    Códigos de respuesta normales

    • 201 Creado

    Códigos de respuesta de error comunes

    • 400 Datos no válidos
    • 401 No autorizado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    costcenter secuencia ID del centro de costos.
    created secuencia Fecha de creación
    deleted secuencia Será null (nulo) si el recurso es válido, o una secuencia con la hora y fecha de eliminación si se eliminó. Los usuarios finales siempre verán este parámetro como null (nulo).
    id secuencia ID de espacio de trabajo
    members array Muestra los miembros de un espacio de trabajo de equipo.
    nombre secuencia Nombre de espacio de trabajo
    organizaciones array Lista de nombres de las organizaciones.
    esquema secuencia URI del esquema. “http://elasticbox.net/schemas/workspaces/personal” o “http://elasticbox.net/schemas/workspaces/team”
    tipo secuencia Tipo de espacio de trabajo. Puede ser personal o team (de equipo). Los usuarios pueden editar el espacio de trabajo personal siempre que tengan privilegios y los esquemas sean válidos.
    updated secuencia Fecha de actualización.
    uri secuencia URL para acceder al espacio de trabajo

    Cuerpo de respuesta

    {
        "organizations": [
            "elasticbox"
        ],
        "updated": "2018-10-24 14:52:42.302338",
        "name": "WORKSPACE C",
        "created": "2018-10-24 14:52:42.302338",
        "deleted": null,
        "uri": "/services/workspaces/workspace6",
        "members": [],
        "costcenter": "3ef6e6e0-a08d-40f1-98bf-4a7fc9b9c63a",
        "type": "team",
        "id": "workspace6",
        "schema": "http://elasticbox.net/schemas/workspaces/team"
    }
    

    GET /services/workspaces/{workspace_id}

    Recupera un espacio de trabajo existente para la ID de espacio de trabajo especificada.

    URL

    Estructura

    [GET] /services/workspaces/{workspace_id}
    

    Ejemplo

    [GET] https://cam.ctl.io//services/workspaces/workspace4
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    NOMBRE TIPO DESCRIPCIÓN REQ.
    workspace_id secuencia ID de espacio de trabajo.

    Parámetros del cuerpo de la solicitud

    • Ninguno

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 401 No autorizado
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    costcenter secuencia ID del centro de costos.
    created secuencia Fecha de creación
    deleted secuencia Será null (nulo) si el recurso es válido, o una secuencia con la hora y fecha de eliminación si se eliminó. Los usuarios finales siempre verán este parámetro como null (nulo).
    icon secuencia URL al avatar del área de trabajo.
    id secuencia ID de espacio de trabajo
    members array Enumera los miembros de un espacio de trabajo de equipo.
    nombre secuencia Nombre de espacio de trabajo
    organizaciones array Lista de nombres de las organizaciones.
    esquema secuencia URI del esquema. “http://elasticbox.net/schemas/workspaces/personal” o “http://elasticbox.net/schemas/workspaces/team”
    tipo secuencia Tipo de espacio de trabajo. Puede ser personal o team (de equipo). Los usuarios pueden editar el espacio de trabajo personal siempre que tengan privilegios y los esquemas sean válidos.
    updated secuencia Fecha de actualización.
    uri secuencia URL para acceder al espacio de trabajo

    Cuerpo de respuesta

    {
        "organizations": [
            "elasticbox"
        ],
        "updated": "2018-10-23 14:13:21.375854",
        "name": "WORKSPACE C",
        "created": "2018-10-23 14:13:21.375854",
        "deleted": null,
        "uri": "/services/workspaces/workspace4",
        "schema": "http://elasticbox.net/schemas/workspaces/team",
        "costcenter": "3ef6e6e0-a08d-40f1-98bf-4a7fc9b9c63a",
        "members": [],
        "type": "team",
        "id": "workspace4",
        "icon": "/services/blobs/download/5bcf2c5c1862a312d7ac3c37/Screen-Shot-2018-10-23-at-16.12.23.png"
    }
    

    PUT /services/workspaces/{workspace_id}

    Actualiza un espacio de trabajo existente.

    URL

    Estructura

    [PUT] /services/workspaces/{workspace_id}
    

    Ejemplo

    [PUT] https://cam.ctl.io/services/workspaces/workspace4
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    NOMBRE TIPO DESCRIPCIÓN REQ.
    workspace_id secuencia ID de espacio de trabajo.

    Parámetros del cuerpo de la solicitud

    NOMBRE TIPO DESCRIPCIÓN REQ.
    costcenter secuencia ID del centro de costos.
    created secuencia Fecha de creación del espacio de trabajo. No
    deleted secuencia Será null (nulo) si el recurso es válido, o una secuencia con la hora y fecha de eliminación si se eliminó. Los usuarios finales siempre verán este parámetro como null (nulo). No
    icon secuencia URL del ícono. No
    id secuencia ID de espacio de trabajo
    members array Lista de objetos que representan a los miembros (otros espacios de trabajo) agregados a este espacio de trabajo. No
    nombre secuencia Nombre del nuevo espacio de trabajo.
    organizaciones array Lista de nombres de las organizaciones.
    esquema secuencia URL del esquema del espacio de trabajo. URI del esquema. “http://elasticbox.net/schemas/workspaces/personal” o “http://elasticbox.net/schemas/workspaces/team”
    tipo secuencia Tipo de espacio de trabajo. Puede ser personal o team (de equipo). Los usuarios pueden editar el espacio de trabajo personal siempre que tengan privilegios y los esquemas sean válidos. No
    updated secuencia Fecha de actualización del espacio de trabajo. No
    {
        "organizations":["elasticbox"],
        "updated": "2018-10-25 07:26:50.016849",
        "name": "WORKSPACE E",
        "icon": "/services/blobs/download/5bcf2c5c1862a312d7ac3c37/Screen-Shot-2018-10-23-at-16.12.23.png",
        "created": "2018-10-23 14:15:29.294888",
        "deleted": null,
        "members":[
            {
                "id": "operations",
                "type": "workspace",
                "role": "user"
            }
        ],
        "costcenter": "3ef6e6e0-a08d-40f1-98bf-4a7fc9b9c63a",
        "type": "team",
        "id": "workspace5",
        "schema": "http://elasticbox.net/schemas/workspaces/team"
    }
    

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 400 Solicitud incorrecta
    • 401 No autorizado
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    costcenter secuencia ID del centro de costos.
    created secuencia Fecha de creación del espacio de trabajo.
    deleted secuencia Será null (nulo) si el recurso es válido, o una secuencia con la hora y fecha de eliminación si se eliminó. Los usuarios finales siempre verán este parámetro como null (nulo).
    icon secuencia URL del ícono.
    id secuencia ID de espacio de trabajo
    members array Lista de objetos que representan a los miembros (otros espacios de trabajo) agregados a este espacio de trabajo.
    nombre secuencia Nombre del nuevo espacio de trabajo.
    organizaciones array Lista de nombres de las organizaciones.
    esquema secuencia URL del esquema del espacio de trabajo. URI del esquema. “http://elasticbox.net/schemas/workspaces/personal” o “http://elasticbox.net/schemas/workspaces/team”
    tipo secuencia Tipo de espacio de trabajo. Puede ser personal o team (de equipo). Los usuarios pueden editar el espacio de trabajo personal siempre que tengan privilegios y los esquemas sean válidos.
    updated secuencia Fecha de actualización del espacio de trabajo.
    uri secuencia URL para acceder a la vista del espacio de trabajo actualizado.

    Cuerpo de respuesta

    {
        "organizations": [
            "elasticbox"
        ],
        "updated": "2018-10-26 12:16:11.763338",
        "name": "WORKSPACE A",
        "created": "2018-10-26 12:15:44.433381",
        "deleted": null,
        "uri": "/services/workspaces/workspace7",
        "costcenter": "3ef6e6e0-a08d-40f1-98bf-4a7fc9b9c63a",
        "members":
            [
                {
                    "type": "workspace",
                    "role": "user",
                    "id": "operations",
                    "workspace": "operations"
                }
            ],
        "icon": null,
        "type": "team",
        "id": "workspace7",
        "schema": "http://elasticbox.net/schemas/workspaces/team"
    }
    

    DELETE /services/workspaces/{workspace_id}

    Elimina un espacio de trabajo.

    URL

    Estructura

    [DELETE] /services/workspaces/{workspace_id}
    

    Ejemplo

    [DELETE] https://cam.ctl.io/services/workspaces/workspace4
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    NOMBRE TIPO DESCRIPCIÓN REQ.
    workspace_id secuencia ID de espacio de trabajo.

    Parámetros del cuerpo de la solicitud

    • Ninguno

    Respuesta

    Códigos de respuesta normales

    • 204 Sin contenido

    Códigos de respuesta de error comunes

    • 401 No autorizado
    • 404 No encontrado

    Parámetros de la respuesta

    • Ninguno

    Cuerpo de respuesta

    • Ninguno

    GET /services/workspaces/{workspace_id}/providers

    Obtiene los proveedores registrados en un espacio de trabajo.

    URL

    Estructura

    [GET] /services/workspaces/{workspace_id}/providers
    

    Ejemplo

    [GET] https://cam.ctl.io/services/workspaces/workspace4/providers
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    NOMBRE TIPO DESCRIPCIÓN REQ.
    workspace_id secuencia ID de espacio de trabajo

    Parámetros del cuerpo de la solicitud

    • Ninguno

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 401 No autorizado
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    created secuencia Fecha de creación del proveedor.
    descripción secuencia Descripción del proveedor.
    icon secuencia URL del ícono del proveedor.
    id secuencia ID del proveedor.
    members array Lista de miembros con acceso al proveedor.
    nombre secuencia Nombre de proveedor
    owner secuencia ID del espacio de trabajo al que pertenece el proveedor.
    esquema secuencia URI del esquema del proveedor. Por ejemplo, “http://elasticbox.net/schemas/aws/providerVer la documentación de API para proveedores para obtener una lista completa de los tipos de esquema.
    servicios array Lista de servicios asociados al proveedor.
    state secuencia Estado del proveedor.
    tipo secuencia Tipo de proveedor.
    updated secuencia Fecha de actualización del proveedor.
    uri secuencia URL para acceder a la vista del proveedor.

    Cuerpo de respuesta

    [
        {
            "updated": "2018-11-20 12:23:10.654685",
            "description": null,
            "icon": "images/platform/aws.svg",
            "created": "2018-11-19 12:20:44.788595",
            "uri": "/services/providers/5b98633e-31d5-46ed-b530-f959d2898eef",
            "name": "My Amazon Web Services Provider",
            "services": [...],
            "state": "ready",
            "members": [],
            "owner": "operations",
            "credentials": {},
            "type": "Amazon Web Services",
            "id": "5b98633e-31d5-46ed-b530-f959d2898eef",
            "schema": "http://elasticbox.net/schemas/aws/provider"
        },
        {
            "updated": "2018-11-20 12:23:11.057875",
            "name": "My Centurly Link Provider",
            "icon": "images/platform/centurylink.svg",
            "created": "2018-11-20 08:57:43.926910",
            "uri": "/services/providers/ca33877a-6ade-4d28-8ed1-8c5e455148fa",
            "services": [...],
            "state": "ready",
            "members": [],
            "owner": "operations",
            "type": "CenturyLink",
            "id": "ca33877a-6ade-4d28-8ed1-8c5e455148fa",
            "schema": "http://elasticbox.net/schemas/centurylink/provider"
        }
    ]
    

    GET /services/workspaces/{workspace_id}/boxes

    Obtiene todas las casillas de un espacio de trabajo.

    URL

    Estructura

    [GET] /services/workspaces/{workspace_id}/boxes
    

    Ejemplo

    [GET] https://cam.ctl.io/services/workspaces/workspace4/boxes
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    NOMBRE TIPO DESCRIPCIÓN REQ.
    workspace_id secuencia ID de espacio de trabajo

    Parámetros del cuerpo de la solicitud

    • Ninguno

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 401 No autorizado
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    automatic_updates secuencia Tipo de actualización automática.
    created secuencia Fecha de creación de la casilla.
    deleted secuencia Será null (nulo) si el recurso es válido, o una secuencia con la hora y fecha de eliminación si se eliminó. Los usuarios finales siempre verán este parámetro como null (nulo).
    descripción secuencia Descripción de la casilla.
    event object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date, (fecha de carga) length (longitud) y destination_path (ruta de destino)
    eventos object Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), pre_configure (preconfiguración), pre_dispose (preeliminación), pre_install (preinstalación), pre_start (preinicio), pre_stop (predetención), start and stop (inicio y detención).
    icon secuencia URL del ícono de la casilla.
    id secuencia ID de la casilla.
    members array Lista de miembros con acceso a la casilla.
    nombre secuencia Nombre de casilla
    organización secuencia Nombre de la organización
    owner secuencia ID del propietario del área de trabajo.
    requisitos array Lista de requisitos de la casilla.
    esquema secuencia URI del esquema de la casilla.
    tipo secuencia Tipo de casilla.
    updated secuencia Fecha de actualización de la casilla.
    uri secuencia URL para acceder a la vista de la casilla.
    variables array Lista de variables asociadas a la casilla.
    visibilidad secuencia Tipo de visibilidad que tiene el proveedor.

    Cuerpo de respuesta

    [
        {
            "updated": "2018-10-11 12:09:18.184974",
            "automatic_updates": "off",
            "requirements": [
                "linux"
            ],
            "name": "Oracle Database Service",
            "icon": "images/platform/oracle.png",
            "created": "2018-10-11 12:09:18.184974",
            "deleted": null,
            "variables": [
                {
                    "required": false,
                    "type": "Port",
                    "name": "port",
                    "value": "1521",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "database_name",
                    "value": "",
                    "visibility": "public"
                },
                {
                    "required": true,
                    "type": "Text",
                    "name": "username",
                    "value": "",
                    "visibility": "public"
                },
                {
                    "required": true,
                    "type": "Password",
                    "name": "password",
                    "value": "",
                    "visibility": "public"
                }
            ],
            "description": "Oracle Database as a Service",
            "uri": "/services/boxes/ce709ff9-69a7-4d95-bf14-97f069910be8",
            "visibility": "public",
            "id": "ce709ff9-69a7-4d95-bf14-97f069910be8",
            "friendly_id": "oracle-database-service",
            "members": [],
            "owner": "elasticbox",
            "organization": "public",
            "events": {},
            "schema": "http://elasticbox.net/schemas/boxes/script"
        },
    
        ... MORE BOXES ...
    
        {
            "updated": "2018-10-26 09:39:10.156446",
            "automatic_updates": "off",
            "requirements": [],
            "name": "Container A",
            "created": "2018-10-26 09:39:10.156446",
            "deleted": null,
            "variables": [
                {
                    "required": false,
                    "type": "Box",
                    "name": "DOCKER_BOX",
                    "value": "14c6d2c0-a1ea-436c-862b-c63d60acc53b",
                    "visibility": "public"
                }
            ],
            "uri": "/services/boxes/bcc27232-4c44-470c-a329-30e45931b523",
            "visibility": "workspace",
            "events": {},
            "members": [],
            "owner": "workspace5",
            "organization": "elasticbox",
            "id": "bcc27232-4c44-470c-a329-30e45931b523",
            "schema": "http://elasticbox.net/schemas/boxes/docker"
        }
    ]
    

    GET /services/workspaces/{workspace_id}/instances

    Obtiene todas las instancias de un espacio de trabajo.

    URL

    Estructura

    [GET] /services/workspaces/{workspace_id}/instances
    

    Ejemplo

    [GET] https://cam.ctl.io/services/workspaces/myworkspace/instances
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    NOMBRE TIPO DESCRIPCIÓN REQ.
    workspace_id secuencia ID de espacio de trabajo

    Parámetros del cuerpo de la solicitud

    • Ninguno

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 401 No autorizado
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    automatic_updates secuencia Tipo de actualización automática.
    bindings array Lista de enlaces de la instancia.
    casillas array Lista de casillas donde cada objeto de casilla contiene un parámetro de servicio. El parámetro de servicio puede tener uno de estos valores: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    icon secuencia URI del ícono de la instancia.
    id secuencia ID de la instancia.
    is_deploy_only boolean Si la instancia se implementa solamente.
    machine object Máquina incluida en la lista de máquinas de servicio.
    machine.name secuencia Nombre de la máquina.
    machine.state secuencia Estado de la máquina; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    machine.workflow array Lista de acciones de flujo de trabajo; cada objeto de acción de flujo de trabajo contiene tres parámetros: box (casilla), event (evento) y script (secuencia).
    members array Lista de miembros con acceso a la instancia.
    nombre secuencia Nombre de instancia
    operation object Última operación; hay varios tipos de operaciones: deploy (implementar), shutdown (cerrar), poweron (encender), reinstall (reinstalar), reconfigure (reconfigurar), terminate (finalizar), terminate_service (finalizar servicio).
    policy_box object Casilla para política de la instancia.
    esquema secuencia URI del esquema de la instancia.
    servicio object Servicio de la instancia.
    service.id secuencia ID del servicio.
    service.machines array Lista de máquinas del servicio.
    service.type secuencia Required. Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    state secuencia Estado de la instancia; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    etiquetas array Lista de etiquetas de la instancia.
    updated secuencia Fecha de la última actualización
    uri secuencia URI de la instancia.
    variables array Lista de variables de la instancia.

    Cuerpo de respuesta

    [
        {
            "box": "29a9fe00-517a-4635-a77c-6eb473f4d7a1",
            "lease": {
                "released": false,
                "operation": "terminate",
                "expire": "2018-12-12 11:20:48.751000"
            },
            "updated": "2018-12-12 10:30:56.151018",
            "automatic_updates": "off",
            "policy_box": {
                "profile": {
                    "subnet": "subnet-3412a250",
                    "volumes": [],
                    "pricing_info": {
                        "estimated_monthly": 417600,
                        "factor": 100000,
                        "hourly_price": 580,
                        "provider_type": "Amazon Web Services"
                    },
                    "image": "Linux Compute",
                    "elastic_ip": false,
                    "managed_os": false,
                    "instances": 1,
                    "keypair": "None",
                    "role": "None",
                    "location": "us-west-2",
                    "placement_group": "",
                    "cloud": "vpc-c52e9aa1",
                    "flavor": "t2.nano",
                    "security_groups": [
                        "Automatic"
                    ],
                    "schema": "http://elasticbox.net/schemas/aws/ec2/profile"
                },
                "provider_id": "cdcb8062-c792-4f92-9099-fc77831f5e0f",
                "automatic_updates": "off",
                "name": "My Deployment Policy",
                "created": "2018-12-12 10:19:21.170223",
                "deleted": null,
                "variables": [],
                "updated": "2018-12-12 10:20:25.788933",
                "lifespan": {
                    "operation": "terminate",
                    "interval": "hours",
                    "quantity": 1
                },
                "visibility": "workspace",
                "members": [],
                "claims": [],
                "owner": "myworkspace",
                "organization": "elasticbox",
                "id": "0e37ec16-ac46-4fd6-a7d4-343b65982828",
                "schema": "http://elasticbox.net/schemas/boxes/policy"
            },
            "name": "My Script Box",
            "service": {
                "type": "Linux Compute",
                "id": "eb-e1uyz",
                "machines": [
                    {
                        "state": "done",
                        "name": "my-script-box-eb-e1uyz-1",
                        "workflow": []
                    }
                ]
            },
            "tags": [],
            "variables": [],
            "created": "2018-12-12 10:21:48.709303",
            "boxes": [
                {
                    "updated": "2018-12-12 10:16:51.895046",
                    "automatic_updates": "off",
                    "requirements": [],
                    "name": "My Script Box",
                    "created": "2018-12-12 10:16:51.895046",
                    "deleted": null,
                    "variables": [],
                    "visibility": "workspace",
                    "id": "29a9fe00-517a-4635-a77c-6eb473f4d7a1",
                    "members": [],
                    "owner": "myworkspace",
                    "organization": "elasticbox",
                    "events": {},
                    "schema": "http://elasticbox.net/schemas/boxes/script"
                }
            ],
            "id": "i-8jo5n5",
            "is_deploy_only": true,
            "state": "done",
            "members": [],
            "owner": "myworkspace",
            "bindings": [],
            "uri": "/services/instances/i-8jo5n5",
            "operation": {
                "event": "deploy",
                "workspace": "operations",
                "created": "2018-12-12 10:27:53.778494"
            },
            "schema": "http://elasticbox.net/schemas/instance"
        }
    ]
    

    Comunicarse con soporte de Cloud Application Manager

    Lamentamos que esté teniendo problemas en el Gestor de aplicaciones en la nube. Revise los consejos para solucionar problemas o comuníquese con soporte de Cloud Application Manager para proporcionar detalles y capturas de pantalla de ser posible.

    Para problemas relacionados con las llamadas API, envíe el cuerpo de la solicitud junto con los detalles del problema.

    En el caso de error de casilla, comparta la casilla en el espacio de trabajo en el que su organización y Cloud Application Manager pueden ingresar y adjunte los registros.

    • Linux: SSH y busque el registro en /var/log/elasticbox/elasticbox-agent.log
    • Windows: RDP dentro de la instancia para ubicar el registro en ProgramDataElasticBoxLogselasticbox-agent.log

    API para blobs

    Gestionar blobs

    Recursos Descripción
    POST /services/blobs/upload Carga un archivo utilizando multipart/form-data.
    POST /services/blobs/upload/{file_name} Crea un blob con datos enviados.
    GET /services/blobs/download/{file_id}/{file_name} Descarga un archivo cargado anteriormente.

    POST /services/blobs/upload

    Carga un archivo utilizando multipart/form-data.

    URL

    Estructura

    [POST] /services/blobs/upload
    

    Ejemplo

    [POST] https://cam.ctl.io/services/blobs/upload
    

    Solicitud

    Encabezados

    Content-Type: multipart/form-data
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    • Ninguno

    Parámetros del cuerpo de la solicitud

    • Datos de formulario: blob (binario)

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 400 Solicitud incorrecta
    • 401 No autorizado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    content-type (tipo de contenido) secuencia Tipo de contenido del archivo.
    length number Tamaño del archivo en bytes.
    upload_date secuencia Fecha en la que se cargó el archivo.
    url secuencia URL para descargar el archivo.

    Cuerpo de respuesta

    {
        "url": "/services/blobs/download/5be2de281862a32389a50d81/Screen-Shot-2018-11-07-at-13.44.12.png",
        "upload_date": "2018-11-07 12:44:24.254860",
        "length": 12715,
        "content_type": "image/png"
    }
    

    POST /services/blobs/upload/{file_name}

    Crea un blob con datos enviados.

    URL

    Estructura

    [POST] /services/blobs/upload/{file_name}
    

    Ejemplo

    [POST] https://cam.ctl.io/services/blobs/upload/another-file-name.png
    

    Solicitud

    Encabezados

    Content-Type: multipart/form-data
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    • Ninguno

    Parámetros del cuerpo de la solicitud

    • Datos de formulario: blob (binario)

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 400 Solicitud incorrecta
    • 401 No autorizado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    content-type (tipo de contenido) secuencia Tipo de contenido del archivo.
    length number Tamaño del archivo en bytes.
    upload_date secuencia Fecha en la que se cargó el archivo.
    url secuencia URL para descargar el archivo.

    Cuerpo de respuesta

    {
        "url": "/services/blobs/download/5be30e001862a32389a50d8f/another-file-name.png",
        "upload_date": "2018-11-07 16:08:32.178537",
        "length": 7264,
        "content_type": "multipart/form-data; boundary=--------------------------077273512344925050592348"
    }
    

    GET /services/blobs/download/{file_id}/{file_name}

    Descarga un archivo cargado anteriormente.

    URL

    Estructura

    [GET] /services/blobs/download/{file_id}/{file_name}
    

    Ejemplo

    [GET] https://cam.ctl.io/services/blobs/download/5be2de281862a32389a50d81/Screen-Shot-2018-11-07-at-13.44.12.png
    

    Solicitud

    Encabezados

    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    NOMBRE TIPO DESCRIPCIÓN REQ.
    file_id secuencia ID del archivo.
    file_name secuencia Nombre del archivo.

    Parámetros del cuerpo de la solicitud

    • Ninguno

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 400 Solicitud incorrecta
    • 401 No autorizado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    content-type (tipo de contenido) secuencia Tipo de contenido del archivo.
    length number Tamaño del archivo en bytes.
    upload_date secuencia Fecha en la que se cargó el archivo.
    url secuencia URL para descargar el archivo.

    Cuerpo de respuesta

    The file
    

    Comunicarse con soporte de Cloud Application Manager

    Lamentamos que esté teniendo problemas en el Gestor de aplicaciones en la nube. Revise los consejos para solucionar problemas o comuníquese con soporte de Cloud Application Manager para proporcionar detalles y capturas de pantalla de ser posible.

    Para problemas relacionados con las llamadas API, envíe el cuerpo de la solicitud junto con los detalles del problema.

    En el caso de error de casilla, comparta la casilla en el espacio de trabajo en el que su organización y Cloud Application Manager pueden ingresar y adjunte los registros.

    • Linux: SSH y busque el registro en /var/log/elasticbox/elasticbox-agent.log
    • Windows: RDP dentro de la instancia para ubicar el registro en ProgramDataElasticBoxLogselasticbox-agent.log

    API para casillas

    Gestione y realice acciones en casillas.

    Crear o enumerar casillas

    Recursos Descripción
    GET /services/boxes Obtiene la lista de casillas accesibles en el espacio de trabajo personal.
    POST /services/boxes Crea una nueva casilla.

    Realizar operaciones de casilla

    Recursos Descripción
    GET /services/boxes/{box_id} Recupera una casilla existente.
    PUT /services/boxes/{box_id} Actualiza una casilla existente.
    DELETE /services/box/{box_id} Elimina una casilla existente.
    GET /services/boxes/{box_id}/stack Obtiene el stack de las casillas.
    GET /services/boxes/{box_id}/bindings Obtiene los enlaces de las casillas.
    GET /services/boxes/{box_id}/versions Obtiene la lista de versiones de las casillas.
    PUT /services/boxes/{box_id}/diff Obtiene las diferencias entre dos casillas.

    CloudFormation Box

    La casilla de CloudFormation del Gestor de aplicaciones en la nube funciona con el servicio AWS CloudFormation. Permite crear y personalizar plantillas que se pueden iniciar como un solo stack de servicios combinados en AWS. Gestione las configuraciones de CloudFormation en el Gestor de aplicaciones en la nube utilizando estas acciones de API.

    Algunos ejemplos son:

    Ejemplo
    Crear una casilla de CloudFormation con una plantilla
    Modificar la plantilla de CloudFormation
    Iniciar una casilla de CloudFormation
    Actualizar un stack de CloudFormation en tiempo real

    GET /services/boxes

    Obtiene casillas accesibles en el espacio de trabajo personal del usuario autenticado.

    URL

    Estructura

    [GET] /services/boxes
    
    [GET] /services/boxes?ids=value
    

    Ejemplo

    [GET] https://cam.ctl.io/services/boxes
    

    Ejemplo con parámetros para especificar una lista de ID de casillas:

    [GET] https://cam.ctl.io/services/boxes?ids=8117657c-572a-4608-a2e2-82204ffa2ba5,540da08f-bbcf-4bb8-95bb-fcb690d44268
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Estilo Tipo Descripción Req.
    ids plain secuencia Lista de ID de casillas separadas por comas. Opc.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 400 Datos no válidos

    Parámetros de la respuesta

    Parámetro Estilo Tipo Descripción
    visibilidad plain secuencia Indica a qué nivel es visible la casilla. De forma predeterminada, las casillas son visibles en el espacio de trabajo en el que se crean. Puede tener uno de estos valores:
  • public (público): visible para usuarios del Gestor de aplicaciones en la nube en todas las organizaciones.
  • organization (organización): visible para todos los usuarios de la organización en la que se creó la casilla.
  • workspace (espacio de trabajo): de forma predeterminada, la casilla solo es visible para los miembros del espacio de trabajo donde se creó.
  • organización plain secuencia Organización a la que pertenece la casilla.
    updated plain secuencia Fecha de la última actualización.
    descripción plain secuencia Descripción de la casilla.
    requisitos plain array Requisitos de la casilla.
    variables plain array Lista de variables de la casilla; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    created plain secuencia Fecha de creación.
    uri plain secuencia URI de la casilla.
    id plain array Identificador único de la casilla.
    esquema plain secuencia URI del esquema de la casilla.
    members plain array Lista de miembros de la casilla.
    owner plain secuencia Propietario de la casilla.
    icon plain secuencia URI del ícono de la casilla.
    eventos plain array Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), pre_configure (preconfiguración), pre_dispose (preeliminación), pre_install (preinstalación), pre_start (preinicio), pre_stop (predetención), start and stop (inicio y detención).
    event plain object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date (fecha de carga), length (longitud) y destination_path (ruta de destino).
    nombre plain secuencia Nombre de la casilla.

    Cuerpo de respuesta

    [
        {
            "automatic_updates": "off",
            "variables": [
                {
                    "required": false,
                    "type": "Text",
                    "name": "MNESIA_BASE",
                    "value": "/var/lib/rabbitmq/mnesia",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "LOG_BASE",
                    "value": "/var/log/rabbitmq",
                    "visibility": "public"
                },
                {
                    "name": "VERSION",
                    "required": false,
                    "value": "3.2.4",
                    "visibility": "public",
                    "type": "Options",
                    "options": "3.2.4,3.3.5"
                },
                {
                    "required": false,
                    "type": "Port",
                    "name": "mgmt",
                    "value": "15672",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Port",
                    "name": "rabbitmq",
                    "value": "5672",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "username",
                    "value": "",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Password",
                    "name": "password",
                    "value": "",
                    "visibility": "public"
                },
                {
                    "name": "CLONE_URL",
                    "required": false,
                    "visibility": "public",
                    "value": "https://github.com/ElasticBox/rabbitmq.git",
                    "scope": "github.git_repo",
                    "type": "Text"
                },
                {
                    "name": "PUPPET_DEFAULT",
                    "required": false,
                    "visibility": "public",
                    "value": "/services/blobs/download/53550d367d0083337633e563/default.pp",
                    "scope": "puppet",
                    "type": "File"
                },
                {
                    "required": false,
                    "type": "Port",
                    "name": "ssl_port",
                    "value": "5671",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "CA_CERT_PATH",
                    "value": "",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "SERVER_CERT_PATH",
                    "value": "",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "SERVER_KEY_PATH",
                    "value": "",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "CA_CERT_FILE",
                    "value": "/services/blobs/download/530fc09a3d0a0c698ab6fb78/Blank_file",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "SERVER_CERT_FILE",
                    "value": "/services/blobs/download/530fc09a3d0a0c698ab6fb78/Blank_file",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "SERVER_KEY_FILE",
                    "value": "/services/blobs/download/530fc09a3d0a0c698ab6fb78/Blank_file",
                    "visibility": "public"
                },
                {
                    "automatic_updates": "off",
                    "name": "github",
                    "required": false,
                    "value": "758de981-475a-47fc-b0d9-342edda52a82",
                    "visibility": "public",
                    "type": "Box"
                },
                {
                    "automatic_updates": "off",
                    "name": "puppet",
                    "required": false,
                    "value": "08cc115c-4738-4f69-a8b7-da2e1dfec27c",
                    "visibility": "public",
                    "type": "Box"
                },
                {
                    "name": "CLONE_DIRECTORY",
                    "required": false,
                    "visibility": "public",
                    "value": "/etc/puppet/modules/rabbitmq",
                    "scope": "github.git_repo",
                    "type": "Text"
                }
            ],
            "friendly_id": "rabbitmq",
            "owner": "elasticbox",
            "id": "540da08f-bbcf-4bb8-95bb-fcb690d44268",
            "requirements": [
                "linux"
            ],
            "deleted": null,
            "version": {
                "box": "be59362e-87d8-4be3-addd-8363b07a2ae4",
                "number": {
                    "major": 0,
                    "minor": 1,
                    "patch": 3
                },
                "workspace": "matt",
                "description": "Updated Icon"
            },
            "readme": {
                "url": "/services/blobs/download/55db2cc60468cd7d5cd7ce04/rabbitmq.mdown",
                "upload_date": "2015-08-24 14:40:06.536836",
                "length": 4415,
                "content_type": "application/octet-stream"
            },
            "events": {
                "pre_install": {
                    "url": "/services/blobs/download/53571d577d0083337633e8eb/pre_install",
                    "upload_date": "2014-02-14 15:10:18.540864",
                    "length": 614,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                }
            },
            "schema": "http://elasticbox.net/schemas/boxes/script",
            "updated": "2015-12-22 22:16:30.618152",
            "description": "Robust and easy-to-use messaging for applications",
            "icon_metadata": {
                "image": "images/platform/technologies/rabbitmq.svg",
                "border": "#EE5715",
                "fill": "#FF6E0D"
            },
            "visibility": "public",
            "members": [],
            "categories": [
                "Message Broker"
            ],
            "icon": "/icons/boxes/be59362e-87d8-4be3-addd-8363b07a2ae4",
            "name": "RabbitMQ",
            "created": "2015-12-22 22:19:13.638201",
            "uri": "/services/boxes/540da08f-bbcf-4bb8-95bb-fcb690d44268",
            "organization": "elasticbox",
            "draft_from": "8698cbcc-d24e-4258-b18a-df9dd526e4d4"
        },
        {
            "schema": "http://elasticbox.net/schemas/boxes/cloudformation",
            "updated": "2015-05-22 20:25:17.104346",
            "automatic_updates": "off",
            "requirements": [
                "oracle"
            ],
            "description": "Oracle Database as a Service",
            "created": "2014-02-14 15:09:53.382579",
            "icon_metadata": {
                "image": "images/platform/oracle.png",
                "border": "#F8F8F9",
                "fill": "#FFFFFF"
            },
            "variables": [
                {
                    "required": false,
                    "type": "Port",
                    "name": "port",
                    "value": "1521",
                    "visibility": "public"
                },
                {
                    "required": true,
                    "type": "Text",
                    "name": "username",
                    "value": "",
                    "visibility": "public"
                },
                {
                    "required": true,
                    "type": "Password",
                    "name": "password",
                    "value": "",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "database_name",
                    "value": "",
                    "visibility": "public"
                }
            ],
            "uri": "/services/boxes/8117657c-572a-4608-a2e2-82204ffa2ba5",
            "visibility": "public",
            "name": "Oracle Database Service",
            "deleted": null,
            "members": [],
            "owner": "public",
            "organization": "ebx",
            "type": "Oracle Database Service",
            "id": "8117657c-572a-4608-a2e2-82204ffa2ba5",
            "draft_from": "67695551-7ca9-4f90-bb00-7e8bf774c487",
            "icon": "/icons/boxes/8117657c-572a-4608-a2e2-82204ffa2ba5"
        }
    ]
    

    POST /services/boxes

    Crea una nueva casilla en el espacio de trabajo personal y obtiene la casilla creada.

    URL

    Estructura

    [POST] /services/boxes
    

    Ejemplo

    [POST] https://cam.ctl.io/services/boxes
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    • Ninguno

    Parámetros del cuerpo de la solicitud

    Parámetro Estilo Tipo Descripción Req.
    requisitos plain array Requisitos de la casilla.
    owner plain secuencia Propietario de la casilla, el nombre de usuario de un espacio de trabajo personal y el nombre del espacio de trabajo para un espacio de trabajo de equipo.
    visibilidad plain secuencia Indica a qué nivel es visible la casilla. De forma predeterminada, las casillas son visibles en el espacio de trabajo en el que se crean. Puede tener uno de estos valores:
  • public (público): visible para usuarios del Gestor de aplicaciones en la nube en todas las organizaciones.
  • organization (organización): visible para todos los usuarios de la organización en la que se creó la casilla.
  • workspace (espacio de trabajo): de forma predeterminada, la casilla solo es visible para los miembros del espacio de trabajo donde se creó.
  • nombre plain secuencia Nombre de la casilla.
    descripción plain secuencia Descripción de la casilla.
    icon plain secuencia URL del ícono.
    esquema plain secuencia Esquema de la casilla.

    Cuerpo de la solicitud

    {
        "owner": "operation",
        "schema":"http://elasticbox.net/schemas/boxes/script",
        "requirements":["linux","apache"],
        "automatic_updates":"off",
        "name":"Test Starter Box",
        "description":"Test Started for our showcase",
        "variables": [
          {
            "required": false,
            "type": "Text",
            "name": "variable_name",
            "value": ""
          }
        ]
    }
    

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 400 Datos no válidos
    • 409 Conflicto

    Parámetros de la respuesta

    Parámetro Estilo Tipo Descripción
    visibilidad plain secuencia Indica a qué nivel es visible la casilla. De forma predeterminada, las casillas son visibles en el espacio de trabajo en el que se crean. Puede tener uno de estos valores:
  • public (público): visible para usuarios del Gestor de aplicaciones en la nube en todas las organizaciones.
  • organization (organización): visible para todos los usuarios de la organización en la que se creó la casilla.
  • workspace (espacio de trabajo): de forma predeterminada, la casilla solo es visible para los miembros del espacio de trabajo donde se creó.
  • organización plain secuencia Organización a la que pertenece la casilla.
    updated plain secuencia Fecha de la última actualización.
    descripción plain secuencia Descripción de la casilla.
    requisitos plain array Requisitos de la casilla.
    variables plain array Lista de variables de la casilla; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    created plain secuencia Fecha de creación.
    uri plain secuencia URI de la casilla.
    id plain array Identificador único de la casilla.
    esquema plain secuencia URI del esquema de la casilla.
    members plain array Lista de miembros de la casilla.
    owner plain secuencia Propietario de la casilla.
    icon plain secuencia URI del ícono de la casilla.
    eventos plain array Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), pre_configure (preconfiguración), pre_dispose (preeliminación), pre_install (preinstalación), pre_start (preinicio), pre_stop (predetención), start and stop (inicio y detención).
    event plain object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date (fecha de carga), length (longitud) y destination_path (ruta de destino).
    nombre plain secuencia Nombre de la casilla.

    Cuerpo de respuesta

    {
        "updated": "2018-12-28 15:05:52.816432",
        "automatic_updates": "off",
        "requirements": [
            "apache",
            "linux"
        ],
        "description": "Test Started for our showcase",
        "created": "2018-12-28 15:05:52.816432",
        "deleted": null,
        "variables": [
            {
                "required": false,
                "type": "Text",
                "name": "variable_name",
                "value": "",
                "visibility": "public"
            }
        ],
        "uri": "/services/boxes/0e725f03-052b-43e2-8c5d-32341bf60a8d",
        "visibility": "workspace",
        "events": {},
        "members": [],
        "owner": "operation",
        "organization": "centurylink",
        "schema": "http://elasticbox.net/schemas/boxes/script",
        "id": "0e725f03-052b-43e2-8c5d-32341bf60a8d",
        "name": "Test Starter Box"
    }
    

    GET /services/boxes/{box_id}

    Recupera una casilla existente, requiere la ID de la casilla especificada.

    URL

    Estructura

    [GET] /services/boxes/{box_id}
    

    Ejemplo

    [GET] https://cam.ctl.io/services/boxes/0e725f03-052b-43e2-8c5d-32341bf60a8d
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    box_id secuencia ID de la casilla.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 403 Prohibido
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Estilo Tipo Descripción
    visibilidad plain secuencia Indica a qué nivel es visible la casilla. De forma predeterminada, las casillas son visibles en el espacio de trabajo en el que se crean. Puede tener uno de estos valores:
  • public (público): visible para usuarios del Gestor de aplicaciones en la nube en todas las organizaciones.
  • organization (organización): visible para todos los usuarios de la organización en la que se creó la casilla.
  • workspace (espacio de trabajo): de forma predeterminada, la casilla solo es visible para los miembros del espacio de trabajo donde se creó.
  • organización plain secuencia Organización a la que pertenece la casilla.
    updated plain secuencia Fecha de la última actualización.
    descripción plain secuencia Descripción de la casilla.
    requisitos plain array Requisitos de la casilla.
    variables plain array Lista de variables de la casilla; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    created plain secuencia Fecha de creación.
    uri plain secuencia URI de la casilla.
    id plain array Identificador único de la casilla.
    esquema plain secuencia URI del esquema de la casilla.
    members plain array Lista de miembros de la casilla.
    owner plain secuencia Propietario de la casilla.
    icon plain secuencia URI del ícono de la casilla.
    eventos plain array Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), pre_configure (preconfiguración), pre_dispose (preeliminación), pre_install (preinstalación), pre_start (preinicio), pre_stop (predetención), start and stop (inicio y detención).
    event plain object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date (fecha de carga), length (longitud) y destination_path (ruta de destino).
    nombre plain secuencia Nombre de la casilla.

    Cuerpo de respuesta

    {
      "schema": "http://elasticbox.net/schemas/boxes/script",
      "updated": "2015-07-02 16:20:35.534878",
      "automatic_updates": "off",
      "requirements": [
        "linux"
      ],
      "description": "Wordpress Started for our showcase",
      "created": "2015-07-02 16:20:35.534878",
      "deleted": null,
      "variables": [],
      "uri": "/services/boxes/60cef61c-73dc-41d9-a32f-70f49a509c66",
      "visibility": "workspace",
      "events": {},
      "members": [],
      "owner": "project",
      "organization": "elasticbox",
      "id": "60cef61c-73dc-41d9-a32f-70f49a509c66",
      "name": "Wordpress Starter Box"
    }
    

    PUT /services/boxes/{box_id}

    Requiere la ID de casilla para actualizar una casilla existente. El cuerpo de la solicitud debe contener el objeto de la casilla y solo puede actualizar los siguientes campos: files (archivos), variables, ports (puertos), requirements (requisitos), description (descripción), icon (ícono), name (nombre), events (eventos) y members (miembros).

    URL

    Estructura

    [PUT] /services/boxes/{box_id}
    

    Ejemplo

    [PUT] https://cam.ctl.io/services/boxes/{box_id}
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Estilo Tipo Descripción Req.
    box_id plain secuencia ID de la casilla.

    Parámetros del cuerpo de la solicitud

    Parámetro Estilo Tipo Descripción Req.
    updated plain secuencia Fecha de la última actualización.
    descripción plain secuencia Descripción de la casilla.
    requisitos plain array Requisitos de la casilla.
    variables plain array Lista de variables de la casilla; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    created plain secuencia Fecha de creación.
    uri plain secuencia URI de la casilla.
    id plain array Identificador único de la casilla.
    esquema plain secuencia URI del esquema de la casilla.
    members plain array Lista de miembros de la casilla.
    owner plain secuencia Propietario de la casilla.
    organización plain secuencia Organización a la que pertenece la casilla.
    icon plain secuencia URI del ícono de la casilla.
    eventos plain array Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), pre_configure (preconfiguración), pre_dispose (preeliminación), pre_install (preinstalación), pre_start (preinicio), pre_stop (predetención), start and stop (inicio y detención).
    event plain object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date (fecha de carga), length (longitud) y destination_path (ruta de destino).
    nombre plain secuencia Nombre de la casilla.

    Cuerpo de la solicitud

    {
        "schema":"http://elasticbox.net/schemas/boxes/script",
        "updated":"2018-28-12 16:23:46.702968",
        "automatic_updates":"off",
        "requirements":[
            "linux"
        ],
        "description":"New description set",
        "created":"2015-07-02 16:20:15.098554",
        "deleted":null,
        "variables":[
            {
                "required":false,
                "type":"Text",
                "name":"variable_name",
                "value":"Default value",
                "visibility":"public"
    
            }
            ],
            "uri":"/services/boxes/9192cb3e-04e2-4c50-b8a5-a25c980479d4",
            "visibility":"workspace",
            "events":{},
            "members":[],
            "owner":"operation",
            "organization":"elasticbox",
            "id":"0e725f03-052b-43e2-8c5d-32341bf60a8d",
            "name":"Rename Test Starter Box"
    }
    

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 400 Datos no válidos
    • 403 Prohibido
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Estilo Tipo Descripción
    visibilidad plain secuencia Indica a qué nivel es visible la casilla. De forma predeterminada, las casillas son visibles en el espacio de trabajo en el que se crean. Puede tener uno de estos valores:
  • public (público): visible para usuarios del Gestor de aplicaciones en la nube en todas las organizaciones.
  • organization (organización): visible para todos los usuarios de la organización en la que se creó la casilla.
  • workspace (espacio de trabajo): de forma predeterminada, la casilla solo es visible para los miembros del espacio de trabajo donde se creó.
  • organización plain secuencia Organización a la que pertenece la casilla.
    updated plain secuencia Fecha de la última actualización.
    descripción plain secuencia Descripción de la casilla.
    requisitos plain array Requisitos de la casilla.
    variables plain array Lista de variables de la casilla; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    created plain secuencia Fecha de creación.
    uri plain secuencia URI de la casilla.
    id plain array Identificador único de la casilla.
    esquema plain secuencia URI del esquema de la casilla.
    members plain array Lista de miembros de la casilla.
    owner plain secuencia Propietario de la casilla.
    icon plain secuencia URI del ícono de la casilla.
    eventos plain array Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), pre_configure (preconfiguración), pre_dispose (preeliminación), pre_install (preinstalación), pre_start (preinicio), pre_stop (predetención), start and stop (inicio y detención).
    event plain object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date (fecha de carga), length (longitud) y destination_path (ruta de destino).
    nombre plain secuencia Nombre de la casilla.

    Cuerpo de respuesta

    {
        "updated": "2018-12-28 16:07:08.238548",
        "automatic_updates": "off",
        "requirements": [
            "linux"
        ],
        "description": "New description",
        "name": "Rename Test Starter Box",
        "created": "2018-12-28 15:05:52.816432",
        "deleted": null,
        "variables": [
            {
                "required": false,
                "type": "Text",
                "name": "variable_name",
                "value": "Default value",
                "visibility": "public"
            }
        ],
        "uri": "/services/boxes/0e725f03-052b-43e2-8c5d-32341bf60a8d",
        "visibility": "workspace",
        "id": "0e725f03-052b-43e2-8c5d-32341bf60a8d",
        "members": [],
        "owner": "operation",
        "organization": "centurylink",
        "events": {},
        "schema": "http://elasticbox.net/schemas/boxes/script"
    }
    

    DELETE /services/boxes/{box_id}

    Borra una casilla existente, requiere la ID de la casilla especificada.

    URL

    Estructura

    [DELETE] /services/boxes/{box_id}
    

    Ejemplo

    [DELETE] https://cam.ctl.io/services/boxes/0e725f03-052b-43e2-8c5d-32341bf60a8d
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Estilo Tipo Descripción Req.
    box_id plain secuencia ID de la casilla.

    Respuesta

    Códigos de respuesta normales

    • 204 Aceptar

    Códigos de respuesta de error comunes

    • 403 Prohibido
    • 404 No encontrado

    GET /services/boxes/{box_id}/stack

    Obtiene el stack de las casillas. El stack de casillas es una lista de casillas. Se incluyen todas las casillas que son una variable de la casilla proporcionada. La primera casilla es siempre la casilla proporcionada.

    URL

    Estructura

    [GET] /services/boxes//{box_id}/stack
    

    Ejemplo

    [GET] https://cam.ctl.io/services/boxes/f4dd017f-4bec-42f4-9614-bd27fd8baf74/stack
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    box_id secuencia ID de la casilla.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 400 Solicitud incorrecta

    Parámetros de la respuesta

    Parámetro Estilo Tipo Descripción
    visibilidad plain secuencia Indica a qué nivel es visible la casilla. De forma predeterminada, las casillas son visibles en el espacio de trabajo en el que se crean. Puede tener uno de estos valores:
  • public (público): visible para usuarios del Gestor de aplicaciones en la nube en todas las organizaciones.
  • organization (organización): visible para todos los usuarios de la organización en la que se creó la casilla.
  • workspace (espacio de trabajo): de forma predeterminada, la casilla solo es visible para los miembros del espacio de trabajo donde se creó.
  • organización plain secuencia Organización a la que pertenece la casilla.
    updated plain secuencia Fecha de la última actualización.
    descripción plain secuencia Descripción de la casilla.
    etiquetas plain array Etiquetas de casilla.
    variables plain array Lista de variables de la casilla; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    created plain secuencia Fecha de creación.
    uri plain secuencia URI de la casilla.
    id plain array Identificador único de la casilla.
    esquema plain secuencia URI del esquema de la casilla.
    members plain array Lista de miembros de la casilla.
    owner plain secuencia Propietario de la casilla.
    icon plain secuencia URI del ícono de la casilla.
    eventos plain array Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), pre_configure (preconfiguración), pre_dispose (preeliminación), pre_install (preinstalación), pre_start (preinicio), pre_stop (predetención), start and stop (inicio y detención).
    event plain object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date (fecha de carga), length (longitud) y destination_path (ruta de destino).
    nombre plain secuencia Nombre de la casilla.

    Cuerpo de respuesta

    El siguiente ejemplo es de la casilla que instala y configura Magento utilizando las casillas nginx y php-fpm para ejecutar la aplicación.

    [
        {
            "schema": "http://elasticbox.net/schemas/boxes/script",
            "updated": "2015-12-22 23:11:27.168377",
            "automatic_updates": "off",
            "requirements": [
                "linux"
            ],
            "description": "HA proxy for MySQL",
            "created": "2015-11-30 19:51:27.665743",
            "deleted": null,
            "variables": [
                {
                    "automatic_updates": "major",
                    "name": "haproxy",
                    "required": false,
                    "visibility": "private",
                    "value": "87830b58-ceaf-4790-81d1-4511816b012f",
                    "type": "Box"
                },
                {
                    "name": "http",
                    "required": false,
                    "visibility": "internal",
                    "value": "3306",
                    "scope": "haproxy",
                    "type": "Port"
                },
                {
                    "name": "fallback_binding_port",
                    "required": false,
                    "visibility": "internal",
                    "value": "3306",
                    "scope": "haproxy",
                    "type": "Port"
                },
                {
                    "name": "CONFIG_FILE",
                    "required": false,
                    "visibility": "internal",
                    "value": "/services/blobs/download/56719884974c520dbaf06db0/haproxy.conf",
                    "scope": "haproxy",
                    "type": "File"
                },
                {
                    "name": "MODE",
                    "required": false,
                    "visibility": "internal",
                    "value": "tcp",
                    "scope": "haproxy",
                    "type": "Options",
                    "options": "http,tcp,health"
                }
            ],
            "uri": "/services/boxes/f6deab86-3744-4be3-bd48-804697859423",
            "visibility": "workspace",
            "name": "MySQL HA Proxy",
            "icon_metadata": {
                "image": "images/platform/technologies/mysql.svg",
                "border": "#227C95",
                "fill": "#ffffff"
            },
            "events": {
                "configure": {
                    "url": "/services/blobs/download/565d277217fe944e08464179/configure",
                    "length": 1033,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                },
                "install": {
                    "url": "/services/blobs/download/565e37a9b1ac9f56ad579a8d/install",
                    "length": 634,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                }
            },
            "members": [
                {
                    "role": "collaborator",
                    "workspace": "rackspace1"
                }
            ],
            "owner": "super",
            "organization": "elasticbox",
            "id": "f6deab86-3744-4be3-bd48-804697859423",
            "icon": "/icons/boxes/f6deab86-3744-4be3-bd48-804697859423"
        },
        {
            "automatic_updates": "off",
            "variables": [
                {
                    "required": false,
                    "type": "Port",
                    "name": "http",
                    "value": "80",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Port",
                    "name": "fallback_binding_port",
                    "value": "80",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "CONFIG_FILE_NAME",
                    "value": "haproxy.cfg",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "CONFIG_FILE",
                    "value": "/services/blobs/download/55dc3b66b8485e51a2a7d236/haproxy.conf",
                    "visibility": "public"
                },
                {
                    "name": "MODE",
                    "required": false,
                    "visibility": "public",
                    "value": "http",
                    "type": "Options",
                    "options": "http,tcp,health"
                },
                {
                    "required": false,
                    "type": "Binding",
                    "name": "servers",
                    "value": "AnyBox",
                    "visibility": "private"
                }
            ],
            "friendly_id": "haproxy",
            "owner": "elasticbox",
            "id": "87830b58-ceaf-4790-81d1-4511816b012f",
            "requirements": [
                "linux"
            ],
            "icon_metadata": {
                "image": "images/platform/technologies/haproxy.svg",
                "border": "#3F52AA",
                "fill": "#ffffff"
            },
            "version": {
                "box": "fbe1f028-d95e-4bde-958b-00a5d5ca50d6",
                "number": {
                    "major": 0,
                    "minor": 1,
                    "patch": 4
                },
                "workspace": "arnaud-elasticbox",
                "description": "Fix apt-get update"
            },
            "readme": {
                "url": "#application-lifecycle-management-services/blobs/download/565e1bedb1ac9f56ad57986a/readme",
                "upload_date": "2015-12-01 22:15:09.369640",
                "length": 1778,
                "content_type": "text/x-markdown"
            },
            "events": {
                "start": {
                    "url": "/services/blobs/download/55dc3b65b8485e51a2a7d234/start",
                    "upload_date": "2015-08-25 09:54:45.995814",
                    "length": 40,
                    "destination_path": "scripts",
                    "content_type": null
                },
                "configure": {
                    "url": "/services/blobs/download/565cfea1b1ac9f56ad57867b/configure",
                    "upload_date": "2015-08-25 09:54:44.800362",
                    "length": 102,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                },
                "install": {
                    "url": "/services/blobs/download/565e26e017fe944e08465290/install",
                    "upload_date": "2015-08-25 09:54:43.653716",
                    "length": 524,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                }
            },
            "schema": "http://elasticbox.net/schemas/boxes/script",
            "updated": "2015-12-22 22:30:31.610021",
            "description": "Reliable, High Performance, TCP / HTTP Load Balancer",
            "deleted": null,
            "visibility": "public",
            "members": [],
            "categories": [
                "Load Balancer"
            ],
            "icon": "/services/blobs/download/55e6ca6bdda62a64df899596/haproxy.png",
            "name": "HAProxy",
            "created": "2015-12-01 23:02:07.975395",
            "uri": "/services/boxes/87830b58-ceaf-4790-81d1-4511816b012f",
            "organization": "elasticbox",
            "draft_from": "35b8e7c0-3074-48ed-9b89-28ec6f279830"
        },
        {
            "schema": "http://elasticbox.net/schemas/boxes/script",
            "updated": "2016-12-08 18:22:58.904383",
            "automatic_updates": "off",
            "requirements": [
                "linux"
            ],
            "description": "A free, open-source, high-performance HTTP server and",
            "created": "2015-09-12 19:44:34.159558",
            "deleted": null,
            "variables": [
                {
                    "required": false,
                    "type": "Port",
                    "name": "http",
                    "value": "80",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "PUBLIC_SSL_CERTIFICATE",
                    "value": "/services/blobs/download/55f48216dda62a5eab4a41ca/public.crt",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "PRIVATE_SSL_KEY",
                    "value": "/services/blobs/download/55f4822bb1ac9f70ec5d4bb9/private.key",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "NGINX_CONF",
                    "value": "/services/blobs/download/57325a5636b43a30a1fb77f7/nginx.conf",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "NGINX_USER",
                    "value": "root",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "NGINX_GROUP",
                    "value": "root",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "LOG_PATH",
                    "value": "/var/log/nginx",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "CACHE_PATH",
                    "value": "/var/nginx/cache",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "CERTIFICATE_PATH",
                    "value": "/var/nginx/certificates",
                    "visibility": "internal"
                }
            ],
            "readme": {
                "url": "#application-lifecycle-management-services/blobs/download/56297b2fb1ac9f4d02d1c2ab/readme",
                "upload_date": "2015-10-23 00:11:27.558696",
                "length": 2278,
                "content_type": "text/x-markdown"
            },
            "uri": "/services/boxes/8e176772-5c6c-4d5a-8f6e-cbf342142520",
            "visibility": "workspace",
            "name": "Nginx",
            "icon_metadata": {
                "image": "images/platform/technologies/nginx.svg",
                "border": "#007731",
                "fill": "#00964C"
            },
            "events": {
                "start": {
                    "url": "/services/blobs/download/565e31b5b1ac9f56ad57999b/start",
                    "length": 91,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                },
                "configure": {
                    "url": "/services/blobs/download/56673867dda62a46af5b4275/configure",
                    "length": 519,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                },
                "install": {
                    "url": "/services/blobs/download/57e55ad5c60625154acebee3/install",
                    "length": 1515,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                }
            },
            "members": [
                {
                    "role": "collaborator",
                    "workspace": "rackspace1"
                }
            ],
            "owner": "super",
            "organization": "elasticbox",
            "id": "8e176772-5c6c-4d5a-8f6e-cbf342142520",
            "draft_from": "790e4791-be29-40fa-85ca-619dd3061ced",
            "icon": "/icons/boxes/8e176772-5c6c-4d5a-8f6e-cbf342142520"
        },
        {
            "schema": "http://elasticbox.net/schemas/boxes/script",
            "updated": "2016-12-08 18:34:39.878898",
            "automatic_updates": "off",
            "requirements": [
                "internal",
                "linux"
            ],
            "name": "Magento",
            "created": "2015-09-12 18:25:43.678013",
            "deleted": null,
            "variables": [
                {
                    "name": "LOCAL_PATH",
                    "required": true,
                    "value": "/mnt/media",
                    "visibility": "internal",
                    "scope": "nfs",
                    "type": "Text"
                },
                {
                    "name": "CONFIG_FILE",
                    "required": false,
                    "value": "/services/blobs/download/565f3c92974c525666cd2f84/haproxy.conf",
                    "visibility": "public",
                    "scope": "redis.haproxy",
                    "type": "File"
                },
                {
                    "name": "CONFIG_FILE_NAME",
                    "required": false,
                    "value": "redis.cfg",
                    "visibility": "public",
                    "scope": "redis.haproxy",
                    "type": "Text"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "MAGENTO_URL",
                    "value": "https://s3-us-west-1.amazonaws.com/ebx-public/magento-1.9.2.2.tar-2015-10-27-03-19-32.gz",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "SERVER_NAME",
                    "value": "localhost",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Port",
                    "name": "http",
                    "value": "80",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "MAGENTO_CONF",
                    "value": "/services/blobs/download/565ca77d17fe944e08463a45/magento.conf",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "MAGENTO_CONFIG",
                    "value": "/services/blobs/download/565f3b1bb1ac9f56ad57b423/local.xml",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "MAGENTO_PATH",
                    "value": "/opt/magento",
                    "visibility": "internal"
                },
                {
                    "automatic_updates": "major",
                    "name": "redis",
                    "required": false,
                    "value": "053c6467-13e4-47fb-b6cf-46f51e6c2294",
                    "visibility": "public",
                    "type": "Box"
                },
                {
                    "automatic_updates": "major",
                    "name": "mysql",
                    "required": false,
                    "value": "f6deab86-3744-4be3-bd48-804697859423",
                    "visibility": "public",
                    "type": "Box"
                },
                {
                    "automatic_updates": "major",
                    "name": "nginx",
                    "required": false,
                    "visibility": "internal",
                    "value": "8e176772-5c6c-4d5a-8f6e-cbf342142520",
                    "type": "Box"
                },
                {
                    "automatic_updates": "major",
                    "name": "php",
                    "required": false,
                    "value": "ed085cfd-8707-4ef7-9611-6e84498d27c6",
                    "visibility": "internal",
                    "type": "Box"
                },
                {
                    "automatic_updates": "major",
                    "name": "nfs",
                    "required": false,
                    "value": "320e8be7-5d05-4f74-a040-5d74836ae608",
                    "visibility": "public",
                    "type": "Box"
                }
            ],
            "description": "Magento Web Layer",
            "readme": {
                "url": "#application-lifecycle-management-services/blobs/download/563a84b1dda62a1ca8ed5bdb/readme",
                "upload_date": "2015-11-04 22:20:33.241618",
                "length": 2264,
                "content_type": "text/x-markdown"
            },
            "uri": "/services/boxes/f4dd017f-4bec-42f4-9614-bd27fd8baf74",
            "visibility": "workspace",
            "events": {
                "configure": {
                    "url": "/services/blobs/download/566604fcb1ac9f56ad5809bf/configure",
                    "length": 702,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                },
                "install": {
                    "url": "/services/blobs/download/565e1855dda62a46af5acc97/install",
                    "length": 829,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                }
            },
            "icon_metadata": {
                "image": "images/platform/technologies/magento.svg",
                "border": "#191815",
                "fill": "#31302B"
            },
            "members": [
                {
                    "role": "collaborator",
                    "workspace": "rackspace1"
                },
                {
                    "role": "read",
                    "workspace": "centurylink"
                }
            ],
            "owner": "super",
            "organization": "elasticbox",
            "id": "f4dd017f-4bec-42f4-9614-bd27fd8baf74",
            "draft_from": "de1841f7-cfbe-4443-a996-d13807271a18",
            "icon": "/icons/boxes/f4dd017f-4bec-42f4-9614-bd27fd8baf74"
        },
        {
            "schema": "http://elasticbox.net/schemas/boxes/script",
            "updated": "2016-12-02 15:27:33.907741",
            "automatic_updates": "off",
            "requirements": [
                "linux"
            ],
            "description": "A simple and robust FastCGI Process Manager for PH",
            "created": "2015-09-12 18:37:50.024980",
            "deleted": null,
            "variables": [
                {
                    "required": false,
                    "type": "Text",
                    "name": "PHP_USER",
                    "value": "root",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "PHP_GROUP",
                    "value": "root",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "LOGS_DIRECTORY",
                    "value": "/var/log/php-fpm",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "PHP_INI",
                    "value": "/services/blobs/download/565deff917fe944e084647bf/php.ini",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "PHP_FPM_CONF",
                    "value": "/services/blobs/download/55f498d917fe94678daaf710/www.conf",
                    "visibility": "internal"
                }
            ],
            "uri": "/services/boxes/ed085cfd-8707-4ef7-9611-6e84498d27c6",
            "visibility": "workspace",
            "name": "PHP-FPM",
            "icon_metadata": {
                "image": "images/platform/technologies/php.svg",
                "border": "#484F8C",
                "fill": "#6068A4"
            },
            "events": {
                "start": {
                    "url": "/services/blobs/download/584190645939a07e69c92cdc/start",
                    "length": 140,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                },
                "configure": {
                    "url": "/services/blobs/download/565f491217fe944e08466e01/configure",
                    "length": 535,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                },
                "install": {
                    "url": "/services/blobs/download/565e173517fe944e084651ea/install",
                    "length": 1408,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                }
            },
            "members": [
                {
                    "role": "collaborator",
                    "workspace": "rackspace1"
                }
            ],
            "organization": "elasticbox",
            "readme": {
                "url": "#application-lifecycle-management-services/blobs/download/56297bc9dda62a3b79416cbb/readme",
                "upload_date": "2015-10-23 00:14:01.384408",
                "length": 2570,
                "content_type": "text/x-markdown"
            },
            "owner": "super",
            "id": "ed085cfd-8707-4ef7-9611-6e84498d27c6",
            "draft_from": "be643a40-e7e8-435a-a857-e06fe5854c3c",
            "icon": "/icons/boxes/ed085cfd-8707-4ef7-9611-6e84498d27c6"
        },
        {
            "schema": "http://elasticbox.net/schemas/boxes/script",
            "updated": "2015-12-22 23:12:59.290608",
            "automatic_updates": "off",
            "requirements": [
                "linux"
            ],
            "description": "HA Proxy for Redis cluster",
            "created": "2015-11-30 19:44:48.523649",
            "deleted": null,
            "variables": [
                {
                    "automatic_updates": "major",
                    "name": "haproxy",
                    "required": false,
                    "visibility": "private",
                    "value": "87830b58-ceaf-4790-81d1-4511816b012f",
                    "type": "Box"
                },
                {
                    "name": "CONFIG_FILE",
                    "required": false,
                    "visibility": "public",
                    "value": "/services/blobs/download/565cac16b1ac9f56ad578071/haproxy.conf",
                    "scope": "haproxy",
                    "type": "File"
                },
                {
                    "name": "MODE",
                    "required": false,
                    "value": "tcp",
                    "visibility": "public",
                    "scope": "haproxy",
                    "type": "Options",
                    "options": "http,tcp,health"
                }
            ],
            "uri": "/services/boxes/053c6467-13e4-47fb-b6cf-46f51e6c2294",
            "visibility": "workspace",
            "name": "Redis HA Proxy",
            "icon_metadata": {
                "image": "images/platform/technologies/redis.svg",
                "border": "#18191C",
                "fill": "#2A2C30"
            },
            "events": {
                "install": {
                    "url": "/services/blobs/download/565e380bdda62a46af5acef5/install",
                    "length": 417,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                }
            },
            "members": [
                {
                    "role": "collaborator",
                    "workspace": "rackspace1"
                }
            ],
            "owner": "super",
            "organization": "elasticbox",
            "id": "053c6467-13e4-47fb-b6cf-46f51e6c2294",
            "icon": "/icons/boxes/053c6467-13e4-47fb-b6cf-46f51e6c2294"
        },
        {
            "schema": "http://elasticbox.net/schemas/boxes/script",
            "updated": "2016-09-08 16:30:40.026518",
            "automatic_updates": "off",
            "requirements": [
                "linux"
            ],
            "description": "Mounts an NFS endpoint",
            "created": "2015-09-13 20:28:14.119832",
            "deleted": null,
            "variables": [
                {
                    "required": true,
                    "type": "Text",
                    "name": "LOCAL_PATH",
                    "value": "",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Binding",
                    "name": "server",
                    "value": "894c39a1-169f-4cfb-a377-20fd41ab95d5",
                    "visibility": "private"
                }
            ],
            "uri": "/services/boxes/320e8be7-5d05-4f74-a040-5d74836ae608",
            "visibility": "workspace",
            "name": "NFS Client",
            "owner": "super",
            "icon_metadata": {
                "image": "images/platform/abstract/disk.svg",
                "border": "#14427A",
                "fill": "#246099"
            },
            "events": {
                "configure": {
                    "url": "/services/blobs/download/5667372db1ac9f56ad580ebc/configure",
                    "length": 271,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                },
                "install": {
                    "url": "/services/blobs/download/566736f6dda62a46af5b4272/install",
                    "length": 213,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                }
            },
            "members": [
                {
                    "role": "collaborator",
                    "workspace": "rackspace1"
                }
            ],
            "readme": {
                "url": "#application-lifecycle-management-services/blobs/download/56297c02b1ac9f4d02d1c2ae/readme",
                "upload_date": "2015-10-23 00:14:58.186697",
                "length": 1515,
                "content_type": "text/x-markdown"
            },
            "organization": "elasticbox",
            "id": "320e8be7-5d05-4f74-a040-5d74836ae608",
            "draft_from": "7a24d2c7-8e8b-45bb-8a9c-eaf6899d3e85",
            "icon": "/icons/boxes/320e8be7-5d05-4f74-a040-5d74836ae608"
        }
    ]
    

    GET /services/boxes/{box_id}/bindings

    Obtiene una lista de objetos de casilla que son enlaces de la casilla solicitada. Requiere la ID de casilla especificada como parámetro box_id.

    URL

    Estructura

    [GET] /services/boxes//{box_id}/bindings
    

    Ejemplo

    [GET] https://cam.ctl.io/services/boxes/f4dd017f-4bec-42f4-9614-bd27fd8baf74/bindings
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    box_id secuencia ID de la casilla.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 400 Solicitud incorrecta

    Parámetros de la respuesta

    Parámetro Estilo Tipo Descripción
    uri plain secuencia URI de la casilla.
    id plain array Identificador único de la casilla.
    icon plain secuencia URI del ícono de la casilla.
    nombre plain secuencia Nombre de la casilla.

    Cuerpo de respuesta

    [
        {
            "uri": "/services/boxes/894c39a1-169f-4cfb-a377-20fd41ab95d5",
            "name": "NFS Server",
            "icon": "/icons/boxes/894c39a1-169f-4cfb-a377-20fd41ab95d5",
            "id": "894c39a1-169f-4cfb-a377-20fd41ab95d5"
        }
    ]
    

    GET /services/boxes/{box_id}/versions

    Obtiene una lista de versiones de la casilla solicitada. Requiere la ID de casilla especificada como parámetro box_id. Si la casilla especificada no tiene versiones, obtiene una lista vacía.

    URL

    Estructura

    [GET] /services/boxes//{box_id}/versions
    

    Ejemplo

    [GET] https://cam.ctl.io/services/boxes/f4dd017f-4bec-42f4-9614-bd27fd8baf74/versions
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    box_id secuencia ID de la casilla.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 403 Prohibido
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Estilo Tipo Descripción
    updated plain secuencia Fecha de la última actualización.
    descripción plain secuencia Descripción de la casilla.
    etiquetas plain array Etiquetas de casilla.
    variables plain array Lista de variables de la casilla; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    members plain array Lista de miembros de la casilla.
    owner plain secuencia Propietario de la casilla.
    id plain array Identificador único de la casilla.
    icon plain secuencia URI del ícono de la casilla.
    visibilidad plain secuencia Indica a qué nivel es visible la casilla. De forma predeterminada, las casillas son visibles en el espacio de trabajo en el que se crean. Puede tener uno de estos valores:
  • public (público): visible para usuarios del Gestor de aplicaciones en la nube en todas las organizaciones.
  • organization (organización): visible para todos los usuarios de la organización en la que se creó la casilla.
  • workspace (espacio de trabajo): de forma predeterminada, la casilla solo es visible para los miembros del espacio de trabajo donde se creó.
  • organización plain secuencia Organización a la que pertenece la casilla.
    nombre plain secuencia Nombre de la casilla.
    created plain secuencia Fecha de creación.
    uri plain secuencia URI de la casilla.
    versión plain object El objeto de versión de casilla contiene los parámetros box (casilla), description (descripción) y workspace (espacio de trabajo).
    eventos plain array Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), pre_configure (preconfiguración), pre_dispose (preeliminación), pre_install (preinstalación), pre_start (preinicio), pre_stop (predetención), start and stop (inicio y detención).
    event plain object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date (fecha de carga), length (longitud) y destination_path (ruta de destino).
    esquema plain secuencia URI del esquema de la casilla.

    Cuerpo de respuesta

    [
        {
            "schema": "http://elasticbox.net/schemas/boxes/script",
            "updated": "2016-11-22 13:39:23.680784",
            "automatic_updates": "off",
            "requirements": [
                "internal",
                "linux"
            ],
            "description": "Magento Web Layer",
            "created": "2016-05-10 22:03:20.342575",
            "deleted": null,
            "variables": [
                {
                    "name": "LOCAL_PATH",
                    "required": true,
                    "value": "/mnt/media",
                    "visibility": "internal",
                    "scope": "nfs",
                    "type": "Text"
                },
                {
                    "name": "CONFIG_FILE",
                    "required": false,
                    "value": "/services/blobs/download/565f3c92974c525666cd2f84/haproxy.conf",
                    "visibility": "public",
                    "scope": "redis.haproxy",
                    "type": "File"
                },
                {
                    "name": "CONFIG_FILE_NAME",
                    "required": false,
                    "value": "redis.cfg",
                    "visibility": "public",
                    "scope": "redis.haproxy",
                    "type": "Text"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "MAGENTO_URL",
                    "value": "https://s3-us-west-1.amazonaws.com/ebx-public/magento-1.9.2.2.tar-2015-10-27-03-19-32.gz",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "SERVER_NAME",
                    "value": "localhost",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Port",
                    "name": "http",
                    "value": "80",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "MAGENTO_CONF",
                    "value": "/services/blobs/download/565ca77d17fe944e08463a45/magento.conf",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "MAGENTO_CONFIG",
                    "value": "/services/blobs/download/565f3b1bb1ac9f56ad57b423/local.xml",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "MAGENTO_PATH",
                    "value": "/opt/magento",
                    "visibility": "internal"
                },
                {
                    "automatic_updates": "major",
                    "name": "redis",
                    "required": false,
                    "value": "053c6467-13e4-47fb-b6cf-46f51e6c2294",
                    "visibility": "public",
                    "type": "Box"
                },
                {
                    "automatic_updates": "major",
                    "name": "mysql",
                    "required": false,
                    "value": "f6deab86-3744-4be3-bd48-804697859423",
                    "visibility": "public",
                    "type": "Box"
                },
                {
                    "automatic_updates": "major",
                    "name": "nginx",
                    "required": false,
                    "visibility": "internal",
                    "value": "8e176772-5c6c-4d5a-8f6e-cbf342142520",
                    "type": "Box"
                },
                {
                    "automatic_updates": "major",
                    "name": "php",
                    "required": false,
                    "value": "ed085cfd-8707-4ef7-9611-6e84498d27c6",
                    "visibility": "internal",
                    "type": "Box"
                },
                {
                    "automatic_updates": "major",
                    "name": "nfs",
                    "required": false,
                    "value": "320e8be7-5d05-4f74-a040-5d74836ae608",
                    "visibility": "public",
                    "type": "Box"
                }
            ],
            "readme": {
                "url": "#application-lifecycle-management-services/blobs/download/563a84b1dda62a1ca8ed5bdb/readme",
                "upload_date": "2015-11-04 22:20:33.241618",
                "length": 2264,
                "content_type": "text/x-markdown"
            },
            "uri": "/services/boxes/de1841f7-cfbe-4443-a996-d13807271a18",
            "visibility": "workspace",
            "name": "Magento",
            "icon_metadata": {
                "image": "images/platform/technologies/magento.svg",
                "border": "#191815",
                "fill": "#31302B"
            },
            "version": {
                "box": "f4dd017f-4bec-42f4-9614-bd27fd8baf74",
                "number": {
                    "major": 0,
                    "minor": 1,
                    "patch": 1
                },
                "workspace": "alberto",
                "description": "Updated boxes"
            },
            "events": {
                "configure": {
                    "url": "/services/blobs/download/566604fcb1ac9f56ad5809bf/configure",
                    "length": 702,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                },
                "install": {
                    "url": "/services/blobs/download/565e1855dda62a46af5acc97/install",
                    "length": 829,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                }
            },
            "members": [
                {
                    "role": "collaborator",
                    "workspace": "rackspace1"
                },
                {
                    "role": "read",
                    "workspace": "centurylink"
                }
            ],
            "owner": "super",
            "organization": "elasticbox",
            "id": "de1841f7-cfbe-4443-a996-d13807271a18",
            "icon": "/icons/boxes/f4dd017f-4bec-42f4-9614-bd27fd8baf74"
        },
        {
            "schema": "http://elasticbox.net/schemas/boxes/script",
            "updated": "2016-11-22 13:39:23.680784",
            "automatic_updates": "off",
            "requirements": [
                "internal",
                "linux"
            ],
            "description": "Magento Web Layer",
            "created": "2015-12-10 16:11:01.542052",
            "icon_metadata": {
                "image": "images/platform/technologies/magento.svg",
                "border": "#191815",
                "fill": "#31302B"
            },
            "variables": [
                {
                    "name": "LOCAL_PATH",
                    "required": true,
                    "visibility": "internal",
                    "value": "/mnt/media",
                    "scope": "nfs",
                    "type": "Text"
                },
                {
                    "name": "CONFIG_FILE",
                    "required": false,
                    "visibility": "public",
                    "value": "/services/blobs/download/565f3c92974c525666cd2f84/haproxy.conf",
                    "scope": "redis.haproxy",
                    "type": "File"
                },
                {
                    "name": "CONFIG_FILE_NAME",
                    "required": false,
                    "visibility": "public",
                    "value": "redis.cfg",
                    "scope": "redis.haproxy",
                    "type": "Text"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "SERVER_NAME",
                    "value": "localhost",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Port",
                    "name": "http",
                    "value": "80",
                    "visibility": "public"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "MAGENTO_URL",
                    "value": "https://s3-us-west-1.amazonaws.com/ebx-public/magento-1.9.2.2.tar-2015-10-27-03-19-32.gz",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "MAGENTO_CONF",
                    "value": "/services/blobs/download/565ca77d17fe944e08463a45/magento.conf",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "File",
                    "name": "MAGENTO_CONFIG",
                    "value": "/services/blobs/download/565f3b1bb1ac9f56ad57b423/local.xml",
                    "visibility": "internal"
                },
                {
                    "required": false,
                    "type": "Text",
                    "name": "MAGENTO_PATH",
                    "value": "/opt/magento",
                    "visibility": "internal"
                },
                {
                    "automatic_updates": "major",
                    "name": "mysql",
                    "required": false,
                    "visibility": "public",
                    "value": "f6deab86-3744-4be3-bd48-804697859423",
                    "type": "Box"
                },
                {
                    "automatic_updates": "major",
                    "name": "redis",
                    "required": false,
                    "visibility": "public",
                    "value": "053c6467-13e4-47fb-b6cf-46f51e6c2294",
                    "type": "Box"
                },
                {
                    "automatic_updates": "major",
                    "name": "nginx",
                    "required": false,
                    "value": "8e176772-5c6c-4d5a-8f6e-cbf342142520",
                    "visibility": "internal",
                    "type": "Box"
                },
                {
                    "automatic_updates": "major",
                    "name": "php",
                    "required": false,
                    "visibility": "internal",
                    "value": "ed085cfd-8707-4ef7-9611-6e84498d27c6",
                    "type": "Box"
                },
                {
                    "automatic_updates": "major",
                    "name": "nfs",
                    "required": false,
                    "visibility": "public",
                    "value": "320e8be7-5d05-4f74-a040-5d74836ae608",
                    "type": "Box"
                }
            ],
            "readme": {
                "url": "#application-lifecycle-management-services/blobs/download/563a84b1dda62a1ca8ed5bdb/readme",
                "upload_date": "2015-11-04 22:20:33.241618",
                "length": 2264,
                "content_type": "text/x-markdown"
            },
            "uri": "/services/boxes/e75f27f6-fded-4647-8630-bd99cf62fcee",
            "visibility": "workspace",
            "name": "Magento",
            "deleted": null,
            "version": {
                "box": "f4dd017f-4bec-42f4-9614-bd27fd8baf74",
                "number": {
                    "major": 0,
                    "minor": 1,
                    "patch": 0
                },
                "workspace": "diego",
                "description": "automatic"
            },
            "events": {
                "configure": {
                    "url": "/services/blobs/download/566604fcb1ac9f56ad5809bf/configure",
                    "length": 702,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                },
                "install": {
                    "url": "/services/blobs/download/565e1855dda62a46af5acc97/install",
                    "length": 829,
                    "destination_path": "scripts",
                    "content_type": "text/x-shellscript"
                }
            },
            "members": [
                {
                    "role": "collaborator",
                    "workspace": "rackspace1"
                },
                {
                    "role": "read",
                    "workspace": "centurylink"
                }
            ],
            "owner": "super",
            "organization": "elasticbox",
            "id": "e75f27f6-fded-4647-8630-bd99cf62fcee",
            "icon": "/services/blobs/download/55f46e1c974c52710858afb6/magento.png"
        }
    ]
    

    PUT /services/boxes/{box_id}/diff

    Compara una casilla con la casilla enviada. Requiere la ID de la casilla especificada como parámetro box_id.

    URL

    Estructura

    [PUT] /services/boxes//{box_id}/diff
    

    Ejemplo

    [PUT] https://cam.ctl.io/services/boxes/f4dd017f-4bec-42f4-9614-bd27fd8baf74/diff
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Estilo Tipo Descripción Req.
    box_id plain secuencia ID de la casilla.

    Parámetros del cuerpo de la solicitud

    Parámetro Estilo Tipo Descripción Req.
    updated plain secuencia Fecha de la última actualización.
    descripción plain secuencia Descripción de la casilla.
    etiquetas plain array Etiquetas de casilla.
    variables plain array Lista de variables de la casilla; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    members plain array Lista de miembros de la casilla.
    owner plain secuencia Propietario de la casilla.
    id plain array Identificador único de la casilla.
    icon plain secuencia URI del ícono de la casilla.
    visibilidad plain secuencia Indica a qué nivel es visible la casilla. De forma predeterminada, las casillas son visibles en el espacio de trabajo en el que se crean. Puede tener uno de estos valores:
  • public (público): visible para usuarios del Gestor de aplicaciones en la nube en todas las organizaciones.
  • organization (organización): visible para todos los usuarios de la organización en la que se creó la casilla.
  • workspace (espacio de trabajo): de forma predeterminada, la casilla solo es visible para los miembros del espacio de trabajo donde se creó.
  • organización plain secuencia Organización a la que pertenece la casilla.
    nombre plain secuencia Nombre de la casilla.
    created plain secuencia Fecha de creación.
    uri plain secuencia URI de la casilla.
    versión plain object El objeto de versión de casilla contiene los parámetros box (casilla), description (descripción) y workspace (espacio de trabajo).
    eventos plain array Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), pre_configure (preconfiguración), pre_dispose (preeliminación), pre_install (preinstalación), pre_start (preinicio), pre_stop (predetención), start and stop (inicio y detención).
    event plain object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date (fecha de carga), length (longitud) y destination_path (ruta de destino).
    esquema plain secuencia URI del esquema de la casilla.

    Cuerpo de la solicitud

    {
      "updated": "2018-07-02 13:36:30.348041",
      "automatic_updates": "off",
      "requirements": [
        "linux",
        "new_requirement"
      ],
      "description": "Test Started for our showcase",
      "name": "Test Starter Box",
      "created": "2018-12-31 11:20:27.349315",
      "deleted": null,
      "variables": [
        {
          "required": false,
          "type": "Text",
          "name": "variable_name",
          "value": "New value",
          "visibility": "public"
        }
      ],
      "uri": "/services/boxes/60cef61c-73dc-41d9-a32f-70f49a509c66",
      "visibility": "workspace",
      "id": "60cef61c-73dc-41d9-a32f-70f49a509c66",
      "members": [],
      "owner": "operation",
      "organization": "elasticbox",
      "events": {},
      "draft_from": "ca197de8-25e1-4e9b-9d45-c99a049249fc",
      "schema": "http://elasticbox.net/schemas/boxes/script"
    }
    

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 403 Prohibido
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Estilo Tipo Descripción
    box_variables plain object Diferencias en las variables de la casilla; el objeto contiene un título y tres listas: removed (eliminadas), added (agregadas) y changed (modificadas).
    box_variables.removed plain array Lista de variables de la casilla eliminadas; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    box_variables.added plain array Lista de variables de la casilla agregadas; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    box_variables.changed plain array Lista de variables de la casilla modificadas; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    box_details plain object Diferencias en los detalles de la casilla; el objeto contiene un título y tres listas: removed (eliminadas), added (agregadas) y changed (modificadas).
    box_profile_properties plain object Diferencias en las propiedades del perfil de la casilla, el objeto contiene un título y tres listas: removed (eliminadas), added (agregadas) y changed (modificadas). Disponible para casillas para política.
    box_events plain array Lista de eventos de la casilla.
    modificado plain boolean Hubo cambios entre las versiones.
    {
        "changed": true,
        "box_services": {
            "removed": [],
            "added": []
        },
        "box_events": [],
        "box_variables": {
            "title": "Modified Variables",
            "removed": [],
            "changed": [
                [
                    {
                        "required": false,
                        "type": "Text",
                        "name": "variable_name",
                        "value": "New value",
                        "visibility": "public"
                    },
                    {
                        "required": false,
                        "type": "Text",
                        "name": "variable_name",
                        "value": "",
                        "visibility": "public"
                    }
                ]
            ],
            "added": [],
            "files_diff": []
        },
        "box_readme": [],
        "box_details": {
            "title": "Modified Box Details",
            "removed": [],
            "added": [],
            "changed": [
                {
                    "new": "linux, new_requirement",
                    "name": "Requirements",
                    "previous": "apache, linux"
                }
            ]
        },
        "box_profile_properties": {
            "removed": [],
            "changed": [],
            "added": [],
            "files_diff": []
        },
        "box_services_variables": {
            "removed": [],
            "added": [],
            "files_diff": []
        }
    }
    

    Cree y lance una casilla de CloudFormation

    Crear una casilla de CloudFormation con una plantilla

    1. POST /services/boxes
      Crea una casilla del tipo de servicio de CloudFormation. Ver el ejemplo para crear una en CloudFormation.

    2. GET /services/blobs/download/{file_id}/{file_name}
      Recupera contenido de un URL o archivo URL proporcionado. Ver el ejemplo para crear una en CloudFormation, parte 2.
      Envía una plantilla de JSON vacía como blob.

    3. POST /services/blobs/upload/{file_name}
      Crea un blob desde datos de una plantilla enviada a través de un archivo o URL. Aquí los datos de la plantilla están en el cuerpo de la solicitud. Ver el ejemplo para crear una en CloudFormation, parte 3.

    4. PUT /services/boxes/{box_id}
      Actualiza la casilla de CloudFormation con la plantilla. Ver el ejemplo para crear una en CloudFormation, parte 4.

    Modificar la plantilla de CloudFormation

    1. POST /services/blobs/upload/{file_name}
      Crea un blob desde datos de una plantilla modificada. Ver el ejemplo para modificar una en CloudFormation.

    2. PUT /services/boxes/{box_id}
      Actualiza la casilla de CloudFormation. Ver el ejemplo para modificar una en CloudFormation, parte 2.

    Eliminar una casilla de CloudFormation

    1. DELETE /services/box/{box_id}
      Elimina la casilla de CloudFormation del catálogo de plantillas.

    Iniciar una casilla de CloudFormation

    1. POST /services/profiles
      Este paso es opcional. Transfiere la configuración de implementación a un nuevo perfil de implementación para iniciar la casilla en la infraestructura del proveedor. Ver el ejemplo para iniciar una en CloudFormation.

    2. POST /services/instances
      Crea una nueva instancia de la casilla de CloudFormation.

    Actualizar un stack de CloudFormation en tiempo real

    1. POST /services/blobs/upload
      Carga los datos de la plantilla modificada. Ver el ejemplo para actualizar una en CloudFormation.

    2. PUT /services/instances/{instance_id}
      Actualiza la instancia con los cambios de la plantilla. Ver el ejemplo para actualizar una en CloudFormation, parte 2.

    3. PUT /services/instances/{instance_id}/reconfigure
      Reconfigura el stack según los cambios. Ver el ejemplo para actualizar una en CloudFormation, parte 3.

    Ejemplo: Crear una casilla de CloudFormation con una plantilla

    1. POST https://cam.ctl.io/services/boxes/

    Creación de una casilla del tipo de servicio CloudFormation.

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Cuerpo de la solicitud

    {
        "owner": "operations",
        "schema":"http://elasticbox.net/schemas/boxes/cloudformation",
        "automatic_updates":"off",
        "name":"Wordpress Starter CF",
        "description":"Wordpress Started for our showcase"
    }
    

    Respuesta

    Cuerpo de respuesta

    {
        "updated": "2019-01-02 10:57:43.782726",
        "automatic_updates": "off",
        "description": "Wordpress Started for our showcase",
        "deleted": null,
        "variables": [],
        "visibility": "workspace",
        "members": [],
        "owner": "operations",
        "id": "755a09cc-6407-44e2-9993-539c386ee559",
        "requirements": [],
        "name": "Wordpress Starter CF",
        "created": "2019-01-02 10:57:43.782726",
        "uri": "/services/boxes/755a09cc-6407-44e2-9993-539c386ee559",
        "organization": "centurylink",
        "type": "CloudFormation Service",
        "schema": "http://elasticbox.net/schemas/boxes/cloudformation"
    }
    
    

    2. GET https://cam.ctl.io/services/blobs/download/{blob_id}/file_name

    Recupera contenido de un URL proporcionado. Una vez que se ha comprobado que la plantilla es la correcta, se la puede asignar a la casilla de CloudFormation.

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Respuesta

    Cuerpo de respuesta

    {
       "AWSTemplateFormatVersion":"2010-09-09",
       "Description":"AWS CloudFormation Sample Template WordPress_Single_Instance_With_RDS: WordPress is web software you can use to create a beautiful website or blog. This template installs a single-instance WordPress deployment using an Amazon RDS database instance for storage. It demonstrates using the AWS CloudFormation bootstrap scripts to install packages and files at instance launch time. **WARNING** This template creates an Amazon EC2 instance and an Amazon RDS database instance. You will be billed for the AWS resources used if you create a stack from this template.",
       "Parameters":{
          "KeyName":{
             "Description":"Name of an existing EC2 KeyPair to enable SSH access to the instances",
             "Type":"String",
             "MinLength":"1",
             "MaxLength":"255",
             "AllowedPattern":"[\\x20-\\x7E]*",
             "ConstraintDescription":"can contain only ASCII characters."
          },
        ...
       }
    ...
    ...
    
       "Outputs":{
          "WebsiteURL":{
             "Value":{
                "Fn::Join":[
                   "",
                   [
                      "http://",
                      {
                         "Fn::GetAtt":[
                            "WebServer",
                            "PublicDnsName"
                         ]
                      },
                      "/wordpress"
                   ]
                ]
             },
             "Description":"WordPress Website"
          }
       }
    }
    

    3. POST https://cam.ctl.io/services/blobs/upload/template.json

    Otra opción es crear la plantilla desde los datos enviados a través de un URL.

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Cuerpo de la solicitud

    {
       "AWSTemplateFormatVersion":"2010-09-09",
       "Description":"AWS CloudFormation Sample Template WordPress_Single_Instance_With_RDS: WordPress is web software you can use to create a beautiful website or blog. This template installs a single-instance WordPress deployment using an Amazon RDS database instance for storage. It demonstrates using the AWS CloudFormation bootstrap scripts to install packages and files at instance launch time. **WARNING** This template creates an Amazon EC2 instance and an Amazon RDS database instance. You will be billed for the AWS resources used if you create a stack from this template.",
       "Parameters":{
          "KeyName":{
             "Description":"Name of an existing EC2 KeyPair to enable SSH access to the instances",
             "Type":"String",
             "MinLength":"1",
             "MaxLength":"255",
             "AllowedPattern":"[\\x20-\\x7E]*",
             "ConstraintDescription":"can contain only ASCII characters."
          },
        ...
       },
    ...
    ...
       "Outputs":{
          "WebsiteURL":{
             "Value":{
                "Fn::Join":[
                   "",
                   [
                      "http://",
                      {
                         "Fn::GetAtt":[
                            "WebServer",
                            "PublicDnsName"
                         ]
                      },
                      "/wordpress"
                   ]
                ]
             },
             "Description":"WordPress Website"
          }
       }
    }
    
    

    Respuesta

    Cuerpo de respuesta

    {
       "url":"/services/blobs/download/536a9e867d0083771808bacd/template.json",
       "upload_date":"2014-05-07 20:58:46.650140",
       "length":9739,
       "content_type":"text/x-shellscript"
    }
    

    4. PUT https://cam.ctl.io/services/boxes/{box_id}

    Por último, se actualiza la casilla de CloudFormation con una de las plantillas que se obtuvieron en los dos últimos pasos.

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Cuerpo de la solicitud

    {
        "schema": "http://elasticbox.net/schemas/boxes/cloudformation",
        "automatic_updates": "off",
        "requirements": [],
        "description": "Wordpress Started for our showcase",
        "deleted": null,
        "variables": [],
        "uri": "/services/boxes/262d4cbe-9ad9-4069-b6a8-76fda70a4d90",
        "visibility": "workspace",
        "members": [],
        "owner": "operations",
        "organization": "elasticbox",
        "type": "CloudFormation Service",
        "id": "262d4cbe-9ad9-4069-b6a8-76fda70a4d90",
        "name": "Wordpress Starter CF",
        "template": {
            "url": "/services/blobs/download/536a9e867d0083771808bacd/template.json"
        }
    }
    

    Respuesta

    Cuerpo de respuesta

    {
        "schema": "http://elasticbox.net/schemas/boxes/cloudformation",
        "updated": "2015-10-28 12:03:32.661399",
        "automatic_updates": "off",
        "requirements": [],
        "description": "Wordpress Started for our showcase",
        "created": "2015-10-28 11:24:01.854958",
        "deleted": null,
        "variables": [
            {
                "value": "",
                "type": "Text",
                "name": "KeyName",
                "visibility": "public"
            },
            {
                "value": "",
                "type": "Text",
                "name": "SourceCidrForRDP",
                "visibility": "public"
            },
            {
                "value": "m1.large",
                "type": "Text",
                "name": "InstanceType",
                "visibility": "public"
            }
        ],
        "uri": "/services/boxes/262d4cbe-9ad9-4069-b6a8-76fda70a4d90",
        "visibility": "workspace",
        "template": {
            "url": "/services/blobs/download/536a9e867d0083771808bacd/template.json"
        },
        "members": [],
        "owner": "operations",
        "organization": "elasticbox",
        "type": "CloudFormation Service",
        "id": "262d4cbe-9ad9-4069-b6a8-76fda70a4d90",
        "name": "Wordpress Starter CF"
    }
    

    Ejemplo: Modificar la plantilla de CloudFormation

    1. POST http://cam.ctl.io/services/blobs/upload/template.json

    Crea un blob desde datos de una plantilla modificada.

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Cuerpo de la solicitud

    {
        "AWSTemplateFormatVersion": "2010-09-09",
        "Description": "AWS CloudFormation Sample Template WordPress_Single_Instance_With_RDS: WordPress is web software you can use to create a beautiful website or blog. This template installs a single-instance WordPress deployment using an Amazon RDS database instance for storage. It demonstrates using the AWS CloudFormation bootstrap scripts to install packages and files at instance launch time. **WARNING** This template creates an Amazon EC2 instance and an Amazon RDS database instance. You will be billed for the AWS resources used if you create a stack from this template.",
        "Parameters": {
            "KeyName": {
                "Description": "Name of an existing EC2 KeyPair to enable SSH access to the instances",
                "Type": "String",
                "MinLength": "1",
                "MaxLength": "255",
                "AllowedPattern": "[\\x20-\\x7E]*",
                "ConstraintDescription": "can contain only ASCII characters."
            },
           ...
        },
    …
    …
        "Outputs": {
            "WebsiteURL": {
                "Value": {
                    "Fn::Join": [
                        "",
                        [
                            "http://",
                            {
                                "Fn::GetAtt": [
                                    "WebServer",
                                    "PublicDnsName"
                                ]
                            },
                            "/wordpress"
                        ]
                    ]
                },
                "Description": "WordPress Website"
            }
        }
    }
    

    Respuesta

    Cuerpo de respuesta

    {
       "url":"/services/blobs/download/536bd5619ac37b2f70318a87/template.json",
       "upload_date":"2014-05-08 19:05:05.761144",
       "length":15922,
       "content_type":"text/x-shellscript"
    }
    

    2. PUT http://cam.ctl.io/services/boxes/{box_id}

    Actualiza la casilla de CloudFormation.

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Cuerpo de la solicitud

    {
        "schema": "http://elasticbox.net/schemas/boxes/cloudformation",
        "automatic_updates": "off",
        "requirements": [],
        "description": "Wordpress Started for our showcase",
        "deleted": null,
        "variables": [],
        "uri": "/services/boxes/262d4cbe-9ad9-4069-b6a8-76fda70a4d90",
        "visibility": "workspace",
        "members": [],
        "owner": "operations",
        "organization": "elasticbox",
        "type": "CloudFormation Service",
        "id": "262d4cbe-9ad9-4069-b6a8-76fda70a4d90",
        "name": "Wordpress Starter CF",
        "template": {
            "url": "//services/blobs/download/536bd5619ac37b2f70318a87/template.json"
        }
    }
    

    Respuesta

    Cuerpo de respuesta

    {
        "schema": "http://elasticbox.net/schemas/boxes/cloudformation",
        "updated": "2015-10-28 12:03:32.661399",
        "automatic_updates": "off",
        "requirements": [],
        "description": "Wordpress Started for our showcase",
        "created": "2015-10-28 11:24:01.854958",
        "deleted": null,
        "variables": [
            {
                "value": "",
                "type": "Text",
                "name": "KeyName",
                "visibility": "public"
            },
            {
                "value": "",
                "type": "Text",
                "name": "SourceCidrForRDP",
                "visibility": "public"
            },
            {
                "value": "m1.large",
                "type": "Text",
                "name": "InstanceType",
                "visibility": "public"
            }
        ],
        "uri": "/services/boxes/262d4cbe-9ad9-4069-b6a8-76fda70a4d90",
        "visibility": "workspace",
        "template": {
            "url": "/services/blobs/download/536bd5619ac37b2f70318a87/template.json"
        },
        "members": [],
        "owner": "operations",
        "organization": "elasticbox",
        "type": "CloudFormation Service",
        "id": "262d4cbe-9ad9-4069-b6a8-76fda70a4d90",
        "name": "Wordpress Starter CF"
    }
    

    Ejemplo: Iniciar una casilla de CloudFormation

    1. POST https://cam.ctl.io/services/instances

    Crea una nueva instancia de la casilla de CloudFormation.

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Cuerpo de la solicitud

    {
      "schema": "http://elasticbox.net/schemas/deploy-instance-request",
      "owner": "operations",
      "name": "CF WordPress 2",
      "box": {
        "id": "91645eed-173f-4aac-a713-69c6be7582fe",
        "variables": [
    
        ]
      },
      "instance_tags": [
    
      ],
      "automatic_updates": "off",
      "policy_box": {
        "id": "91645eed-173f-4aac-a713-69c6be7582fe",
        "variables": [
          {
            "name": "provider_id",
            "value": "7e841966-1dec-4460-a981-1db4e1eec10c",
            "type": "Text"
          },
          {
            "name": "location",
            "value": "ap-northeast-1",
            "type": "Text"
          }
        ]
      }
    }
    

    Respuesta

    Cuerpo de respuesta

    {
      "box": "91645eed-173f-4aac-a713-69c6be7582fe",
      "policy_box": {
        "profile": {
          "location": "ap-northeast-1",
          "schema": "http://elasticbox.net/schemas/aws/cloudformation/profile"
        },
        "schema": "http://elasticbox.net/schemas/boxes/cloudformation",
        "updated": "2015-10-28 13:46:55.247211",
        "automatic_updates": "off",
        "requirements": [
    
        ],
        "description": "CF test",
        "created": "2015-10-27 12:11:24.734064",
        "deleted": null,
        "variables": [
          {
            "required": false,
            "type": "Binding",
            "name": "Binding",
            "value": "5030fc49-773a-42fa-b569-c551e4f90d77",
            "visibility": "private"
          }
        ],
        "provider_id": "7e841966-1dec-4460-a981-1db4e1eec10c",
        "visibility": "workspace",
        "members": [
    
        ],
        "template": {
          "url": "/services/blobs/download/5630d1cf14841250525226a6/template.json",
          "upload_date": "2015-10-28 13:46:55.186875",
          "length": 104,
          "content_type": "text/x-shellscript"
        },
        "owner": "operations",
        "organization": "elasticbox",
        "type": "CloudFormation Service",
        "id": "91645eed-173f-4aac-a713-69c6be7582fe",
        "name": "CF WordPress 2"
      },
      "updated": "2015-10-28 13:47:15.567441",
      "automatic_updates": "off",
      "name": "CF WordPress 2",
      "service": {
        "type": "CloudFormation Service",
        "id": "eb-5cn45",
        "machines": [
    
        ]
      },
      "tags": [
    
      ],
      "deleted": null,
      "variables": [
    
      ],
      "created": "2015-10-28 13:47:15.567441",
      "state": "processing",
      "uri": "/services/instances/i-ywf1hu",
      "boxes": [
        {
          "schema": "http://elasticbox.net/schemas/boxes/cloudformation",
          "updated": "2015-10-28 13:46:55.247211",
          "automatic_updates": "off",
          "requirements": [
    
          ],
          "description": "CF test",
          "created": "2015-10-27 12:11:24.734064",
          "deleted": null,
          "variables": [
            {
              "required": false,
              "type": "Binding",
              "name": "Binding",
              "value": "5030fc49-773a-42fa-b569-c551e4f90d77",
              "visibility": "private"
            }
          ],
          "visibility": "workspace",
          "members": [
    
          ],
          "template": {
            "url": "/services/blobs/download/5630d1cf14841250525226a6/template.json",
            "upload_date": "2015-10-28 13:46:55.186875",
            "length": 104,
            "content_type": "text/x-shellscript"
          },
          "owner": "operations",
          "organization": "elasticbox",
          "type": "CloudFormation Service",
          "id": "91645eed-173f-4aac-a713-69c6be7582fe",
          "name": "CF WordPress 2"
        }
      ],
      "members": [
    
      ],
      "bindings": [
    
      ],
      "owner": "operations",
      "operation": {
        "event": "deploy",
        "workspace": "operations",
        "created": "2015-10-28 13:47:15.564698"
      },
      "schema": "http://elasticbox.net/schemas/instance",
      "id": "i-ywf1hu",
      "icon": null
    }
    

    Ejemplo: Actualizar un stack de CloudFormation en tiempo real

    1. POST http://cam.ctl.io/services/blobs/upload/simple_template.json

    Carga los datos de la plantilla modificada.

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Cuerpo de la solicitud

    {
        "Resources" : {
            "HelloBucket" : {
                "Type" : "AWS::S3::Bucket"
            }
        }
    }
    
    

    Respuesta

    Cuerpo de respuesta

    {
        "url": "/services/blobs/download/5630d61d14841250525226aa/simple_template.json",
        "upload_date": "2015-10-28 14:05:17.752627",
        "length": 0,
        "content_type": "application/json"
    }
    

    2. PUT http://cam.ctl.io/services/instances/{instance_id}

    Actualiza la instancia con los cambios de la plantilla.

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Cuerpo de la solicitud

    {
      "box": "91645eed-173f-4aac-a713-69c6be7582fe",
      "bindings": [
    
      ],
      "updated": "2015-10-28 13:48:24.367626",
      "automatic_updates": "off",
      "name": "CF WordPress 2",
      "service": {
        "type": "CloudFormation Service",
        "id": "eb-5cn45",
        "machines": [
    
        ]
      },
      "tags": [
    
      ],
      "deleted": null,
      "policy_box": {
        "profile": {
          "location": "ap-northeast-1",
          "schema": "http://elasticbox.net/schemas/aws/cloudformation/profile"
        },
        "updated": "2015-10-28 13:46:55.247211",
        "automatic_updates": "off",
        "requirements": [
    
        ],
        "description": "CF test",
        "created": "2015-10-27 12:11:24.734064",
        "deleted": null,
        "variables": [
          {
            "required": false,
            "type": "Binding",
            "name": "Binding",
            "value": "5030fc49-773a-42fa-b569-c551e4f90d77",
            "visibility": "private"
          }
        ],
        "provider_id": "7e841966-1dec-4460-a981-1db4e1eec10c",
        "visibility": "workspace",
        "template": {
          "url": "/services/blobs/download/5630d1cf14841250525226a6/template.json",
          "upload_date": "2015-10-28 13:46:55.186875",
          "length": 104,
          "content_type": "text/x-shellscript"
        },
        "members": [
    
        ],
        "owner": "operations",
        "organization": "elasticbox",
        "schema": "http://elasticbox.net/schemas/boxes/cloudformation",
        "type": "CloudFormation Service",
        "id": "91645eed-173f-4aac-a713-69c6be7582fe",
        "name": "CF WordPress 2"
      },
      "created": "2015-10-28 13:47:15.567441",
      "uri": "/services/instances/i-ywf1hu",
      "state": "done",
      "boxes": [
        {
          "updated": "2015-10-28 13:46:55.247211",
          "automatic_updates": "off",
          "requirements": [
    
          ],
          "description": "CF test",
          "created": "2015-10-27 12:11:24.734064",
          "deleted": null,
          "variables": [
            {
              "required": false,
              "type": "Binding",
              "name": "Binding",
              "value": "5030fc49-773a-42fa-b569-c551e4f90d77",
              "visibility": "private"
            }
          ],
          "visibility": "workspace",
          "template": {
            "url": "/services/blobs/download/5630d61d14841250525226aa/simple_template.json",
            "upload_date": "2015-10-28 13:46:55.186875",
            "length": 104,
            "content_type": "text/x-shellscript"
          },
          "members": [
    
          ],
          "owner": "operations",
          "organization": "elasticbox",
          "schema": "http://elasticbox.net/schemas/boxes/cloudformation",
          "type": "CloudFormation Service",
          "id": "91645eed-173f-4aac-a713-69c6be7582fe",
          "name": "CF WordPress 2"
        }
      ],
      "schema": "http://elasticbox.net/schemas/instance",
      "members": [
    
      ],
      "owner": "operations",
      "variables": [
    
      ],
      "operation": {
        "event": "deploy",
        "workspace": "operations",
        "created": "2015-10-28 13:47:15.746398"
      },
      "id": "i-ywf1hu",
      "icon": null
    }
    

    Respuesta

    Cuerpo de respuesta

    {
      "box": "91645eed-173f-4aac-a713-69c6be7582fe",
      "bindings": [
    
      ],
      "updated": "2015-10-28 14:44:49.999798",
      "automatic_updates": "off",
      "name": "CF WordPress 2",
      "service": {
        "type": "CloudFormation Service",
        "id": "eb-5cn45",
        "machines": [
    
        ]
      },
      "tags": [
    
      ],
      "deleted": null,
      "policy_box": {
        "profile": {
          "location": "ap-northeast-1",
          "schema": "http://elasticbox.net/schemas/aws/cloudformation/profile"
        },
        "updated": "2015-10-28 13:46:55.247211",
        "automatic_updates": "off",
        "requirements": [
    
        ],
        "description": "CF test",
        "created": "2015-10-27 12:11:24.734064",
        "deleted": null,
        "variables": [
          {
            "required": false,
            "type": "Binding",
            "name": "Binding",
            "value": "5030fc49-773a-42fa-b569-c551e4f90d77",
            "visibility": "private"
          }
        ],
        "provider_id": "7e841966-1dec-4460-a981-1db4e1eec10c",
        "visibility": "workspace",
        "template": {
          "url": "/services/blobs/download/5630d1cf14841250525226a6/template.json",
          "upload_date": "2015-10-28 13:46:55.186875",
          "length": 104,
          "content_type": "text/x-shellscript"
        },
        "members": [
    
        ],
        "owner": "operations",
        "organization": "elasticbox",
        "schema": "http://elasticbox.net/schemas/boxes/cloudformation",
        "type": "CloudFormation Service",
        "id": "91645eed-173f-4aac-a713-69c6be7582fe",
        "name": "CF WordPress 2"
      },
      "created": "2015-10-28 13:47:15.567441",
      "uri": "/services/instances/i-ywf1hu",
      "state": "done",
      "boxes": [
        {
          "updated": "2015-10-28 13:46:55.247211",
          "automatic_updates": "off",
          "description": "CF test",
          "deleted": null,
          "variables": [
            {
              "required": false,
              "type": "Binding",
              "name": "Binding",
              "value": "5030fc49-773a-42fa-b569-c551e4f90d77",
              "visibility": "private"
            }
          ],
          "visibility": "workspace",
          "members": [
    
          ],
          "owner": "operations",
          "id": "91645eed-173f-4aac-a713-69c6be7582fe",
          "requirements": [
    
          ],
          "name": "CF WordPress 2",
          "created": "2015-10-27 12:11:24.734064",
          "template": {
            "url": "/services/blobs/download/5630d61d14841250525226aa/simple_template.json",
            "upload_date": "2015-10-28 13:46:55.186875",
            "length": 104,
            "content_type": "text/x-shellscript"
          },
          "organization": "elasticbox",
          "type": "CloudFormation Service",
          "schema": "http://elasticbox.net/schemas/boxes/cloudformation"
        }
      ],
      "schema": "http://elasticbox.net/schemas/instance",
      "members": [
    
      ],
      "owner": "operations",
      "variables": [
    
      ],
      "operation": {
        "event": "deploy",
        "workspace": "operations",
        "created": "2015-10-28 13:47:15.746398"
      },
      "id": "i-ywf1hu",
      "icon": null
    }
    

    3. PUT http://cam.ctl.io/services/instances/{instance_id}/reconfigure

    Reconfigura el stack según los cambios.

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Cuerpo de la solicitud

    
    {
       "id":"i-ywf1hu",
       "method":"reconfigure"
    }
    

    Respuesta

    Ninguno.

    API para instancias

    Gestione y realice acciones en instancias.

    Crear o enumerar instancias

    Recursos Descripción
    GET /services/instances Obtiene la lista de instancias.
    POST /services/instances Crea una nueva instancia o importa instancias sin registrar o basadas en un esquema.

    Realizar operaciones de instancia

    Recursos Descripción
    GET /services/instances/{instance_id} Recupera una instancia existente.
    PUT /services/instances/{instance_id} Actualiza una instancia existente.
    DELETE /services/instances/{instance_id} Finaliza una instancia existente, fuerza su finalización o la elimina.
    GET /services/instances/{instance_id}/service Obtiene el servicio de la instancia.
    GET /services/instances/{instance_id}/activity Obtiene todos los registros de actividad de las operaciones ejecutadas de una instancia.
    GET /services/instances/{instance_id}/machine_logs Obtiene los registros de todas las máquinas de una instancia implementada.
    GET /services/instances/{instance_id}/bindings Obtiene el enlace de una instancia.
    GET /services/instances/{instance_id}/operations Obtiene todas las operaciones de una instancia.
    PUT /services/instances/{instance_id}/deploy Vuelve a implementar una instancia existente.
    PUT /services/instances/{instance_id}/poweron Enciende una instancia existente.
    PUT /services/instances/{instance_id}/shutdown Cierra una instancia existente.
    PUT /services/instances/{instance_id}/reinstall Vuelve a instalar una instancia existente.
    PUT /services/instances/{instance_id}/reconfigure Vuelve a configurar una instancia existente.
    PUT /services/instances/{instance_id}/import Reintenta importar una instancia sin registrar.
    PUT /services/instances/{instance_id}/cancel_import Cancela una importación fallida de una instancia no registrada.
    PUT /services/instances/{instance_id}/abort_operation Anula la ejecución de secuencias de una operación de instancia en proceso.

    GET /services/instances

    Obtiene instancias accesibles en el espacio de trabajo personal del usuario autenticado.

    URL

    Estructura

    [GET] /services/instances
    

    Ejemplo

    [GET] https://cam.ctl.io/services/instances
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    • Ninguno

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 400 Solicitud incorrecta
    • 401 No autorizado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    box secuencia Identificador único de casilla utilizado para crear la instancia.
    lease array Programa una instancia con tres parámetros:
  • released (liberada). Es un valor booleano true (verdadero) o false (falso). False (falso) significa que la operación programada en la instancia todavía no se ejecutó.
  • operation (operación). Especifica una instancia para detenerse con shutdown (cerrar) o terminate (finalizar). Cuando no está programada, la instancia está configurada como alwayson (habilitada siempre).
  • expire (vencimiento). Especifica, en formato AAAA-MM-DD HH:MM:SS.SSSSSS con horario UTC, la hora y la fecha para detener una instancia. Solo se requiere cuando una instancia se configura para finalizar o cerrarse.
  • created secuencia Fecha de creación.
    updated secuencia Fecha de la última actualización.
    automatic_updates secuencia Una de estas opciones: major (mayores), minor (menores), patch (parche) u off (desactivadas). La opción predeterminada es off (desactivadas).
    members array Lista de miembros con quien se ha compartido la instancia.
    owner secuencia Propietario de la instancia.
    operation secuencia Última operación; hay siete tipos de operaciones: deploy (implementar), shutdown (cerrar), poweron (encender), reinstall (reinstalar), reconfigure (reconfigurar), terminate (finalizar) y terminate_service (finalizar servicio).
    nombre secuencia Nombre de instancia.
    servicio object Servicio de la instancia.
    service.type secuencia Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    service.id secuencia Identificador único del servicio.
    service.machines array Lista de máquinas del servicio.
    machine object Máquina incluida en la lista de máquinas del servicio.
    machine.state secuencia Estado de la máquina; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    machine.name secuencia Nombre de la máquina.
    machine.workflow array Lista de acciones de flujo de trabajo; cada objeto de acción de flujo de trabajo contiene tres parámetros: box (casilla), event (evento) y script (secuencia).
    workflow.box secuencia Casilla de acción de flujo de trabajo.
    workflow.event secuencia Evento de acción de flujo de trabajo.
    workflow.script secuencia URL de acción de flujo de trabajo.
    etiquetas array Etiquetas de instancia.
    variables array Lista de variables de la instancia; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    casillas array Lista de casillas donde cada objeto de casilla contiene un parámetro de servicio. El parámetro de servicio puede tener uno de estos valores: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    uri secuencia URI de la instancia.
    state secuencia Estado de la instancia; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    bindings array Lista de enlaces de la instancia.
    vinculante object Enlace contenido en la lista de enlaces; cada objeto de enlace contiene estos parámetros: instance (instancia) y name (nombre).
    id array Identificador único de la instancia.
    icon secuencia URI del ícono de la instancia.
    esquema secuencia URI del esquema de la instancia.

    Cuerpo de respuesta

    [{
       "box": "691df09c-7588-4310-9e9a-a7993f3670b0",
       "updated": "2015-10-27 16:17:42.237233",
       "automatic_updates": "off",
       "name": "TestVSphere",
       "service": {
           "type": "Linux Compute",
           "id": "eb-ay43t",
           "machines": [
               {
                   "state": "done",
                   "name": "eb-ay43t-1",
                   "workflow": []
               }
           ]
       },
       "tags": [],
       "policy_box": {
           "profile": {
               "resource_pool": "pullrequest",
               "datacenter": "ElasticBox - Development",
               "network": "Cluster Network",
               "disks": [
                   {
                       "datastore": "Development Storage",
                       "name": "Hard disk 1",
                       "template": true,
                       "size": 97
                   }
               ],
               "customization_spec": "None",
               "network_mor": "network-15",
               "instances": 1,
               "template": "debian-7-8-x86-64",
               "datastore": "Development Storage",
               "flavor": "Tiny",
               "schema": "http://elasticbox.net/schemas/vsphere/compute/profile"
           },
           "provider_id": "cac26e4c-16f8-46ad-83ae-52a2b1ba4fca",
           "automatic_updates": "off",
           "name": "TestVSphere",
           "created": "2015-10-09 08:25:02.378295",
           "deleted": null,
           "variables": [],
           "updated": "2015-10-09 08:25:02.378295",
           "lifespan": {
               "operation": "none"
           },
           "visibility": "workspace",
           "members": [],
           "organization": "elasticbox",
           "owner": "operations",
           "claims": [
               "linux"
           ],
           "id": "691df09c-7588-4310-9e9a-a7993f3670b0",
           "schema": "http://elasticbox.net/schemas/boxes/policy"
       },
       "created": "2015-10-09 08:25:36.025086",
       "uri": "/services/instances/i-6bdwwm",
       "id": "i-6bdwwm",
       "state": "done",
       "boxes": [
           {
               "profile": {
                   "resource_pool": "pullrequest",
                   "datacenter": "ElasticBox - Development",
                   "network": "Cluster Network",
                   "disks": [
                       {
                           "datastore": "Development Storage",
                           "name": "Hard disk 1",
                           "template": true,
                           "size": 97
                       }
                   ],
                   "customization_spec": "None",
                   "network_mor": "network-15",
                   "instances": 1,
                   "template": "debian-7-8-x86-64",
                   "datastore": "Development Storage",
                   "flavor": "Tiny",
                   "schema": "http://elasticbox.net/schemas/vsphere/compute/profile"
               },
               "provider_id": "cac26e4c-16f8-46ad-83ae-52a2b1ba4fca",
               "automatic_updates": "off",
               "name": "TestVSphere",
               "created": "2015-10-09 08:25:02.378295",
               "deleted": null,
               "variables": [],
               "updated": "2015-10-09 08:25:02.378295",
               "lifespan": {
                   "operation": "none"
               },
               "visibility": "workspace",
               "members": [],
               "organization": "elasticbox",
               "owner": "operations",
               "claims": [
                   "linux"
               ],
               "id": "691df09c-7588-4310-9e9a-a7993f3670b0",
               "schema": "http://elasticbox.net/schemas/boxes/policy"
           }
       ],
       "members": [],
       "owner": "operations",
       "icon": null,
       "operation": {
           "event": "terminate_service",
           "workspace": "operations",
           "created": "2015-10-27 16:17:36.268988"
       },
       "variables": [],
       "schema": "http://elasticbox.net/schemas/instance"
    },
    {
       "box": "15b5bc28-5ac5-4897-bd72-d4f2101da47a",
       "updated": "2015-10-09 10:00:07.434386",
       "automatic_updates": "off",
       "name": "Test2",
       "service": {
           "type": "Linux Compute",
           "id": "eb-l8gqr",
           "machines": []
       },
       "tags": [],
       "policy_box": {
           "profile": {
               "resource_pool": "pullrequest",
               "datacenter": "ElasticBox - Development",
               "network": "Cluster Network",
               "disks": [],
               "customization_spec": "None",
               "compute_resource": null,
               "instances": 1,
               "network_mor": "network-15",
               "template": "ebx-no-disks",
               "folder": "Templates",
               "flavor": "Tiny",
               "datastore": "Development Storage",
               "schema": "http://elasticbox.net/schemas/vsphere/compute/profile"
           },
           "provider_id": "cac26e4c-16f8-46ad-83ae-52a2b1ba4fca",
           "automatic_updates": "off",
           "name": "Test2",
           "created": "2015-10-09 08:30:52.736712",
           "deleted": null,
           "variables": [],
           "updated": "2015-10-09 08:31:10.338900",
           "lifespan": {
               "operation": "none"
           },
           "visibility": "workspace",
           "members": [],
           "claims": [
               "linux"
           ],
           "owner": "operations",
           "organization": "elasticbox",
           "id": "15b5bc28-5ac5-4897-bd72-d4f2101da47a",
           "schema": "http://elasticbox.net/schemas/boxes/policy"
       },
       "created": "2015-10-09 08:31:16.536012",
       "uri": "/services/instances/i-jt8p5d",
       "id": "i-jt8p5d",
       "state": "done",
       "boxes": [
           {
               "profile": {
                   "resource_pool": "pullrequest",
                   "datacenter": "ElasticBox - Development",
                   "network": "Cluster Network",
                   "disks": [],
                   "customization_spec": "None",
                   "compute_resource": null,
                   "instances": 1,
                   "network_mor": "network-15",
                   "template": "ebx-no-disks",
                   "folder": "Templates",
                   "flavor": "Tiny",
                   "datastore": "Development Storage",
                   "schema": "http://elasticbox.net/schemas/vsphere/compute/profile"
               },
               "provider_id": "cac26e4c-16f8-46ad-83ae-52a2b1ba4fca",
               "automatic_updates": "off",
               "name": "Test2",
               "created": "2015-10-09 08:30:52.736712",
               "deleted": null,
               "variables": [],
               "updated": "2015-10-09 08:31:10.338900",
               "lifespan": {
                   "operation": "none"
               },
               "visibility": "workspace",
               "members": [],
               "claims": [
                   "linux"
               ],
               "owner": "operations",
               "organization": "elasticbox",
               "id": "15b5bc28-5ac5-4897-bd72-d4f2101da47a",
               "schema": "http://elasticbox.net/schemas/boxes/policy"
           }
       ],
       "members": [],
       "owner": "operations",
       "icon": null,
       "operation": {
           "event": "terminate_service",
           "workspace": "operations",
           "created": "2015-10-09 09:59:37.618930"
       },
       "variables": [],
       "schema": "http://elasticbox.net/schemas/instance"
    }]
    

    POST /services/instances

    Crea una nueva instancia y obtiene la instancia creada.

    URL

    Estructura

    [POST] /services/instances
    

    Ejemplo

    [POST] https://cam.ctl.io/services/instances
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    • Ninguno

    Parámetros del cuerpo de la solicitud

    Parámetro Tipo Descripción Req.
    esquema secuencia URI del esquema de la instancia.
    owner secuencia ID del espacio de trabajo donde se publicó la instancia.
    box Object Objeto de casilla con su ID y una lista de objetos de variables anuladas en la implementación.
    policy_box Object Objeto de casilla con su ID y una lista de objetos de variables anuladas en la implementación.
    automatic_updates secuencia Una de estas opciones: major (mayores), minor (menores), patch (parche) u off (desactivadas). La opción predeterminada es off (desactivadas).
    lease array Programa una instancia con dos parámetros:
  • expire (vencimiento). Especifica, en formato AAAA-MM-DD HH:MM:SS.SSSSSS con horario UTC, la hora y la fecha para detener una instancia. Solo se requiere cuando una instancia se configura para finalizar o cerrarse.
  • operation (operación). Especifica una instancia para detenerse con shutdown (cerrar) o terminate (finalizar). Cuando no está programada, la instancia está configurada como alwayson (habilitada siempre).
  • nombre secuencia Nombre de instancia.
    instance_tags array Lista de etiquetas definidas en la implementación.

    Cuerpo de la solicitud

    En el siguiente ejemplo, la solicitud programa la nueva instancia.

    {
        "schema": "http://elasticbox.net/schemas/deploy-instance-request",
        "owner": "operations",
        "name": "TestServe",
        "box": {
            "id": "4f996250-a420-4e44-8e97-4af86328148f",
            "variables": [
                {
                    "name": "variable_name",
                    "type": "Text",
                    "value": "overridden variable value at deployment time",
                    "required": true,
                    "visibility": "public"
                }
            ]
        },
        "instance_tags": [],
        "automatic_updates": "off",
        "policy_box": {
            "id": "11c8882e-3888-4bdd-bd2d-b92766a423c7",
            "variables": []
        }
    }
    

    Respuesta

    Códigos de respuesta normales

    • 202 Aceptar

    Códigos de respuesta de error comunes

    • 400 Datos no válidos

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    lease array Si está programado, este objeto muestra estos parámetros para la instancia:
  • released (liberada). Es un valor booleano true (verdadero) o false (falso). False (falso) significa que la operación programada en la instancia todavía no se ejecutó.
  • expire (vencimiento). Especifica, en formato AAAA-MM-DD HH:MM:SS.SSSSSS con horario UTC, la hora y la fecha para detener una instancia. Solo se aplica cuando una instancia se configura para finalizar o cerrarse.
  • operation (operación). Especifica la operación de detención programada como shutdown (cerrar) o terminate (finalizar). Cuando no está programada, la instancia está configurada como alwayson (habilitada siempre).
  • bindings array Lista de enlaces de la instancia.
    vinculante object Enlace contenido en la lista de enlaces; cada objeto de enlace contiene estos parámetros: instance (instancia) y name (nombre).
    updated secuencia Fecha de la última actualización.
    nombre secuencia Nombre de instancia.
    servicio Object Servicio de la instancia.
    service.type secuencia Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    service.id secuencia Tipo de servicio.
    service.machines array Lista de máquinas del servicio.
    machine object Máquina incluida en la lista de máquinas del servicio.
    machine.state secuencia Estado de la máquina; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    machine.name secuencia Nombre de la máquina.
    machine.workflow array Lista de acciones de flujo de trabajo; cada objeto de acción de flujo de trabajo contiene tres parámetros: box (casilla), event (evento) y script (secuencia).
    workflow.box secuencia Casilla de acción de flujo de trabajo.
    workflow.event secuencia Evento de acción de flujo de trabajo.
    workflow.script secuencia URL de acción de flujo de trabajo.
    etiquetas array Etiquetas de instancia.
    variables array Lista de variables de la instancia; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    created secuencia Fecha de creación.
    casillas array Lista de casillas.
    box.visibility secuencia Indica a qué nivel es visible la casilla. De forma predeterminada, las casillas son visibles en el espacio de trabajo en el que se crean. Puede tener uno de estos valores:
  • public (público): visible para usuarios del Gestor de aplicaciones en la nube en todas las organizaciones.
  • organization (organización): visible para todos los usuarios de la organización en la que se creó la casilla.
  • workspace (espacio de trabajo): de forma predeterminada, la casilla solo es visible para los miembros del espacio de trabajo donde se creó.
  • box.organization secuencia Organización a la que pertenece la casilla.
    box.updated secuencia Fecha de la última actualización.
    box.description secuencia Descripción de la casilla.
    box.service secuencia Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    box.tags array Etiquetas de casilla.
    box.variables array Lista de variables de la casilla; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    box.created secuencia Fecha de creación.
    box.uri secuencia URI de la casilla.
    box.id array Identificador único de la casilla.
    box.schema secuencia URI del esquema de la casilla.
    box.members array Lista de miembros de la casilla.
    box.owner secuencia Propietario de la casilla.
    box.bindings array Lista de enlaces de la casilla.
    box.binding object Enlace contenido en la lista de enlaces; cada enlace contiene una casilla y un nombre.
    box.icon secuencia URI del ícono de la casilla.
    box.events array Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), post_configure (posconfiguración), post_dispose (poseliminación), post_install (posinstalación), post_start (posinicio), post_stop (posdetención), start (inicio) y stop (detención).
    box.event object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date (fecha de carga), length (longitud) y destination_path (ruta de destino).
    box.name secuencia Nombre de la casilla.
    uri secuencia URI de la instancia.
    state secuencia Estado de la instancia; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    members array Miembros de la instancia.
    owner secuencia Propietario de la instancia.
    operation secuencia Última operación; hay siete tipos de operaciones: deploy (implementar), shutdown (cerrar), poweron (encender), reinstall (reinstalar), reconfigure (reconfigurar), terminate (finalizar) y terminate_service (finalizar servicio).
    icon secuencia URI del ícono de la instancia.
    id array Identificador único de la instancia.
    esquema secuencia URI del esquema de la instancia.
    policy_box object Política de implementación específica para un proveedor.
    policy_box.provider_id secuencia ID del proveedor.
    policy_box.automatic_updates secuencia Una de estas opciones: major (mayores), minor (menores), patch (parche) u off (desactivadas).
    policy_box.name secuencia Nombre de la casilla para políticas.
    policy_box.variables array Lista de variables de la casilla para políticas de implementación.
    policy_box.claims array Lista de reclamos de la casilla para políticas de implementación.
    policy_box.id secuencia ID de la casilla para políticas de implementación.
    policy_box.schema secuencia Esquema de la casilla para políticas de implementación.
    policy_box.members array Lista de miembros que comparten la casilla para políticas de implementación.
    policy_box.owner secuencia Propietario de la casilla para políticas de implementación.
    policy_box.readme object Archivo Léame para la casilla para políticas de implementación.

    Cuerpo de respuesta

    {
        "automatic_updates": "off",
        "variables": [
            {
                "required": true,
                "type": "Text",
                "name": "variable_name",
                "value": "overridden variable value at deployment time",
                "visibility": "public"
            }
        ],
        "automatic_reconfiguration": true,
        "owner": "operations",
        "pricing_history": [
            {
                "pricing_info": {
                    "estimated_monthly": 3168000,
                    "provider_type": "Amazon Web Services",
                    "hourly_price": 4400,
                    "factor": 100000
                },
                "from": "2018-12-26 15:18:26.524612"
            }
        ],
        "bindings": [],
        "operation": {
            "event": "deploy",
            "workspace": "operations",
            "created": "2018-12-26 15:18:26.524612"
        },
        "service": {
            "type": "Linux Compute",
            "id": "eb-l2gmi",
            "machines": []
        },
        "id": "i-b1qtkz",
        "is_deploy_only": true,
        "state": "processing",
        "schema": "http://elasticbox.net/schemas/instance",
        "updated": "2018-12-26 15:18:26.532799",
        "tags": [],
        "deleted": null,
        "boxes": [
            {
                "updated": "2018-12-26 15:17:00.128048",
                "automatic_updates": "off",
                "requirements": [],
                "name": "php-server",
                "created": "2018-12-11 14:29:56.791167",
                "deleted": null,
                "variables": [
                    {
                        "required": false,
                        "type": "Text",
                        "name": "variable_name",
                        "value": "value",
                        "visibility": "public"
                    }
                ],
                "visibility": "workspace",
                "id": "4f996250-a420-4e44-8e97-4af86328148f",
                "members": [],
                "owner": "operations",
                "organization": "centurylink",
                "events": {
                    "pre_install": {
                        "url": "/services/blobs/download/5c0fcb8cc9a9d120195a3f7a/pre_install",
                        "length": 39,
                        "destination_path": "scripts",
                        "content_type": "text/x-shellscript"
                    },
                    "configure": {
                        "url": "/services/blobs/download/5c0fca3dc9a9d120195a3f71/configure",
                        "length": 23,
                        "destination_path": "scripts",
                        "content_type": "text/x-shellscript"
                    }
                },
                "draft_from": "f0023f62-8e43-41d6-a248-691f092d6287",
                "schema": "http://elasticbox.net/schemas/boxes/script"
            }
        ],
        "members": [],
        "box": "4f996250-a420-4e44-8e97-4af86328148f",
        "name": "TestServe",
        "created": "2018-12-26 15:18:26.532799",
        "policy_box": {
            "profile": {
                "subnet": "us-east-1a",
                "security_groups": [
                    "Automatic"
                ],
                "pricing_info": {
                    "estimated_monthly": 3168000,
                    "provider_type": "Amazon Web Services",
                    "hourly_price": 4400,
                    "factor": 100000
                },
                "image": "Linux Compute",
                "instances": 1,
                "keypair": "None",
                "cloud": "EC2",
                "volumes": [],
                "flavor": "m1.small",
                "schema": "http://elasticbox.net/schemas/aws/ec2/profile",
                "managed_os": false,
                "location": "us-east-1"
            },
            "provider_id": "0669730b-6f01-421b-8a5e-597bca20c1bf",
            "automatic_updates": "off",
            "name": "default-small-us-east-1",
            "created": "2018-12-11 13:53:56.512649",
            "deleted": null,
            "variables": [],
            "updated": "2018-12-11 13:53:56.512649",
            "visibility": "workspace",
            "readme": {
                "url": "#application-lifecycle-management-services/resources/default-box-overview",
                "upload_date": "2018-12-11 13:53:56.512131",
                "length": 1307,
                "content_type": "text/x-markdown"
            },
            "members": [],
            "claims": [
                "small",
                "linux"
            ],
            "owner": "operations",
            "organization": "centurylink",
            "id": "11c8882e-3888-4bdd-bd2d-b92766a423c7",
            "schema": "http://elasticbox.net/schemas/boxes/policy"
        },
        "uri": "/services/instances/i-b1qtkz"
    }
    

    POST /services/instances

    Registrar una instancia sin registrar: observe que es el mismo punto de enlace que para crear una nueva instancia.

    URL

    Estructura

    [POST] /services/instances
    

    Ejemplo

    [POST] https://cam.ctl.io/services/instances
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    • Ninguno

    Parámetros del cuerpo de la solicitud

    Parámetro Tipo Descripción Req.
    esquema secuencia URI del esquema de la solicitud de registro de instancia.
    owner secuencia ID del espacio de trabajo a donde se importa la instancia.
    nombre secuencia Nombre de la instancia que se registra.
    descripción secuencia Descripción de la instancia que se registra.
    unregistered_id secuencia Identificador único de la instancia.
    linux_username secuencia Usuario de Linux para instalar agente.
    private_key secuencia Clave de Linux para instalar agente.
    windows_username secuencia Nombre de usuario de Windows para instalar agente.
    windows_password secuencia Contraseña de Windows para instalar agente.
    instance_tags array Lista de etiquetas definidas en la implementación.
    automatic_updates secuencia Una de estas opciones: major (mayores), minor (menores), patch (parche) u off (desactivadas). La opción predeterminada es off (desactivadas).
    lease array Programa una instancia con dos parámetros:
  • expire (vencimiento). Especifica, en formato AAAA-MM-DD HH:MM:SS.SSSSSS con horario UTC, la hora y la fecha para detener una instancia. Solo se requiere cuando una instancia se configura para finalizar o cerrarse.
  • operation (operación). Especifica una instancia para detenerse con shutdown (cerrar) o terminate (finalizar). Cuando no está programada, la instancia está configurada como alwayson (habilitada siempre).
  • Cuerpo de la solicitud

    {
       "schema": "http://elasticbox.net/schemas/register-instance-request",
       "owner": "operations",
       "name": "LDAP Box",
       "unregistered_id": "7a99f95c-30e6-4986-9059-f6999d1jhgf9",
       "description": "Ldap server registered",
       "linux_username": "root",
       "private_key": "-----BEGIN RSA PRIVATE KEY-----
    ..................................................
    -----END RSA PRIVATE KEY-----",
       "instance_tags": [],
       "automatic_updates": "off",
       "lease": {
           "expire": "2017-11-11 23:00:00.000000",
           "operation": "shutdown"
       }
    }
    

    Para utilizar la importación en bloque, la solicitud debe tener un esquema de solicitud de importación en bloque y una lista de
    instancias no registradas:

    {
      "schema": "http://elasticbox.net/schemas/bulk-import-request",
      "owner": "operations",
      "unregistered_instances": [
        {
          "schema": "http://elasticbox.net/schemas/register-instance-request",
          "name": "msql-a",
          "unregistered_id": "5eed8408-3ece-45d9-8e78-3f3472bea165",
          "instance_tags": [
            "zoneA"
          ]
        },
        {
          "schema": "http://elasticbox.net/schemas/register-instance-request",
          "name": "msql-b",
          "unregistered_id": "6b9b9ecc-f22d-4101-991c-c55f8de80439",
          "instance_tags": [
            "zoneB"
          ]
        }
      ],
      "instance_tags": [
        "registered"
      ]
    }
    

    Respuesta

    Códigos de respuesta normales

    • 202 Aceptar

    Códigos de respuesta de error comunes

    • 400 Datos no válidos

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    lease array Si está programado, este objeto muestra estos parámetros para la instancia:
  • released (liberada). Es un valor booleano true (verdadero) o false (falso). False (falso) significa que la operación programada en la instancia todavía no se ejecutó.
  • expire (vencimiento). Especifica, en formato AAAA-MM-DD HH:MM:SS.SSSSSS con horario UTC, la hora y la fecha para detener una instancia. Solo se aplica cuando una instancia se configura para finalizar o cerrarse.
  • operation (operación). Especifica la operación de detención programada como shutdown (cerrar) o terminate (finalizar). Cuando no está programada, la instancia está configurada como alwayson (habilitada siempre).
  • bindings array Lista de enlaces de la instancia.
    vinculante object Enlace contenido en la lista de enlaces; cada objeto de enlace contiene estos parámetros: instance (instancia) y name (nombre).
    updated secuencia Fecha de la última actualización.
    nombre secuencia Nombre de instancia.
    servicio Object Servicio de la instancia.
    service.type secuencia Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    service.id secuencia Tipo de servicio.
    service.machines array Lista de máquinas del servicio.
    machine object Máquina incluida en la lista de máquinas del servicio.
    machine.state secuencia Estado de la máquina; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    machine.name secuencia Nombre de la máquina.
    machine.workflow array Lista de acciones de flujo de trabajo; cada objeto de acción de flujo de trabajo contiene tres parámetros: box (casilla), event (evento) y script (secuencia).
    workflow.box secuencia Casilla de acción de flujo de trabajo.
    workflow.event secuencia Evento de acción de flujo de trabajo.
    workflow.script secuencia URL de acción de flujo de trabajo.
    etiquetas array Etiquetas de instancia.
    variables array Lista de variables de la instancia; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    created secuencia Fecha de creación.
    casillas array Lista de casillas.
    box.visibility secuencia Indica a qué nivel es visible la casilla. De forma predeterminada, las casillas son visibles en el espacio de trabajo en el que se crean. Puede tener uno de estos valores:
  • public (público): visible para usuarios del Gestor de aplicaciones en la nube en todas las organizaciones.
  • organization (organización): visible para todos los usuarios de la organización en la que se creó la casilla.
  • workspace (espacio de trabajo): de forma predeterminada, la casilla solo es visible para los miembros del espacio de trabajo donde se creó.
  • box.organization secuencia Organización a la que pertenece la casilla.
    box.updated secuencia Fecha de la última actualización.
    box.description secuencia Descripción de la casilla.
    box.service secuencia Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    box.tags array Etiquetas de casilla.
    box.variables array Lista de variables de la casilla; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    box.created secuencia Fecha de creación.
    box.uri secuencia URI de la casilla.
    box.id array Identificador único de la casilla.
    box.schema secuencia URI del esquema de la casilla.
    box.members array Lista de miembros de la casilla.
    box.owner secuencia Propietario de la casilla.
    box.bindings array Lista de enlaces de la casilla.
    box.binding object Enlace contenido en la lista de enlaces; cada enlace contiene una casilla y un nombre.
    box.icon secuencia URI del ícono de la casilla.
    box.events array Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), post_configure (posconfiguración), post_dispose (poseliminación), post_install (posinstalación), post_start (posinicio), post_stop (posdetención), start (inicio) y stop (detención).
    box.event object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date (fecha de carga), length (longitud) y destination_path (ruta de destino).
    box.name secuencia Nombre de la casilla.
    uri secuencia URI de la instancia.
    state secuencia Estado de la instancia; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    members array Miembros de la instancia.
    owner secuencia Propietario de la instancia.
    operation secuencia Última operación; hay siete tipos de operaciones: deploy (implementar), shutdown (cerrar), poweron (encender), reinstall (reinstalar), reconfigure (reconfigurar), terminate (finalizar) y terminate_service (finalizar servicio).
    icon secuencia URI del ícono de la instancia.
    id array Identificador único de la instancia.
    esquema secuencia URI del esquema de la instancia.
    policy_box object Política de implementación específica para un proveedor.
    policy_box.provider_id secuencia ID del proveedor.
    policy_box.automatic_updates secuencia Una de estas opciones: major (mayores), minor (menores), patch (parche) u off (desactivadas).
    policy_box.name secuencia Nombre de la casilla para políticas.
    policy_box.variables array Lista de variables de la casilla para políticas de implementación.
    policy_box.claims array Lista de reclamos de la casilla para políticas de implementación.
    policy_box.id secuencia ID de la casilla para políticas de implementación.
    policy_box.schema secuencia Esquema de la casilla para políticas de implementación.
    policy_box.members array Lista de miembros que comparten la casilla para políticas de implementación.
    policy_box.owner secuencia Propietario de la casilla para políticas de implementación.
    policy_box.readme object Archivo Léame para la casilla para políticas de implementación.

    Cuerpo de respuesta

    {
     "box": "7a99f75c-30e6-4986-9059-f6889d1ff5f9",
     "policy_box": {
       "profile": {
         "image": "test",
         "instances": 1,
         "keypair": "test_keypair",
         "location": "Simulated Location",
         "flavor": "test.micro",
         "schema": "http://elasticbox.net/schemas/test/compute/profile"
       },
       "provider_id": "0476718d-2b00-45ce-8a1c-30b10a16cfc7",
       "automatic_updates": "off",
       "name": "Linux Compute",
       "created": "2015-10-21 08:35:50.165822",
       "deleted": null,
       "variables": [
         {
           "automatic_updates": "off",
           "name": "policy_box_variable",
           "required": false,
           "visibility": "public",
           "value": "381d0fd8-b59e-4be6-afc7-3ee1a0a2db1c",
           "type": "Box"
         }
       ],
       "updated": "2015-10-29 12:05:39.065397",
       "visibility": "workspace",
       "owner": "operations",
       "members": [
    
       ],
       "claims": [
         "linux"
       ],
       "readme": {
         "url": "#application-lifecycle-management-resources/default-box-overview",
         "upload_date": "2015-10-21 08:35:50.164926",
         "length": 1302,
         "content_type": "text/x-markdown"
       },
       "organization": "elasticbox",
       "id": "e57466ee-7094-4bd4-9121-a6df4395d493",
       "schema": "http://elasticbox.net/schemas/boxes/policy"
     },
     "updated": "2015-10-29 12:26:20.377029",
     "automatic_updates": "off",
     "name": "ScriptBoxSample",
     "service": {
       "type": "Linux Compute",
       "id": "eb-bbhzh",
       "machines": [
    
       ]
     },
     "tags": [
    
     ],
     "deleted": null,
     "variables": [
       {
         "required": true,
         "type": "Text",
         "name": "variable_name",
         "value": "variable_value_overridden",
         "visibility": "public"
       }
     ],
     "created": "2015-10-29 12:26:20.377029",
     "state": "processing",
     "uri": "/services/instances/i-3e43qa",
     "boxes": [
       {
         "updated": "2015-10-29 11:55:23.842461",
         "automatic_updates": "off",
         "requirements": [
    
         ],
         "description": "sample box",
         "name": "ScriptBoxSample",
         "created": "2015-10-29 10:52:08.446868",
         "deleted": null,
         "variables": [
           {
             "required": true,
             "type": "Text",
             "name": "variable_name",
             "value": "variable_value",
             "visibility": "public"
           }
         ],
         "visibility": "workspace",
         "id": "7a99f75c-30e6-4986-9059-f6889d1ff5f9",
         "members": [
    
         ],
         "owner": "operations",
         "organization": "elasticbox",
         "events": {
           "configure": {
             "url": "/services/blobs/download/5631fa7614841250525226cc/configure",
             "length": 5,
             "destination_path": "scripts",
             "content_type": "text/x-shellscript"
           },
           "install": {
             "url": "/services/blobs/download/5631fa6614841250525226ca/install",
             "length": 5,
             "destination_path": "scripts",
             "content_type": "text/x-shellscript"
           }
         },
         "schema": "http://elasticbox.net/schemas/boxes/script"
       }
     ],
     "members": [
    
     ],
     "bindings": [
    
     ],
     "owner": "operations",
     "operation": {
       "event": "deploy",
       "workspace": "operations",
       "created": "2015-10-29 12:26:20.375582"
     },
     "schema": "http://elasticbox.net/schemas/instance",
     "id": "i-3e43qa",
     "icon": null
    }
    

    GET /services/instances/{instance_id}

    Recupera una instancia existente con una ID proporcionada.

    URL

    Estructura

    [GET] /services/instances/{instance_id}
    

    Ejemplo

    [GET] https://cam.ctl.io/services/instances/i-b1qtkz
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 400 Datos no válidos
    • 403 Prohibido
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    bindings array Lista de enlaces de la instancia.
    vinculante object Enlace contenido en la lista de enlaces; cada objeto de enlace contiene estos parámetros: instance (instancia) y name (nombre).
    updated secuencia Fecha de la última actualización.
    nombre secuencia Nombre de instancia.
    servicio object Servicio de la instancia.
    service.type secuencia Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    service.id secuencia Tipo de servicio.
    service.machines array Lista de máquinas del servicio.
    machine object Máquina incluida en la lista de máquinas del servicio.
    machine.state secuencia Estado de la máquina; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    machine.name secuencia Nombre de la máquina.
    machine.workflow array Lista de acciones de flujo de trabajo; cada objeto de acción de flujo de trabajo contiene tres parámetros: box (casilla), event (evento) y script (secuencia).
    workflow.box secuencia Casilla de acción de flujo de trabajo.
    workflow.event secuencia Evento de acción de flujo de trabajo.
    workflow.script secuencia URL de acción de flujo de trabajo.
    etiquetas array Etiquetas de instancia.
    variables array Lista de variables de la instancia; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    created secuencia Fecha de creación.
    casillas array Lista de casillas.
    box.visibility secuencia Indica a qué nivel es visible la casilla. De forma predeterminada, las casillas son visibles en el espacio de trabajo en el que se crean. Puede tener uno de estos valores:
  • public (público): visible para usuarios del Gestor de aplicaciones en la nube en todas las organizaciones.
  • organization (organización): visible para todos los usuarios de la organización en la que se creó la casilla.
  • workspace (espacio de trabajo): de forma predeterminada, la casilla solo es visible para los miembros del espacio de trabajo donde se creó.
  • box.organization secuencia Organización a la que pertenece la casilla.
    box.updated secuencia Fecha de la última actualización.
    box.description secuencia Descripción de la casilla.
    box.service secuencia Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    box.tags array Etiquetas de casilla.
    box.variables array Lista de variables de la casilla; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    box.created secuencia Fecha de creación.
    box.uri secuencia URI de la casilla.
    box.id array Identificador único de la casilla.
    box.schema secuencia URI del esquema de la casilla.
    box.members array Lista de miembros de la casilla.
    box.owner secuencia Propietario de la casilla.
    box.bindings array Lista de enlaces de la casilla.
    box.binding object Enlace contenido en la lista de enlaces; cada enlace contiene una casilla y un nombre.
    box.icon secuencia URI del ícono de la casilla.
    box.events array Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), post_configure (posconfiguración), post_dispose (poseliminación), post_install (posinstalación), post_start (posinicio), post_stop (posdetención), start (inicio) y stop (detención).
    box.event object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date (fecha de carga), length (longitud) y destination_path (ruta de destino).
    box.name secuencia Nombre de la casilla.
    policy_box object Política de implementación específica para un proveedor.
    policy_box.provider_id secuencia ID del proveedor.
    policy_box.automatic_updates secuencia Una de estas opciones: major (mayores), minor (menores), patch (parche) u off (desactivadas).
    policy_box.name secuencia Nombre de la casilla para políticas.
    policy_box.variables array Lista de variables de la casilla para políticas de implementación.
    policy_box.claims array Lista de reclamos de la casilla para políticas de implementación.
    policy_box.id secuencia ID de la casilla para políticas de implementación.
    policy_box.schema secuencia Esquema de la casilla para políticas de implementación.
    policy_box.members array Lista de miembros que comparten la casilla para políticas de implementación.
    policy_box.owner secuencia Propietario de la casilla para políticas de implementación.
    policy_box.readme object Archivo Léame para la casilla para políticas de implementación.
    uri secuencia URI de la instancia.
    state secuencia Estado de la instancia; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    members array Miembros de la instancia.
    owner secuencia Propietario de la instancia.
    operation secuencia Última operación; hay siete tipos de operaciones: deploy (implementar), shutdown (cerrar), poweron (encender), reinstall (reinstalar), reconfigure (reconfigurar), terminate (finalizar) y terminate_service (finalizar servicio).
    icon secuencia URI del ícono de la instancia.
    id array Identificador único de la instancia.
    esquema secuencia URI del esquema de la instancia.

    Cuerpo de respuesta

    {
        "automatic_updates": "off",
        "variables": [
            {
                "required": true,
                "type": "Text",
                "name": "variable_name",
                "value": "overridden variable value at deployment time",
                "visibility": "public"
            }
        ],
        "automatic_reconfiguration": true,
        "owner": "operations",
        "pricing_history": [
            {
                "pricing_info": {
                    "estimated_monthly": 3168000,
                    "provider_type": "Amazon Web Services",
                    "hourly_price": 4400,
                    "factor": 100000
                },
                "from": "2018-12-26 15:18:26.524612"
            }
        ],
        "operation": {
            "event": "deploy",
            "workspace": "operations",
            "created": "2018-12-26 15:18:27.567661"
        },
        "bindings": [],
        "service": {
            "type": "Linux Compute",
            "id": "eb-l2gmi",
            "machines": [
                {
                    "state": "done",
                    "name": "testserve-eb-l2gmi-1",
                    "workflow": []
                }
            ]
        },
        "id": "i-b1qtkz",
        "is_deploy_only": true,
        "state": "done",
        "schema": "http://elasticbox.net/schemas/instance",
        "updated": "2018-12-26 15:21:56.516934",
        "tags": [],
        "deleted": null,
        "boxes": [
            {
                "updated": "2018-12-26 15:17:00.128048",
                "automatic_updates": "off",
                "requirements": [],
                "name": "php-server",
                "created": "2018-12-11 14:29:56.791167",
                "deleted": null,
                "variables": [
                    {
                        "required": false,
                        "type": "Text",
                        "name": "variable_name",
                        "value": "value",
                        "visibility": "public"
                    }
                ],
                "visibility": "workspace",
                "id": "4f996250-a420-4e44-8e97-4af86328148f",
                "members": [],
                "owner": "operations",
                "organization": "centurylink",
                "events": {
                    "pre_install": {
                        "url": "/services/blobs/download/5c0fcb8cc9a9d120195a3f7a/pre_install",
                        "length": 39,
                        "destination_path": "scripts",
                        "content_type": "text/x-shellscript"
                    },
                    "configure": {
                        "url": "/services/blobs/download/5c0fca3dc9a9d120195a3f71/configure",
                        "length": 23,
                        "destination_path": "scripts",
                        "content_type": "text/x-shellscript"
                    }
                },
                "draft_from": "f0023f62-8e43-41d6-a248-691f092d6287",
                "schema": "http://elasticbox.net/schemas/boxes/script"
            }
        ],
        "members": [],
        "box": "4f996250-a420-4e44-8e97-4af86328148f",
        "name": "TestServe",
        "created": "2018-12-26 15:18:26.532799",
        "policy_box": {
            "profile": {
                "subnet": "us-east-1a",
                "security_groups": [
                    "Automatic"
                ],
                "pricing_info": {
                    "estimated_monthly": 3168000,
                    "provider_type": "Amazon Web Services",
                    "hourly_price": 4400,
                    "factor": 100000
                },
                "image": "Linux Compute",
                "instances": 1,
                "keypair": "None",
                "location": "us-east-1",
                "volumes": [],
                "cloud": "EC2",
                "flavor": "m1.small",
                "managed_os": false,
                "schema": "http://elasticbox.net/schemas/aws/ec2/profile"
            },
            "provider_id": "0669730b-6f01-421b-8a5e-597bca20c1bf",
            "automatic_updates": "off",
            "name": "default-small-us-east-1",
            "created": "2018-12-11 13:53:56.512649",
            "deleted": null,
            "variables": [],
            "updated": "2018-12-11 13:53:56.512649",
            "visibility": "workspace",
            "readme": {
                "url": "#application-lifecycle-management-services/resources/default-box-overview",
                "upload_date": "2018-12-11 13:53:56.512131",
                "length": 1307,
                "content_type": "text/x-markdown"
            },
            "members": [],
            "claims": [
                "small",
                "linux"
            ],
            "owner": "operations",
            "organization": "centurylink",
            "id": "11c8882e-3888-4bdd-bd2d-b92766a423c7",
            "schema": "http://elasticbox.net/schemas/boxes/policy"
        },
        "uri": "/services/instances/i-b1qtkz"
    }
    

    PUT /services/instances/{instance_id}

    Con la ID de la instancia, actualiza solo estos campos de una instancia existente: boxes (casillas), tags (etiquetas), schedule (programación), members (miembros) y variables. El cuerpo de la solicitud debe contener un objeto de instancia.

    URL

    Estructura

    [PUT] /services/instances/{instance_id}
    

    Ejemplo

    [PUT] https://cam.ctl.io/services/instances/eb-bbhzh
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Parámetros del cuerpo de la solicitud

    Parámetro Tipo Descripción Req.
    bindings array Lista de enlaces de la instancia.
    vinculante object Enlace contenido en la lista de enlaces; cada objeto de enlace contiene estos parámetros: instance (instancia) y name (nombre).
    updated secuencia Fecha de la última actualización.
    nombre secuencia Nombre de instancia.
    servicio object Servicio de la instancia.
    service.type secuencia Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    service.id secuencia Tipo de servicio.
    service.machines array Lista de máquinas del servicio.
    machine object Máquina incluida en la lista de máquinas del servicio.
    machine.state secuencia Estado de la máquina; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    machine.name secuencia Nombre de la máquina.
    machine.workflow array Lista de acciones de flujo de trabajo; cada objeto de acción de flujo de trabajo contiene tres parámetros: box (casilla), event (evento) y script (secuencia).
    workflow.box secuencia Casilla de acción de flujo de trabajo.
    workflow.event secuencia Evento de acción de flujo de trabajo.
    workflow.script secuencia URL de acción de flujo de trabajo.
    etiquetas array Etiquetas de instancia.
    variables array Lista de variables de la instancia; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    created secuencia Fecha de creación.
    casillas array Lista de casillas.
    box.visibility secuencia Indica a qué nivel es visible la casilla. De forma predeterminada, las casillas son visibles en el espacio de trabajo en el que se crean. Puede tener uno de estos valores:
  • public (público): visible para usuarios del Gestor de aplicaciones en la nube en todas las organizaciones.
  • organization (organización): visible para todos los usuarios de la organización en la que se creó la casilla.
  • workspace (espacio de trabajo): de forma predeterminada, la casilla solo es visible para los miembros del espacio de trabajo donde se creó.
  • box.organization secuencia Organización a la que pertenece la casilla.
    box.updated secuencia Fecha de la última actualización.
    box.description secuencia Descripción de la casilla.
    box.service secuencia Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    box.tags array Etiquetas de casilla.
    box.variables array Lista de variables de la casilla; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    box.created secuencia Fecha de creación.
    box.uri secuencia URI de la casilla.
    box.id array Identificador único de la casilla.
    box.schema secuencia URI del esquema de la casilla.
    box.members array Lista de miembros de la casilla.
    box.owner secuencia Propietario de la casilla.
    box.bindings array Lista de enlaces de la casilla.
    box.binding object Enlace contenido en la lista de enlaces; cada enlace contiene una casilla y un nombre.
    box.icon secuencia URI del ícono de la casilla.
    box.events array Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), post_configure (posconfiguración), post_dispose (poseliminación), post_install (posinstalación), post_start (posinicio), post_stop (posdetención), start (inicio) y stop (detención).
    box.event object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date (fecha de carga), length (longitud) y destination_path (ruta de destino).
    box.name secuencia Nombre de la casilla.
    policy_box object Política de implementación específica para un proveedor.
    policy_box.provider_id secuencia ID del proveedor.
    policy_box.automatic_updates secuencia Una de estas opciones: major (mayores), minor (menores), patch (parche) u off (desactivadas).
    policy_box.name secuencia Nombre de la casilla para políticas.
    policy_box.variables array Lista de variables de la casilla para políticas de implementación.
    policy_box.claims array Lista de reclamos de la casilla para políticas de implementación.
    policy_box.id secuencia ID de la casilla para políticas de implementación.
    policy_box.schema secuencia Esquema de la casilla para políticas de implementación.
    policy_box.members array Lista de miembros que comparten la casilla para políticas de implementación.
    policy_box.owner secuencia Propietario de la casilla para políticas de implementación.
    policy_box.readme object Archivo Léame para la casilla para políticas de implementación.
    uri secuencia URI de la instancia.
    state secuencia Estado de la instancia; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    members array Miembros de la instancia.
    owner secuencia Propietario de la instancia.
    operation secuencia Última operación; hay siete tipos de operaciones: deploy (implementar), shutdown (cerrar), poweron (encender), reinstall (reinstalar), reconfigure (reconfigurar), terminate (finalizar) y terminate_service (finalizar servicio).
    icon secuencia URI del ícono de la instancia.
    id array Identificador único de la instancia.
    esquema secuencia URI del esquema de la instancia.
    lease array Programa una instancia con dos parámetros:
  • expire (vencimiento). Especifica, en formato AAAA-MM-DD HH:MM:SS.SSSSSS con horario UTC, la hora y la fecha para detener una instancia. Solo se requiere cuando una instancia se configura para finalizar o cerrarse.
  • operation (operación). Especifica una instancia para detenerse con shutdown (cerrar) o terminate (finalizar). Cuando no está programada, la instancia está configurada como alwayson (habilitada siempre).
  • Cuerpo de la solicitud

    {
       "box": "231dadb5-c3a5-4c33-af8e-fc315b0d11eb",
       "updated": "2019-01-18 15:19:59.199831",
       "automatic_updates": "off",
       "name": "TestServeONE",
       "service": {
            "type": "Linux Compute",
            "id": "eb-n1y4u",
            "machines": [
                {
                    "state": "done",
                    "name": "testserveone-eb-n1y4u-1",
                   "workflow": []
                    }
                ]
        },
       "policy_box": {
           "profile": {
           	 "subnet": "us-east-1a",
             "cloud": "EC2",
             "image": "Linux Compute",
             "instances": 1,
             "keypair": "None",
             "location": "us-east-1",
             "flavor": "m1.small",
             "schema": "http://elasticbox.net/schemas/aws/ec2/profile"
           },
           "provider_id": "d583d52b-1f6b-436e-82f3-06fdaf15a788",
           "automatic_updates": "off",
           "name": "default-small-us-east-1",
           "created": "2019-01-18 15:11:27.695987",
           "deleted": null,
           "variables": [],
           "updated": "2019-01-18 15:11:27.695987",
           "visibility": "workspace",
           "owner": "workspace",
           "members": [],
           "claims": [
             "small",
             "linux"
           ],
           "organization": "public",
           "id": "aeff44ad-adfb-4b57-b644-6ca0bfba2ab2",
           "schema": "http://elasticbox.net/schemas/boxes/policy"
       },
       "created": "2019-01-18 15:16:19.306559",
       "uri": "/services/instances/i-gsnjqi",
       "state": "done",
       "boxes": [
       			{
                    "schema": "http://elasticbox.net/schemas/boxes/script",
                    "updated": "2019-01-03 11:02:09.324450",
                    "automatic_updates": "off",
                    "requirements": [
                        "linux"
                    ],
                    "description": "Linux Machine with no software preinstalled",
                    "created": "2019-01-03 11:02:09.324450",
                    "deleted": null,
                    "variables": [],
                    "visibility": "public",
                    "events": {},
                    "version": {
                        "box": "231dadb5-c3a5-4c33-af8e-fc315b0d11eb",
                        "number": {
                            "major": 1,
                            "minor": 0,
                            "patch": 0
                        },
                        "workspace": "elasticbox",
                        "description": "Initial ElasticBox Version"
                    },
                    "friendly_id": "linux-compute",
                    "members": [],
                    "owner": "elasticbox",
                    "organization": "public",
                    "icon": "images/platform/linux.png",
                    "id": "1ee9af93-f9f2-4e65-9cba-71f1f6fbab61",
                    "name": "Linux Compute"
                }
       ],
       "schema": "http://elasticbox.net/schemas/instance",
       "owner": "default",
       "variables": [
           {
                "required": true,
                "type": "Text",
                "name": "variable_name",
                "value": "overridden variable value at deployment time",
                "visibility": "public"
            }
       ],
       "operation": {
           "event": "deploy",
           "workspace": "default",
           "created": "2019-01-18 15:16:19.479458"
       },
       "id": "i-gsnjqi",
       "icon": "images/platform/linux.png"
    }
    

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar
    • 202 Aceptar

    Códigos de respuesta de error comunes

    • 400 Datos no válidos
    • 403 Prohibido
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    bindings array Lista de enlaces de la instancia.
    vinculante object Enlace contenido en la lista de enlaces; cada objeto de enlace contiene estos parámetros: instance (instancia) y name (nombre).
    updated secuencia Fecha de la última actualización.
    nombre secuencia Nombre de instancia.
    servicio Object Servicio de la instancia.
    service.type secuencia Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    service.id secuencia Tipo de servicio.
    service.machines array Lista de máquinas del servicio.
    machine object Máquina incluida en la lista de máquinas del servicio.
    machine.state secuencia Estado de la máquina; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    machine.name secuencia Nombre de la máquina.
    machine.workflow array Lista de acciones de flujo de trabajo; cada objeto de acción de flujo de trabajo contiene tres parámetros: box (casilla), event (evento) y script (secuencia).
    workflow.box secuencia Casilla de acción de flujo de trabajo.
    workflow.event secuencia Evento de acción de flujo de trabajo.
    workflow.script secuencia URL de acción de flujo de trabajo.
    etiquetas array Etiquetas de instancia.
    variables array Lista de variables de la instancia; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    created secuencia Fecha de creación.
    casillas array Lista de casillas.
    box.visibility secuencia Indica a qué nivel es visible la casilla. De forma predeterminada, las casillas son visibles en el espacio de trabajo en el que se crean. Puede tener uno de estos valores:
  • public (público): visible para usuarios del Gestor de aplicaciones en la nube en todas las organizaciones.
  • organization (organización): visible para todos los usuarios de la organización en la que se creó la casilla.
  • workspace (espacio de trabajo): de forma predeterminada, la casilla solo es visible para los miembros del espacio de trabajo donde se creó.
  • box.organization secuencia Organización a la que pertenece la casilla.
    box.updated secuencia Fecha de la última actualización.
    box.description secuencia Descripción de la casilla.
    box.service secuencia Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    box.tags array Etiquetas de casilla.
    box.variables array Lista de variables de la casilla; cada objeto de variable contiene estos parámetros: type (tipo), name (nombre), value (valor), visibility (visibilidad), required (requerido), etc.
    box.created secuencia Fecha de creación.
    box.uri secuencia URI de la casilla.
    box.id array Identificador único de la casilla.
    box.schema secuencia URI del esquema de la casilla.
    box.members array Lista de miembros de la casilla.
    box.owner secuencia Propietario de la casilla.
    box.bindings array Lista de enlaces de la casilla.
    box.binding object Enlace contenido en la lista de enlaces; cada enlace contiene una casilla y un nombre.
    box.icon secuencia URI del ícono de la casilla.
    box.events array Lista de eventos de la casilla; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), post_configure (posconfiguración), post_dispose (poseliminación), post_install (posinstalación), post_start (posinicio), post_stop (posdetención), start (inicio) y stop (detención).
    box.event object Evento contenido en una de las listas de eventos; cada objeto de evento contiene estos parámetros: url, upload_date (fecha de carga), length (longitud) y destination_path (ruta de destino).
    box.name secuencia Nombre de la casilla.
    policy_box object Política de implementación específica para un proveedor.
    policy_box.provider_id secuencia ID del proveedor.
    policy_box.automatic_updates secuencia Una de estas opciones: major (mayores), minor (menores), patch (parche) u off (desactivadas).
    policy_box.name secuencia Nombre de la casilla para políticas.
    policy_box.variables array Lista de variables de la casilla para políticas de implementación.
    policy_box.claims array Lista de reclamos de la casilla para políticas de implementación.
    policy_box.id secuencia ID de la casilla para políticas de implementación.
    policy_box.schema secuencia Esquema de la casilla para políticas de implementación.
    policy_box.members array Lista de miembros que comparten la casilla para políticas de implementación.
    policy_box.owner secuencia Propietario de la casilla para políticas de implementación.
    policy_box.readme object Archivo Léame para la casilla para políticas de implementación.
    uri secuencia URI de la instancia.
    state secuencia Estado de la instancia; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    members array Miembros de la instancia.
    owner secuencia Propietario de la instancia.
    operation secuencia Última operación; hay siete tipos de operaciones: deploy (implementar), shutdown (cerrar), poweron (encender), reinstall (reinstalar), reconfigure (reconfigurar), terminate (finalizar) y terminate_service (finalizar servicio).
    icon secuencia URI del ícono de la instancia.
    id array Identificador único de la instancia.
    esquema secuencia URI del esquema de la instancia.
    lease array Programa una instancia con dos parámetros:
  • released (liberada). Es un valor booleano true (verdadero) o false (falso). False (falso) significa que la operación programada en la instancia todavía no se ejecutó.
  • expire (vencimiento). Especifica, en formato AAAA-MM-DD HH:MM:SS.SSSSSS con horario UTC, la hora y la fecha para detener una instancia. Solo se requiere cuando una instancia se configura para finalizar o cerrarse.
  • operation (operación). Especifica una instancia para detenerse con shutdown (cerrar) o terminate (finalizar). Cuando no está programada, la instancia está configurada como alwayson (habilitada siempre).
  • Cuerpo de respuesta

    {
        "automatic_updates": "off",
        "icon_metadata": {
            "image": "images/platform/linux.png",
            "border": "#D0D4D8",
            "fill": "#FFFFFF"
        },
        "variables": [
            {
                "required": true,
                "type": "Text",
                "name": "variable_name",
                "value": "overridden variable value at deployment time",
                "visibility": "public"
            }
        ],
        "automatic_reconfiguration": true,
        "owner": "default",
        "bindings": [],
        "operation": {
            "event": "deploy",
            "workspace": "default",
            "created": "2019-01-18 15:16:19.479458"
        },
        "service": {
            "type": "Linux Compute",
            "id": "eb-n1y4u",
            "machines": [
                {
                    "state": "done",
                    "name": "testserveone-eb-n1y4u-1",
                    "workflow": []
                }
            ]
        },
        "id": "i-gsnjqi",
        "is_deploy_only": true,
        "state": "done",
        "schema": "http://elasticbox.net/schemas/instance",
        "updated": "2019-01-18 17:11:59.169299",
        "tags": [],
        "deleted": null,
        "boxes": [
            {
                "updated": "2019-01-03 11:02:09.324450",
                "automatic_updates": "off",
                "description": "Linux Machine with no software preinstalled",
                "deleted": null,
                "variables": [],
                "visibility": "public",
                "friendly_id": "linux-compute",
                "members": [],
                "owner": "elasticbox",
                "id": "1ee9af93-f9f2-4e65-9cba-71f1f6fbab61",
                "icon": "images/platform/linux.png",
                "requirements": [
                    "linux"
                ],
                "name": "Linux Compute",
                "created": "2019-01-03 11:02:09.324450",
                "version": {
                    "box": "231dadb5-c3a5-4c33-af8e-fc315b0d11eb",
                    "number": {
                        "major": 1,
                        "minor": 0,
                        "patch": 0
                    },
                    "workspace": "elasticbox",
                    "description": "Initial ElasticBox Version"
                },
                "organization": "public",
                "events": {},
                "schema": "http://elasticbox.net/schemas/boxes/script"
            }
        ],
        "members": [],
        "icon": "/icons/instances/i-gsnjqi",
        "box": "231dadb5-c3a5-4c33-af8e-fc315b0d11eb",
        "name": "TestServeONE",
        "created": "2019-01-18 15:16:19.306559",
        "policy_box": {
            "profile": {
                "subnet": "us-east-1a",
                "cloud": "EC2",
                "image": "Linux Compute",
                "location": "us-east-1",
                "instances": 1,
                "keypair": "None",
                "managed_os": false,
                "volumes": [],
                "flavor": "m1.small",
                "security_groups": [
                    "Automatic"
                ],
                "schema": "http://elasticbox.net/schemas/aws/ec2/profile"
            },
            "provider_id": "d583d52b-1f6b-436e-82f3-06fdaf15a788",
            "automatic_updates": "off",
            "name": "default-small-us-east-1",
            "created": "2019-01-18 15:11:27.695987",
            "deleted": null,
            "variables": [],
            "updated": "2019-01-18 15:11:27.695987",
            "visibility": "workspace",
            "readme": {
                "url": "#application-lifecycle-management-services/resources/default-box-overview",
                "upload_date": "2019-01-18 15:11:27.695361",
                "length": 1307,
                "content_type": "text/x-markdown"
            },
            "members": [],
            "claims": [
                "small",
                "linux"
            ],
            "owner": "default",
            "organization": "public",
            "id": "aeff44ad-adfb-4b57-b644-6ca0bfba2ab2",
            "schema": "http://elasticbox.net/schemas/boxes/policy"
        },
        "uri": "/services/instances/i-gsnjqi"
    }
    

    DELETE /services/instances/{instance_id}

    Finaliza una instancia existente, fuerza su finalización o la elimina con base en la ID.

    URL

    Estructura

    [DELETE] /services/instances/{instance_id}?operation=value
    

    Ejemplo

    [DELETE] https://cam.ctl.io/services/instances/eb-bbhzh?operation=force_terminate
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.
    operation secuencia El tipo de operación debe ser uno de los siguientes valores: terminate (finalizar), force_terminate (forzar terminación) o delete (eliminar)

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 400 Datos no válidos
    • 403 Prohibido
    • 404 No encontrado
    • 409 Conflicto de operación

    GET /services/instances/{instance_id}/service

    Obtiene el servicio en la instancia con la ID de la instancia proporcionada.

    URL

    Estructura

    [GET] /services/instances/{instance_id}/service
    

    Ejemplo

    [GET] https://cam.ctl.io/services/instances/i-b1qtkz/service
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 403 Prohibido
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    perfil object Perfil del servicio.
    profile.subnet secuencia Subred del perfil.
    profile.image secuencia Imagen del perfil.
    profile.keypair secuencia Par de claves del perfil.
    profile.location secuencia Ubicación del perfil.
    profile.security_group secuencia Grupo de seguridad del perfil.
    profile.flavor secuencia Tipo de perfil.
    profile.autoscalable boolean Escalabilidad automática del perfil.
    profile.cloud boolean Tipo de nube.
    profile.schema secuencia URI del esquema del perfil.
    provider_id secuencia Identificador único del proveedor del perfil.
    created secuencia Fecha de creación.
    etiquetas array Etiquetas del servicio.
    state secuencia Estado del servicio; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    token secuencia Token del servicio.
    operation secuencia La última operación del servicio; hay siete tipos de operaciones: deploy (implementar), shutdown (cerrar), poweron (encender), reinstall (reinstalar), reconfigure (reconfigurar), terminate (finalizar) y terminate_service (finalizar el servicio).
    icon secuencia URL del ícono de servicio.
    tipo secuencia Tipo de instancia.
    id secuencia Identificador único de la instancia.
    machines array Lista de máquinas del servicio.
    machine.token secuencia Token de la máquina.
    machine.name secuencia Nombre de la máquina.
    machine.address array La matriz contiene la dirección pública y la privada.
    machine.agent_version array Versión del agente de la máquina.
    machine.external_id array ID externa de la máquina.
    machine.state secuencia Estado de la máquina; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    machine.schema array URI del esquema de la máquina.
    esquema secuencia URI del esquema del servicio.
    organización secuencia Nombre de la organización propietaria de este servicio.
    deleted secuencia Nulo cuando la instancia está disponible.

    Cuerpo de respuesta

    {
        "profile": {
            "subnet": "us-east-1a",
            "pricing_info": {
                "estimated_monthly": 3168000,
                "factor": 100000,
                "hourly_price": 4400,
                "provider_type": "Amazon Web Services"
            },
            "image": "ami-7c807d14",
            "managed_os": false,
            "instances": 1,
            "keypair": "None",
            "location": "us-east-1",
            "volumes": [],
            "cloud": "EC2",
            "flavor": "m1.small",
            "security_groups": [
                "Automatic"
            ],
            "schema": "http://elasticbox.net/schemas/aws/ec2/profile"
        },
        "schema": "http://elasticbox.net/schemas/service",
        "provider_id": "0669730b-6f01-421b-8a5e-597bca20c1bf",
        "tags": [],
        "deleted": null,
        "variables": [],
        "created": "2018-12-26 15:18:26.651731",
        "state_history": [
            {
                "started": "2018-12-26 15:19:12.346533",
                "state": "up",
                "completed": "2018-12-26 15:30:59.280770"
            },
            {
                "started": "2018-12-26 15:30:59.280770",
                "state": "down",
                "completed": "2018-12-26 15:31:27.771582"
            },
            {
                "started": "2018-12-26 15:31:27.771608",
                "state": "up"
            }
        ],
        "updated": "2018-12-26 15:37:03.927659",
        "token": "4b108401-680f-4c12-b972-3c481a852c73",
        "state": "done",
        "clc_alias": "86C7",
        "organization": "centurylink",
        "operation": "poweron",
        "type": "Linux Compute",
        "id": "eb-l2gmi",
        "machines": [
            {
                "last_agent_ping": "2018-12-26 15:33:07.907863",
                "name": "testserve-eb-l2gmi-1",
                "hostname": "ec2-52-90-5-208.compute-1.amazonaws.com",
                "token": "b40e24eb-dc72-4be5-b044-3f0015a28091",
                "support_id": "AWSUSE110715",
                "state": "done",
                "address": {
                    "public": "54.208.195.172",
                    "private": "10.45.133.57"
                },
                "schema": "http://elasticbox.net/schemas/aws/service-machine",
                "external_id": "i-0fbf9349a5ea5cd36",
                "agent_version": "6.13"
            }
        ],
        "icon": "images/platform/linux.png"
    }
    

    GET /services/instances/{instance_id}/activity

    Obtiene todos los registros de actividad de operaciones ejecutadas en una instancia cuando se proporciona la ID de esa instancia.

    URL

    Estructura

    [GET] /services/instances/{instance_id}/activity
    

    Ejemplo

    [GET] https://cam.ctl.io/services/instances/i-b1qtkz/activity
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 403 Prohibido
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    * box secuencia Nombre de la casilla.
    nombre de usuario secuencia Usuario que realizó la actividad.
    * machine secuencia Máquina.
    level secuencia Tipo de actividad.
    texto secuencia Descripción de la actividad.
    created secuencia Fecha de creación de la actividad.
    * event secuencia Evento de actividad.

    * Nota: Solo se muestra cuando la actividad de la instancia está relacionada con el parámetro.

    Cuerpo de respuesta

    [
        {
            "text": "Deploying instance.",
            "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
            "created": "2018-12-26 15:18:27.582649",
            "level": "start"
        },
        {
            "text": "Created security group eb-l2gmi.",
            "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
            "created": "2018-12-26 15:18:28.270143",
            "level": "add"
        },
        {
            "text": "Automatically selected image amzn-ami-pv-2014.03.2.x86_64-ebs.",
            "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
            "created": "2018-12-26 15:18:29.952413",
            "level": "info"
        },
        {
            "text": "Create in Progress for eb-l2gmi (AWS::CloudFormation::Stack): User Initiated.",
            "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
            "created": "2018-12-26 15:18:30.693042",
            "level": "info"
        },
        {
            "text": "Create in Progress for testserveebl2gmi1Machine (AWS::EC2::Instance).",
            "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
            "created": "2018-12-26 15:18:40.934764",
            "level": "info"
        },
        {
            "text": "Create in Progress for testserveebl2gmi1Machine (AWS::EC2::Instance): Resource creation Initiated.",
            "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
            "created": "2018-12-26 15:18:40.945462",
            "level": "info"
        },
        {
            "text": "Create Complete for testserveebl2gmi1Machine (AWS::EC2::Instance).",
            "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
            "created": "2018-12-26 15:19:11.677807",
            "level": "info"
        },
        {
            "text": "Create Complete for eb-l2gmi (AWS::CloudFormation::Stack).",
            "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
            "created": "2018-12-26 15:19:11.687805",
            "level": "info"
        },
        {
            "text": "Waiting to install ElasticBox agent in machine testserve-eb-l2gmi-1.",
            "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
            "created": "2018-12-26 15:19:12.339171",
            "level": "waiting"
        },
        {
            "box": "",
            "created": "2018-12-26 15:21:52.584981",
            "text": "Executing pre_install:php-server in machine testserve-eb-l2gmi-1.",
            "level": "install",
            "exit_code": 0,
            "machine": "testserve-eb-l2gmi-1",
            "finished": "2018-12-26 15:21:53.200000",
            "request_id": "4a0c69bc-9164-4f51-b313-d2ad46f50443",
            "event": "pre_install"
        },
        {
            "box": "",
            "created": "2018-12-26 15:21:53.592944",
            "text": "Executing configure:php-server in machine testserve-eb-l2gmi-1.",
            "level": "configure",
            "exit_code": 0,
            "machine": "testserve-eb-l2gmi-1",
            "finished": "2018-12-26 15:21:56.190000",
            "request_id": "01e52bb8-a6ba-4f36-8d52-056975fc2e34",
            "event": "configure"
        },
        {
            "text": "Machine testserve-eb-l2gmi-1 successfully deployed.",
            "request_id": "9232da27-2106-46cd-972d-c7014f4ece04",
            "created": "2018-12-26 15:21:56.470664",
            "level": "success"
        },
        {
            "text": "Instance successfully deployed.",
            "request_id": "9232da27-2106-46cd-972d-c7014f4ece04",
            "created": "2018-12-26 15:21:56.483589",
            "level": "success"
        },
        {
            "text": "Shutting-down instance.",
            "request_id": "0af456dd-86d9-49fd-8ff8-16e3017775a8",
            "created": "2018-12-26 15:29:56.584842",
            "level": "stop"
        },
        {
            "text": "Machine testserve-eb-l2gmi-1 successfully stopped.",
            "request_id": "36c4a9f6-78f2-44dc-af3f-2445017571e3",
            "created": "2018-12-26 15:29:57.716319",
            "level": "success"
        },
        {
            "text": "Instance successfully stopped.",
            "request_id": "36c4a9f6-78f2-44dc-af3f-2445017571e3",
            "created": "2018-12-26 15:29:57.727837",
            "level": "success"
        },
        {
            "text": "Shutting-down service eb-l2gmi.",
            "request_id": "615759d1-1461-44b6-96b8-ad4e9671271a",
            "created": "2018-12-26 15:29:57.825175",
            "level": "stop"
        },
        {
            "text": "Waiting for shutting-down machines testserve-eb-l2gmi-1.",
            "request_id": "615759d1-1461-44b6-96b8-ad4e9671271a",
            "created": "2018-12-26 15:29:58.571231",
            "level": "waiting"
        },
        {
            "text": "Service eb-l2gmi successfully shutdown.",
            "request_id": "615759d1-1461-44b6-96b8-ad4e9671271a",
            "created": "2018-12-26 15:30:59.290583",
            "level": "success"
        },
        {
            "text": "Powering-on instance.",
            "request_id": "5d48b218-330b-42bd-b3b0-0349a29c3c58",
            "created": "2018-12-26 15:31:27.556072",
            "level": "start"
        },
        {
            "text": "Powering-on service eb-l2gmi.",
            "request_id": "5d48b218-330b-42bd-b3b0-0349a29c3c58",
            "created": "2018-12-26 15:31:27.603268",
            "level": "start"
        },
        {
            "text": "Booting machine testserve-eb-l2gmi-1.",
            "request_id": "5d48b218-330b-42bd-b3b0-0349a29c3c58",
            "created": "2018-12-26 15:31:27.786126",
            "level": "info"
        },
        {
            "text": "Waiting to install ElasticBox agent in machine testserve-eb-l2gmi-1.",
            "request_id": "5d48b218-330b-42bd-b3b0-0349a29c3c58",
            "created": "2018-12-26 15:31:28.176402",
            "level": "waiting"
        },
        {
            "box": "",
            "created": "2018-12-26 15:33:03.801318",
            "text": "Executing configure:php-server in machine testserve-eb-l2gmi-1.",
            "level": "configure",
            "exit_code": 0,
            "machine": "testserve-eb-l2gmi-1",
            "finished": "2018-12-26 15:33:06.440000",
            "request_id": "7d39719d-236e-4277-bd0f-0c0ca21a941c",
            "event": "configure"
        },
        {
            "text": "Machine testserve-eb-l2gmi-1 successfully powered-on.",
            "request_id": "78d61086-0fdc-4a3a-84c7-2848c88d0bed",
            "created": "2018-12-26 15:33:06.706192",
            "level": "success"
        },
        {
            "text": "Instance successfully powered-on.",
            "request_id": "78d61086-0fdc-4a3a-84c7-2848c88d0bed",
            "created": "2018-12-26 15:33:06.716120",
            "level": "success"
        },
        {
            "text": "Reinstalling instance.",
            "request_id": "162fc44b-c2a0-4873-a42e-0778d4f628ea",
            "created": "2018-12-26 15:34:37.732658",
            "level": "install"
        },
        {
            "box": "",
            "created": "2018-12-26 15:34:39.306274",
            "text": "Executing pre_install:php-server in machine testserve-eb-l2gmi-1.",
            "level": "install",
            "exit_code": 0,
            "machine": "testserve-eb-l2gmi-1",
            "finished": "2018-12-26 15:34:41.870000",
            "request_id": "31be6340-2a11-4cad-9643-8082f44515ac",
            "event": "pre_install"
        },
        {
            "box": "",
            "created": "2018-12-26 15:34:42.177262",
            "text": "Executing configure:php-server in machine testserve-eb-l2gmi-1.",
            "level": "configure",
            "exit_code": 0,
            "machine": "testserve-eb-l2gmi-1",
            "finished": "2018-12-26 15:34:44.700000",
            "request_id": "df7ce1ca-4477-4c41-84de-16476b22e329",
            "event": "configure"
        },
        {
            "text": "Machine testserve-eb-l2gmi-1 successfully reinstalled.",
            "request_id": "a0fccf9e-42ac-4cef-9f6b-9f5b28565cd0",
            "created": "2018-12-26 15:34:44.965676",
            "level": "success"
        },
        {
            "text": "Instance successfully reinstalled.",
            "request_id": "a0fccf9e-42ac-4cef-9f6b-9f5b28565cd0",
            "created": "2018-12-26 15:34:44.979192",
            "level": "success"
        },
        {
            "text": "Reconfiguring instance.",
            "request_id": "98299bd7-e89c-4078-b6c6-51d1134cbaba",
            "created": "2018-12-26 15:37:03.010128",
            "level": "configure"
        },
        {
            "box": "",
            "created": "2018-12-26 15:37:05.022507",
            "text": "Executing configure:php-server in machine testserve-eb-l2gmi-1.",
            "level": "configure",
            "exit_code": 0,
            "machine": "testserve-eb-l2gmi-1",
            "finished": "2018-12-26 15:37:07.540000",
            "request_id": "131c170d-0d76-4bec-a3e8-31877c4cf225",
            "event": "configure"
        },
        {
            "text": "Machine testserve-eb-l2gmi-1 successfully reconfigured.",
            "request_id": "e83e5869-16c3-4a81-9a1f-0e14ff2ca003",
            "created": "2018-12-26 15:37:07.801594",
            "level": "success"
        },
        {
            "text": "Instance successfully reconfigured.",
            "request_id": "e83e5869-16c3-4a81-9a1f-0e14ff2ca003",
            "created": "2018-12-26 15:37:07.812196",
            "level": "success"
        }
    ]
    

    GET /services/instances/{instance_id}/machine_logs

    Obtiene los registros de una máquina para una instancia implementada cuando se proporciona la ID de esa instancia.

    URL

    Estructura

    [GET] /services/instances/{instance_id}/machine_logs?machine_name={machine}
    

    Ejemplo

    [GET] https://cam.ctl.io/services/instances/eb-bbhzh/activity?operation=nfs-client1-eb-osw3o-1
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.
    machine_name secuencia El nombre de la máquina de la que desea recuperar el registro. Puede obtener el nombre de la máquina de la documentación de la instancia.
    box secuencia Nombre de la casilla.
    event secuencia Tipo de evento; puede haber nueve listas de eventos: configure (configuración), dispose (eliminación), install (instalación), post_dispose (poseliminación), post_stop (posdetención), pre_configure (preconfiguración), pre_install (preinstalación), pre_start (preinicio), start and stop (inicio y detención).
    operation secuencia La ID de operación específica; hay siete tipos de operaciones: deploy (implementar), shutdown (cerrar), poweron (encender), reinstall (reinstalar), reconfigure (reconfigurar), terminate (finalizar) y terminate_service (finalizar el servicio).

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 403 Prohibido
    • 404 No encontrado

    Cuerpo de respuesta

    Executing pre_install-{instance_id} script
    ...
    pre_install-{instance_id} successfully executed.
    Executing install-{instance_id} script
    ...
    install-{instance_id} successfully executed.
    Executing configure-{instance_id} script
    ...
    configure-{instance_id} successfully executed.
    

    GET /services/instances/{instance_id}/bindings

    Obtiene el enlace de una instancia cuando se proporciona la ID de esa instancia.

    URL

    Estructura

    [GET] /services/instances/{instance_id}/bindings
    

    Ejemplo

    [GET] https://cam.ctl.io/services/instances/eb-bbhzh/bindings
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 403 Prohibido
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    updated secuencia Fecha de la última actualización.
    operation secuencia Última operación; hay siete tipos de operaciones: deploy (implementar), shutdown (cerrar), poweron (encender), reinstall (reinstalar), reconfigure (reconfigurar), terminate (finalizar) y terminate_service (finalizar servicio).
    nombre secuencia Nombre de instancia.
    servicio Object Servicio de la instancia.
    service.type secuencia Puede ser uno de estos tipos: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    service.id secuencia Tipo de servicio.
    service.machines array Lista de máquinas del servicio.
    machine object Máquina incluida en la lista de máquinas del servicio.
    machine.state secuencia Estado de la máquina; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    machine.name secuencia Nombre de la máquina.
    machine.workflow array Lista de acciones de flujo de trabajo; cada objeto de acción de flujo de trabajo contiene tres parámetros: box (casilla), event (evento) y script (secuencia).
    workflow.box secuencia Casilla de acción de flujo de trabajo.
    workflow.event secuencia Evento de acción de flujo de trabajo.
    workflow.script secuencia URL de acción de flujo de trabajo.
    etiquetas array Etiquetas de instancia.
    casillas array Lista de casillas donde cada objeto de casilla contiene un parámetro de servicio. El parámetro de servicio puede tener uno de estos valores: Linux Compute (proceso de Linux), Windows Compute (proceso de Windows) o CloudFormation Service (servicio de CloudFormation).
    uri secuencia URI de la instancia.
    state secuencia Estado de la instancia; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    bindings array Lista de enlaces de la instancia.
    vinculante object Enlace contenido en la lista de enlaces; cada objeto de enlace contiene estos parámetros: instance (instancia) y name (nombre).
    id array Identificador único de la instancia.
    icon secuencia URI del ícono de la instancia.
    esquema secuencia URI del esquema de la instancia.

    Cuerpo de respuesta

    [
      {
         "box":{
            "version":"1186ce20-96f2-458d-ae62-19496036b275",
            "name":"Wordpress"
         },
         "updated":"2014-03-21 18:20:04.921745",
         "name":"profile",
         "created":"2014-03-21 18:20:04.921745",
         "default_stamp":1395426004.921258,
         "uri":"--profile uri--",
         "instances":[
            {
               "box":{
                  "version":"1186ce20-96f2-458d-ae62-19496036b275",
                  "name":"Wordpress"
               },
               "profile":{
                  "subnet":"us-east-1b",
                  "image":"Linux Compute",
                  "instances":1,
                  "keypair":"None",
                  "location":"us-east-1",
                  "security_group":"Automatic",
                  "flavor":"t1.micro",
                  "autoscalable":false,
                  "cloud":"EC2",
                  "schema":"http://elasticbox.net/schemas/aws/ec2/profile"
               },
               "provider":"Amazon",
               "path":"/",
               "variables":[
                  {
                     "type":"Port",
                     "name":"http",
                     "value":"80"
                  }
               ],
               "bindings":[
    
               ]
            }
         ],
         "members":[
                   "member1","member2"
         ],
         "owner":"workspace1",
         "id":"--profile id--",
         "schema":"http://elasticbox.net/schemas/deployment-profile"
      }
    ]
    

    GET /services/instances/{instance_id}/operations

    Obtiene todas las operaciones ejecutadas en una instancia cuando se proporciona la ID de esa instancia.

    URL

    Estructura

    [GET] /services/instances/{instance_id}/operations
    

    Ejemplo

    [GET] https://cam.ctl.io/services/instances/i-b1qtkz/operations
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 403 Prohibido
    • 404 No encontrado

    Parámetros de la respuesta

    Parámetro Tipo Descripción
    nombre de usuario secuencia Nombre del usuario.
    updated secuencia Fecha de la última actualización.
    created secuencia Fecha de creación.
    instancia secuencia Identificador único de la instancia.
    state secuencia Estado de la instancia; hay tres estados posibles: processing (en proceso), done (terminado) y unavailable (no disponible).
    workspace secuencia Nombre del espacio de trabajo.
    actividades array Lista de actividades.
    activity.username secuencia Usuario que realizó la actividad.
    activity.text secuencia Descripción de la actividad.
    activity.level secuencia Tipo de actividad.
    activity.created secuencia Fecha de la actividad.
    operation secuencia Última operación; hay siete tipos de operaciones: deploy (implementar), shutdown (cerrar), poweron (encender), reinstall (reinstalar), reconfigure (reconfigurar), terminate (finalizar) y terminate_service (finalizar el servicio).
    id secuencia Identificador único de la operación.
    deleted secuencia Fecha de eliminación.
    esquema secuencia URI del esquema de la operación.

    Cuerpo de respuesta

    [
        {
            "username": "jorge.torres@centurylink.com",
            "updated": "2018-12-26 15:21:56.509525",
            "created": "2018-12-26 15:18:27.567661",
            "deleted": null,
            "activity": [
                {
                    "text": "Deploying instance.",
                    "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
                    "created": "2018-12-26 15:18:27.582649",
                    "level": "start"
                },
                {
                    "text": "Created security group eb-l2gmi.",
                    "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
                    "created": "2018-12-26 15:18:28.270143",
                    "level": "add"
                },
                {
                    "text": "Automatically selected image amzn-ami-pv-2014.03.2.x86_64-ebs.",
                    "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
                    "created": "2018-12-26 15:18:29.952413",
                    "level": "info"
                },
                {
                    "text": "Create in Progress for eb-l2gmi (AWS::CloudFormation::Stack): User Initiated.",
                    "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
                    "created": "2018-12-26 15:18:30.693042",
                    "level": "info"
                },
                {
                    "text": "Create in Progress for testserveebl2gmi1Machine (AWS::EC2::Instance).",
                    "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
                    "created": "2018-12-26 15:18:40.934764",
                    "level": "info"
                },
                {
                    "text": "Create in Progress for testserveebl2gmi1Machine (AWS::EC2::Instance): Resource creation Initiated.",
                    "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
                    "created": "2018-12-26 15:18:40.945462",
                    "level": "info"
                },
                {
                    "text": "Create Complete for testserveebl2gmi1Machine (AWS::EC2::Instance).",
                    "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
                    "created": "2018-12-26 15:19:11.677807",
                    "level": "info"
                },
                {
                    "text": "Create Complete for eb-l2gmi (AWS::CloudFormation::Stack).",
                    "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
                    "created": "2018-12-26 15:19:11.687805",
                    "level": "info"
                },
                {
                    "text": "Waiting to install ElasticBox agent in machine testserve-eb-l2gmi-1.",
                    "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
                    "created": "2018-12-26 15:19:12.339171",
                    "level": "waiting"
                },
                {
                    "box": "",
                    "created": "2018-12-26 15:21:52.584981",
                    "text": "Executing pre_install:php-server in machine testserve-eb-l2gmi-1.",
                    "level": "install",
                    "exit_code": 0,
                    "machine": "testserve-eb-l2gmi-1",
                    "finished": "2018-12-26 15:21:53.200000",
                    "request_id": "4a0c69bc-9164-4f51-b313-d2ad46f50443",
                    "event": "pre_install"
                },
                {
                    "box": "",
                    "created": "2018-12-26 15:21:53.592944",
                    "text": "Executing configure:php-server in machine testserve-eb-l2gmi-1.",
                    "level": "configure",
                    "exit_code": 0,
                    "machine": "testserve-eb-l2gmi-1",
                    "finished": "2018-12-26 15:21:56.190000",
                    "request_id": "01e52bb8-a6ba-4f36-8d52-056975fc2e34",
                    "event": "configure"
                },
                {
                    "text": "Machine testserve-eb-l2gmi-1 successfully deployed.",
                    "request_id": "9232da27-2106-46cd-972d-c7014f4ece04",
                    "created": "2018-12-26 15:21:56.470664",
                    "level": "success"
                },
                {
                    "text": "Instance successfully deployed.",
                    "request_id": "9232da27-2106-46cd-972d-c7014f4ece04",
                    "created": "2018-12-26 15:21:56.483589",
                    "level": "success"
                }
            ],
            "instance": "i-b1qtkz",
            "state": "done",
            "instance_state": "done",
            "workspace": "operations",
            "request_id": "6886be9c-cdf8-425f-9392-c6f3bb840e22",
            "operation": "deploy",
            "id": "46e7993d-e259-47a6-a353-fa62128fb288",
            "schema": "http://elasticbox.net/schemas/instance-operation"
        },
        {
            "username": "jorge.torres@centurylink.com",
            "updated": "2018-12-26 15:30:59.323268",
            "created": "2018-12-26 15:29:56.569835",
            "deleted": null,
            "activity": [
                {
                    "text": "Shutting-down instance.",
                    "request_id": "0af456dd-86d9-49fd-8ff8-16e3017775a8",
                    "created": "2018-12-26 15:29:56.584842",
                    "level": "stop"
                },
                {
                    "text": "Machine testserve-eb-l2gmi-1 successfully stopped.",
                    "request_id": "36c4a9f6-78f2-44dc-af3f-2445017571e3",
                    "created": "2018-12-26 15:29:57.716319",
                    "level": "success"
                },
                {
                    "text": "Instance successfully stopped.",
                    "request_id": "36c4a9f6-78f2-44dc-af3f-2445017571e3",
                    "created": "2018-12-26 15:29:57.727837",
                    "level": "success"
                },
                {
                    "text": "Shutting-down service eb-l2gmi.",
                    "request_id": "615759d1-1461-44b6-96b8-ad4e9671271a",
                    "created": "2018-12-26 15:29:57.825175",
                    "level": "stop"
                },
                {
                    "text": "Waiting for shutting-down machines testserve-eb-l2gmi-1.",
                    "request_id": "615759d1-1461-44b6-96b8-ad4e9671271a",
                    "created": "2018-12-26 15:29:58.571231",
                    "level": "waiting"
                },
                {
                    "text": "Service eb-l2gmi successfully shutdown.",
                    "request_id": "615759d1-1461-44b6-96b8-ad4e9671271a",
                    "created": "2018-12-26 15:30:59.290583",
                    "level": "success"
                }
            ],
            "instance": "i-b1qtkz",
            "state": "done",
            "instance_state": "done",
            "workspace": "operations",
            "request_id": "0af456dd-86d9-49fd-8ff8-16e3017775a8",
            "operation": "shutdown",
            "id": "16f0376a-ae1c-4d26-8156-119f5fba3d27",
            "schema": "http://elasticbox.net/schemas/instance-operation"
        },
        {
            "username": "jorge.torres@centurylink.com",
            "updated": "2018-12-26 15:33:06.727051",
            "created": "2018-12-26 15:31:27.539879",
            "deleted": null,
            "activity": [
                {
                    "text": "Powering-on instance.",
                    "request_id": "5d48b218-330b-42bd-b3b0-0349a29c3c58",
                    "created": "2018-12-26 15:31:27.556072",
                    "level": "start"
                },
                {
                    "text": "Powering-on service eb-l2gmi.",
                    "request_id": "5d48b218-330b-42bd-b3b0-0349a29c3c58",
                    "created": "2018-12-26 15:31:27.603268",
                    "level": "start"
                },
                {
                    "text": "Booting machine testserve-eb-l2gmi-1.",
                    "request_id": "5d48b218-330b-42bd-b3b0-0349a29c3c58",
                    "created": "2018-12-26 15:31:27.786126",
                    "level": "info"
                },
                {
                    "text": "Waiting to install ElasticBox agent in machine testserve-eb-l2gmi-1.",
                    "request_id": "5d48b218-330b-42bd-b3b0-0349a29c3c58",
                    "created": "2018-12-26 15:31:28.176402",
                    "level": "waiting"
                },
                {
                    "box": "",
                    "created": "2018-12-26 15:33:03.801318",
                    "text": "Executing configure:php-server in machine testserve-eb-l2gmi-1.",
                    "level": "configure",
                    "exit_code": 0,
                    "machine": "testserve-eb-l2gmi-1",
                    "finished": "2018-12-26 15:33:06.440000",
                    "request_id": "7d39719d-236e-4277-bd0f-0c0ca21a941c",
                    "event": "configure"
                },
                {
                    "text": "Machine testserve-eb-l2gmi-1 successfully powered-on.",
                    "request_id": "78d61086-0fdc-4a3a-84c7-2848c88d0bed",
                    "created": "2018-12-26 15:33:06.706192",
                    "level": "success"
                },
                {
                    "text": "Instance successfully powered-on.",
                    "request_id": "78d61086-0fdc-4a3a-84c7-2848c88d0bed",
                    "created": "2018-12-26 15:33:06.716120",
                    "level": "success"
                }
            ],
            "instance": "i-b1qtkz",
            "state": "done",
            "instance_state": "done",
            "workspace": "operations",
            "request_id": "5d48b218-330b-42bd-b3b0-0349a29c3c58",
            "operation": "poweron",
            "id": "3776fe57-879c-4c93-b1c8-56abbc6757c0",
            "schema": "http://elasticbox.net/schemas/instance-operation"
        },
        {
            "username": "jorge.torres@centurylink.com",
            "updated": "2018-12-26 15:34:44.995543",
            "created": "2018-12-26 15:34:37.718774",
            "deleted": null,
            "activity": [
                {
                    "text": "Reinstalling instance.",
                    "request_id": "162fc44b-c2a0-4873-a42e-0778d4f628ea",
                    "created": "2018-12-26 15:34:37.732658",
                    "level": "install"
                },
                {
                    "box": "",
                    "created": "2018-12-26 15:34:39.306274",
                    "text": "Executing pre_install:php-server in machine testserve-eb-l2gmi-1.",
                    "level": "install",
                    "exit_code": 0,
                    "machine": "testserve-eb-l2gmi-1",
                    "finished": "2018-12-26 15:34:41.870000",
                    "request_id": "31be6340-2a11-4cad-9643-8082f44515ac",
                    "event": "pre_install"
                },
                {
                    "box": "",
                    "created": "2018-12-26 15:34:42.177262",
                    "text": "Executing configure:php-server in machine testserve-eb-l2gmi-1.",
                    "level": "configure",
                    "exit_code": 0,
                    "machine": "testserve-eb-l2gmi-1",
                    "finished": "2018-12-26 15:34:44.700000",
                    "request_id": "df7ce1ca-4477-4c41-84de-16476b22e329",
                    "event": "configure"
                },
                {
                    "text": "Machine testserve-eb-l2gmi-1 successfully reinstalled.",
                    "request_id": "a0fccf9e-42ac-4cef-9f6b-9f5b28565cd0",
                    "created": "2018-12-26 15:34:44.965676",
                    "level": "success"
                },
                {
                    "text": "Instance successfully reinstalled.",
                    "request_id": "a0fccf9e-42ac-4cef-9f6b-9f5b28565cd0",
                    "created": "2018-12-26 15:34:44.979192",
                    "level": "success"
                }
            ],
            "instance": "i-b1qtkz",
            "state": "done",
            "instance_state": "done",
            "workspace": "operations",
            "request_id": "162fc44b-c2a0-4873-a42e-0778d4f628ea",
            "operation": "reinstall",
            "id": "485be288-a545-4cab-8ade-f5b24832ae01",
            "schema": "http://elasticbox.net/schemas/instance-operation"
        },
        {
            "username": "jorge.torres@centurylink.com",
            "updated": "2018-12-26 15:37:07.824425",
            "created": "2018-12-26 15:37:02.998807",
            "deleted": null,
            "activity": [
                {
                    "text": "Reconfiguring instance.",
                    "request_id": "98299bd7-e89c-4078-b6c6-51d1134cbaba",
                    "created": "2018-12-26 15:37:03.010128",
                    "level": "configure"
                },
                {
                    "box": "",
                    "created": "2018-12-26 15:37:05.022507",
                    "text": "Executing configure:php-server in machine testserve-eb-l2gmi-1.",
                    "level": "configure",
                    "exit_code": 0,
                    "machine": "testserve-eb-l2gmi-1",
                    "finished": "2018-12-26 15:37:07.540000",
                    "request_id": "131c170d-0d76-4bec-a3e8-31877c4cf225",
                    "event": "configure"
                },
                {
                    "text": "Machine testserve-eb-l2gmi-1 successfully reconfigured.",
                    "request_id": "e83e5869-16c3-4a81-9a1f-0e14ff2ca003",
                    "created": "2018-12-26 15:37:07.801594",
                    "level": "success"
                },
                {
                    "text": "Instance successfully reconfigured.",
                    "request_id": "e83e5869-16c3-4a81-9a1f-0e14ff2ca003",
                    "created": "2018-12-26 15:37:07.812196",
                    "level": "success"
                }
            ],
            "instance": "i-b1qtkz",
            "state": "done",
            "instance_state": "done",
            "workspace": "operations",
            "request_id": "98299bd7-e89c-4078-b6c6-51d1134cbaba",
            "operation": "reconfigure",
            "id": "3de6477a-5e16-432f-a98a-8ec99f95ac1a",
            "schema": "http://elasticbox.net/schemas/instance-operation"
        }
    ]
    

    PUT /services/instances/{instance_id}/deploy

    Vuelve a implementar una instancia existente. Requiere la instance_id (ID de instancia) especificada.

    URL

    Estructura

    [PUT] /services/instances/{instance_id}/deploy
    

    Ejemplo

    [PUT] https://cam.ctl.io/services/instances/i-ndt46z/deploy
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 409 Conflicto de operación

    PUT /services/instances/{instance_id}/poweron

    Enciende una instancia existente cuando se proporciona la ID de esa instancia.

    URL

    Estructura

    [PUT] /services/instances/{instance_id}/poweron
    

    Ejemplo

    [PUT] https://cam.ctl.io/services/instances/i-b1qtkz/poweron
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 409 Conflicto de operación

    PUT /services/instances/{instance_id}/shutdown

    Cierra una instancia existente cuando se proporciona la ID de esa instancia.

    URL

    Estructura

    [PUT] /services/instances/{instance_id}/shutdown
    

    Ejemplo

    [PUT] https://cam.ctl.io/services/instances/i-b1qtkz/shutdown
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 409 Conflicto de operación

    PUT /services/instances/{instance_id}/reinstall

    Reinstala una instancia existente cuando se proporciona su ID.

    URL

    Estructura

    [PUT] /services/instances/{instance_id}/reinstall
    

    Ejemplo

    [PUT] https://cam.ctl.io/services/instances/i-b1qtkz/reinstall
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 409 Conflicto de operación

    PUT /services/instances/{instance_id}/reconfigure

    Vuelve a configurar una instancia existente cuando se proporciona su ID.

    URL

    Estructura

    [PUT] /services/instances/{instance_id}/reconfigure
    

    Ejemplo

    [PUT] https://cam.ctl.io/services/instances/i-b1qtkz/reconfigure
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 409 Conflicto de operación

    Cuerpo de respuesta

    {
      "id":"i-4g166v",
      "method":"reconfigure"
    }
    

    PUT /services/instances/{instance_id}/import

    Reintenta importar una instancia sin registrar cuando se proporciona su ID.

    URL

    Estructura

    [PUT] /services/instances/{instance_id}/import
    

    Ejemplo

    [PUT] https://cam.ctl.io/services/instances/i-ndt46z/import
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 403 Prohibido
    • 404 No encontrado

    Cuerpo de respuesta

    {
      "id":"i-eruumb",
      "method":"import"
    }
    

    PUT /services/instances/{instance_id}/cancel_import

    Cancela una importación fallida de una instancia sin registrar cuando se proporciona su ID.

    URL

    Estructura

    [PUT] /services/instances/{instance_id}/cancel_import
    

    Ejemplo

    [PUT] https://cam.ctl.io/services/instances/i-ndt46z/cancel_import
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 403 Prohibido
    • 404 No encontrado

    Cuerpo de respuesta

    {
      "id":"i-eruumb",
      "method":"cancel_import"
    }
    

    PUT /services/instances/{instance_id}/abort_operation

    Anula una operación en proceso ejecutando secuencias en una instancia cuando se proporciona su ID.
    La instancia debe estar en proceso y ejecutando secuencias de eventos.
    También se requieren permisos de edición en la instancia.

    URL

    Estructura

    [PUT] /services/instances/{instance_id}/abort_operation
    

    Ejemplo

    [PUT] https://cam.ctl.io/services/instances/i-ndt46z/abort_operation
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Parámetro Tipo Descripción Req.
    instance_id secuencia ID de la instancia.

    Respuesta

    Códigos de respuesta normales

    • 200 Aceptar

    Códigos de respuesta de error comunes

    • 403 Prohibido
    • 404 No encontrado

    Delegar la gestión de una instancia existente

    Este servicio permite al usuario delegar la gestión de una instancia existente a CenturyLink.

    Cuándo utilizarlo

    Utilice esta operación de API si desea que CL pueda gestionar una instancia en su nombre.

    NOTA: Deben cumplirse los siguientes requisitos para poder hacer que una instancia sea gestionada:

    • Solo se pueden gestionar instancias “compute” (de proceso) (Linux y Windows).
    • Deben aceptarse los términos y condiciones. Para ello, el siguiente parámetro de URL debe establecerse como true (verdadero):
      accept_terms=true
      
    • La instancia debe estar en estado “Done” (terminada).
    • El usuario que realiza la solicitud debe tener permisos de write (escritura) para la instancia.
    • La empresa propietaria de la instancia debe admitir la “delegación de gestión”.

    Sistemas operativos admitidos

    • Linux
    • Windows

    URL

    Estructura

    [PUT] /services/instances/{instance_id}/make_managed_os
    

    Ejemplo

    PUT https://cam.ctl.io/services/instances/i-fbs9ow/make_managed_os?accept_terms=true
    

    Solicitud

    Encabezados

    Content-Type: application/json
    Authorization: Bearer your_json_web_token
    ElasticBox-Release: 4.0
    

    Parámetros del URI

    Nombre Tipo Descripción Req.
    InscanceId secuencia ID de la instancia.
    accept_terms boolean Indica que el cliente acepta los términos y condiciones.

    Respuesta

    Códigos de respuesta normales

    • 202 Aceptado

    Códigos de respuesta de error comunes

    • Solicitud incorrecta (400) - La solicitud tiene parámetros no válidos, incompletos o faltantes (detalles proporcionados dentro del cuerpo)
    • No autorizado (401) - Cookie o token de acceso no válido
    • Prohibido (403) - El usuario no pertenece a la organización
    • No encontrado (404) - Organización no encontrada

    Implementar una casilla

    Resumen

    Esta guía muestra cómo implementar una instancia de mongoDB usando la API del Gestor de aplicaciones en la nube. En este ejemplo, implementamos una instancia de MongoDB utilizando la casilla pública de MongoDB existente. Los pasos que debe seguir son:

    Nota: Utilizamos comandos de cURL para enviar solicitudes HTTP a los objetos de API en JSON. JSON es el formato necesario para todas las solicitudes y respuestas de API.

    A continuación veamos la secuencia en secciones, para entender cómo pueden realizarse llamadas API con cualquier código que desee.

    Autenticar con el Gestor de aplicaciones en la nube

    En primer lugar, debe ser el administrador del espacio de trabajo en cuestión o tener acceso de administrador a su organización en el Gestor de aplicaciones en la nube.

    Antes de llamar a la API, debe iniciar sesión en el sitio web del Gestor de aplicaciones en la nube y obtener un token de autenticación. Este token se utilizará más tarde como encabezado http para realizar cada llamada a la API del Gestor de aplicaciones en la nube.

    Declarar argumentos de implementación

    Las variables siguientes se configuran con parámetros de llamada a secuencia. De esta forma, cada vez que se ejecuta la secuencia, pueden transferir diferentes argumentos de implementación. Estas variables declaradas se mencionan más adelante en la secuencia como valores de los parámetros de solicitud.

    Variable Tipo Descripción
    provider_key
    provider_secret
    secuencia Se necesitan la clave y el secreto de la cuenta del proveedor para registrar un proveedor.
    Vea a continuación cómo registrar un proveedor y obtener sus parámetros.
    json_web_token secuencia Este es el token de autenticación obtenido antes.
    Un ejemplo es eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJvcGVyYb25z...
    medio ambiente secuencia Establece del nombre del host de la organización del URL o la IP de su dispositivo, a donde se envían las llamadas API.
    Ejemplos: cam.ctl.io (si está utilizando la edición SaaS del CAM), 192.168.1.10 (para un dispositivo CAM local).
    owner secuencia Especifica la ID de usuario propietario de la cuenta del proveedor en el Gestor de aplicaciones en la nube. Puede recuperarla de la llamada API GET provider, en el campo owner (propietario) devuelto.
    nombre de usuario secuencia Nombre del usuario administrador.
    contraseña secuencia Contraseña del usuario administrador.

    Inicie la secuencia con las siguientes líneas:

    # Deployment common variables
    provider_key=$1
    provider_secret=$2
    
    json_web_token=$3
    environment=$4
    owner=$5
    
    username=$6
    password=$7
    

    Hay otras variables obtenidas durante la ejecución de la secuencia, necesarias para los siguientes pasos.

    Variable Tipo Descripción
    provider_id secuencia Se obtiene al registrar un proveedor.
    policy_box_id secuencia Se obtiene al crear una casilla para política de implementación.
    instance_id secuencia Se obtiene al implementar una instancia de casilla.

    Registrar un proveedor en el Gestor de aplicaciones en la nube

    Un proveedor es una cuenta de nube privada o pública que puede registrarse en el Gestor de aplicaciones en la nube.

    Para registrar un proveedor, enviamos una solicitud POST al objeto Provider (proveedor) con los parámetros necesarios.

    En este caso, elegimos configurar Amazon Web Services como proveedor en el dispositivo. En este momento se necesitan la clave y el secreto de las credenciales de la cuenta de AWS. Para crearla en un servicio de organización se requiere el código del ARN como credencial. Puede obtener los parámetros necesarios para otros proveedores en el documento de API del objeto Provider (proveedor).

    Si hay una falla al registrar el proveedor, indicamos el error. De lo contrario, indicamos la ID del proveedor, y la guardamos en la variable id_provider.

    Agregue las siguientes líneas a su secuencia:

    # Register the provider AWS in Cloud Application Manager script
    payload="{
      \"icon\": \"images/platform/aws.png\",
      \"type\": \"Amazon Web Services\",
      \"description\": \"Manage EC2, ECS and Cloudformation instances\",
      \"schema\": \"http://elasticbox.net/schemas/aws/provider\",
      \"name\": \"AWS Provider example via API\",
      \"credentials\": {
        \"key\": \"$provider_key\",
        \"secret\": \"$provider_secret\"
      },
      \"owner\": \"$owner\"
    }"
    provider=$(curl -k -s \
        -X POST \
        -H "Authorization:Bearer $json_web_token" \
        -H "elasticbox-release:4.0" \
        -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" \
        -H "Accept: application/json, text/plain, */*" \
        -H "Accept-encoding: gzip, deflate" \
        -H "Content-Type: application/json" \
        -d "$payload" https://$environment/services/providers)
    provider_id=$(echo $provider | python -c 'import json,sys; print json.load(sys.stdin)["id"]')
    if [ -z != $provider_id ]; then
        echo "Created provider $provider_id"
    else
        echo "Error creating the provider: $provider"
    fi;
    

    Crear una casilla para políticas de implementación

    Una casilla para política para implementación es donde se especifican las configuraciones para implementar aplicaciones en un entorno virtual específico.

    Para crear una casilla para política de implementación, enviamos una solicitud POST al objeto Box (casilla) con la ID del proveedor obtenida al registrar el proveedor en la variable id_provider.

    Si hay una falla al crear la casilla para política de implementación, indicamos el error. De lo contrario, indicamos la ID de la casilla para política de implementación creada y la guardamos en la variable policy_box_id.

    Agregue las siguientes líneas a su secuencia:

    payload="{
            \"owner\": \"$owner\",
            \"schema\": \"http://elasticbox.net/schemas/boxes/policy\",
            \"claims\": [
            \"linux\"
            ],
            \"lifespan\": {
            \"operation\": \"none\"
            },
            \"automatic_updates\": \"off\",
            \"provider_id\": \"$provider_id\",
            \"name\": \"Deployment Policy Box Example\",
            \"description\": \"Just one example of deployment policy box creation via API\",
            \"profile\": {
            \"schema\": \"http://elasticbox.net/schemas/aws/ec2/profile\",
            \"flavor\": \"t1.micro\",
            \"location\": \"us-east-1\",
            \"instances\": 1,
            \"image\": \"Linux Compute\",
            \"keypair\": \"None\",
            \"cloud\": \"EC2\",
            \"security_groups\": [
    
            ],
            \"subnet\": \"us-east-1a\"
            }
            }"
    policy_box=$(curl -k -s \
            -X POST \
            -H "Content-Type:application/json" \
            -H "Authorization:Bearer $json_web_token" \
            -H "elasticbox-release:4.0" \
            -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" \
            -H "Accept: application/json" \
            -H "Content-Type: application/json;charset=UTF-8" \
            -d "$payload" https://$environment/services/boxes)
    policy_box_id=$(echo $policy_box | python -c 'import json,sys; print json.load(sys.stdin)["id"]')
    if [ -z != $policy_box_id ]; then
            echo "Created Deployment Policy Box $policy_box_id"
    else
            echo "Error launching the Deployment Policy Box: $policy_box"
            exit 1
    fi;
    

    Implementar una instancia de MongoDB

    Para implementar una instancia de MongoDB utilizando la casilla pública existente de MongoDB, enviamos una solicitud POST al objeto Instances (instancias) con la ID de casilla de la variable mongo_box_id de la casilla de MongoDB y la ID de la casilla para política obtenida al crear dicha casilla en la variable policy_box_id.

    Si hay una falla al implementar la instancia, indicamos el error. De lo contrario, indicamos la ID de la instancia implementada y la guardamos en la variable instance_id.

    Agregue las siguientes líneas a su secuencia:

    #Deploy the instance
    payload="{
        \"schema\": \"http://elasticbox.net/schemas/deploy-instance-request\",
        \"owner\": \"$owner\",
        \"name\": \"ScriptBoxSample\",
        \"box\": {
            \"id\": \"$mongo_box_id\",
            \"variables\": [
                {
                  \"name\": \"username\",
                  \"type\": \"Text\",
                  \"value\": \"$username\",
                  \"required\": true
                },
                {
                  \"name\": \"password\",
                  \"type\": \"Password\",
                  \"value\": \"$password\",
                  \"required\": true
                }
            ]
        },
        \"instance_tags\": [
    
        ],
        \"automatic_updates\": \"off\",
        \"policy_box\": {
            \"id\": \"$policy_box_id\",
            \"variables\": [
    
            ]
         }
    }"
    instance=$(curl -k -s \
        -X POST \
        -H "Content-Type:application/json" \
        -H "Authorization:Bearer $json_web_token" \
        -H "elasticbox-release:4.0" \
        -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" \
        -H "Accept: application/json" \
        -H "Content-Type: application/json;charset=UTF-8" \
        -d "$payload" https://$environment/services/instances)
    instance_id=$(echo $instance | python -c 'import json,sys; print json.load(sys.stdin)["id"]')
    if [ -z != $instance_id ]; then
        echo "Deployed Instance $instance_id"
    else
        echo "Error deploying the Instance: $instance_id"
        exit 1
    fi;
    

    Almacenamos la respuesta y comprobamos si la instancia se inició. Si no se inició, indicamos un error, o indicamos que la instancia está disponible y proporcionamos su ID.

    Mientras la instancia se está iniciando, comprobamos su estado cada 30 segundos con una solicitud GET al objeto Instances (instancias), transfiriendo la ID de la instancia. A continuación, evaluamos si esperar o continuar: si aún se está procesando, indicamos eso y esperamos; si no, indicamos el estado actual de la instancia y pasamos a la siguiente tarea.

    COUNTER=0
    while [ $COUNTER -lt $cycles_to_wait ]; do
      instance=$(curl -k -s \
        -X GET\
        -H "Authorization:Bearer $json_web_token" \
        -H "elasticbox-release:4.0" \
        -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" \
        -H "Accept: application/json" \
        -H "Content-Type: application/json" \
        https://$environment/services/instances/${instance_id})
      instance_state=$(echo $instance | python -c 'import json,sys; print json.load(sys.stdin)["state"]')
      instance_operation=$(echo $instance | python -c 'import json,sys; print json.load(sys.stdin)["operation"]')
      if [[ "$instance_state" == "processing" ]]; then
        echo "The state of the Instance is $instance_state $instance_operation Waiting for it to be done or unavailable"
        let COUNTER=COUNTER+1
        sleep 30
      else
        echo "The state of the Instance is $instance_state $instance_operation. Process completed"
        break
      fi
    done
    

    Finalizar la instancia

    Para eliminar la instancia de la máquina virtual, enviamos una solicitud DELETE al objeto Instances (instancias) con la ID de la instancia. A continuación, comprobamos su estado de respuesta. Si es 200, indicamos que la instancia específica ha finalizado. De lo contrario, indicamos el estado de error de la respuesta.

    status=$(curl -s -k \
      -X DELETE \
      -H "Accept: application/json" \
      -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer $json_web_token" \
      -H "elasticbox-release:4.0" \
      -w '%{http_code}' \
      -o /dev/null \
      https://$environment/services/instances/${instance_id}?operation=terminate)
    if [[ ! $status -eq 202 ]]; then
      echo "Error terminating the instance: Error $status"
      exit 1
    else
      echo "Terminated Instance $instance_id"
    fi
    

    Mientras esperamos a que finalice la instancia, hacemos un GET en el objeto Instances (instancias) con la ID de la instancia para saber la operación que se está ejecutando en la instancia y su estado actual. Si se está procesando, indicamos eso y esperamos a que se complete, si no, indicamos la operación que se ejecutó y el estado de la instancia.

    #Wait for the instance to be terminated
    COUNTER=0
    while [[ $COUNTER -lt 30 ]]; do
      instance=$(curl -k -s \
        -X GET \
        -H "Accept: application/json" \
        -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" \
        -H "Content-Type:application/json" \
        -H "Authorization:Bearer $json_web_token" \
        -H "elasticbox-release:4.0" \
        https://$environment/services/instances/${instance_id})
      instance_state=$(echo $instance | python -c 'import json,sys; print json.load(sys.stdin)["state"]')
      instance_operation=$(echo $instance | python -c 'import json,sys; print json.load(sys.stdin)["operation"]')
      if [[ "$instance_state" == "processing" ]]; then
        echo "The state of the instance is $instance_state $instance_operation Waiting for it to be done or unavailable"
        let COUNTER=COUNTER+1
        sleep 30
      else
        echo "The state of the Instance is $instance_state $instance_operation"
        break
      fi
    done
    

    Por último, eliminamos la instancia y sus registros del Gestor de aplicaciones en la nube enviando una solicitud DELETE con la ID de la instancia al objeto Instances (instancias). Una vez finalizado, decimos que la instancia se eliminó. De forma similar, eliminamos la casilla para política de implementación con una solicitud DELETE al objeto Profiles (perfiles) y confirmamos que se haya realizado.

    #Remove the deployment policy box
    status=$(curl -s -k \
      -X DELETE \
      -H "Accept: application/json" \
      -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" \
      -H "Content-Type:application/json" \
      -H "Authorization:Bearer $json_web_token" \
      -H "elasticbox-release:4.0" \
      -w '%{http_code}' \
      -o /dev/null \
      https://$environment/services/boxes/${policy_box_id})
    if [[ ! $status -eq 204 ]]; then
      echo "Error terminating the Deployment Policy Box: Error $status"
      exit 1
    else
      echo "Terminated Deployment Policy Box $policy_box_id"
    fi
    

    Comunicarse con soporte de Cloud Application Manager

    Lamentamos que esté teniendo problemas en el Gestor de aplicaciones en la nube. Revise los consejos para solucionar problemas o comuníquese con soporte de Cloud Application Manager para proporcionar detalles y capturas de pantalla de ser posible.

    Para problemas relacionados con las llamadas API, envíe el cuerpo de la solicitud junto con los detalles del problema.

    En el caso de error de casilla, comparta la casilla en el espacio de trabajo en el que su organización y Cloud Application Manager pueden ingresar y adjunte los registros.

    • Linux: SSH y busque el registro en /var/log/elasticbox/elasticbox-agent.log
    • Windows: RDP dentro de la instancia para buscar el registro en \ProgramData\ElasticBox\Logs\elasticbox-agent.log

    Flujo de instancias

    En este artículo

    Resumen

    Esta guía muestra cómo utilizar la API del Gestor de aplicaciones en la nube desde el registro de un proveedor hasta la implementación de una instancia.

    Notas:

    1. Los siguientes ejemplos utilizan un comando de cURL para enviar solicitudes HTTP a los objetos API en JSON. JSON es el formato necesario para todas las solicitudes y respuestas de API.

    2. El comando de cURL se utiliza con el parámetro -k para más comodidad, lo que le permite continuar y operar incluso con conexiones de servidor consideradas inseguras. No lo utilice en producción.

    3. Al ejecutar un comando, se tarda un tiempo en que los recursos estén listos, y llamar al siguiente paso antes de que finalice el anterior puede provocar un error (por ejemplo, justo después de crear el proveedor, se iniciará la sincronización, y no se podrá crear la casilla de implementación hasta que no se complete la primera sincronización).

    A continuación veamos la secuencia en secciones, para entender cómo pueden realizarse llamadas API con cualquier código que desee.

    Autenticar con el Gestor de aplicaciones en la nube

    En primer lugar, debe tener el rol de administrador en un espacio de trabajo para poder ejecutar estos pasos. Debe obtener acceso de administrador al Gestor de aplicaciones en la nube.
    Antes de llamar a la API, debe iniciar sesión en el sitio web del Gestor de aplicaciones en la nube y obtener un token de autenticación. Este token se utilizará como encabezado HTTP de autenticación para realizar cada llamada a la API del Gestor de aplicaciones en la nube.

    Obtener variables de implementación

    A continuación, defina las variables que contendrán los parámetros de la secuencia. De esta forma, cada vez que se ejecuta la secuencia, pueden transferir diferentes argumentos de implementación. Estas variables declaradas se mencionan más adelante en la secuencia como valores de los parámetros de solicitud.

    Variable Descripción
    provider_key Se necesitan la clave y el secreto de la cuenta del proveedor para registrar un proveedor.
    provider_secret Vea a continuación cómo registrar un proveedor y obtener sus parámetros.
    json_web_token Este es el token de autenticación obtenido antes.
    Es una secuencia con codificación BASE64 larga que comienza con algo como:
    eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJvcGVyYb25z...
    medio ambiente Establece del nombre del host de la organización del URL o la IP de su dispositivo, a donde se envían las llamadas API.
    Ejemplos: cam.ctl.io, your-organization.cam.ctl.io, 192.168.1.10.
    owner Especifica la ID de usuario propietario de la cuenta del proveedor en el Gestor de aplicaciones en la nube.

    Comience su secuencia con las siguientes líneas:

    # Deployment common variables
    provider_key=$1
    provider_secret=$2
    json_web_token=$3
    environment=$4
    owner=$5
    

    Hay otras variables obtenidas durante la ejecución de la secuencia, necesarias para los siguientes pasos.

    Variable Descripción
    provider_id Se obtiene al registrar un proveedor.
    policy_box_id Se obtiene al crear una casilla para política de implementación.
    box_id Se obtiene al crear una casilla personalizada.
    instance_id Se obtiene al implementar una instancia de casilla.

    Registrar un proveedor en el Gestor de aplicaciones en la nube

    Un proveedor es una cuenta de nube privada o pública que puede registrarse en el Gestor de aplicaciones en la nube.

    Para registrar un proveedor, envíe una solicitud POST al punto de enlace Providers (proveedores) con los parámetros necesarios.

    En este ejemplo se muestran los pasos para crear un proveedor AWS en el Gestor de aplicaciones en la nube. Se necesitará el par de clave y secreto.
    Crearlo en un servicio de organización requiere un ARN de rol como instancia de credencial de un par de claves.
    Otros tipos de proveedores requieren diferentes conjuntos de credenciales, que puede consultar en el doc de API Punto de enlace Providers (Proveedores).

    Si hay una falla al registrar el proveedor, indica el error. De lo contrario, indica la ID del proveedor y la guarda en la variable id_provider.

    Agregue las siguientes líneas a la secuencia:

    # Register the provider AWS in Cloud Application Manager script
    payload="{
      \"icon\": \"images/platform/aws.png\",
      \"type\": \"Amazon Web Services\",
      \"description\": \"Manage EC2, ECS and Cloudformation instances\",
      \"schema\": \"http://elasticbox.net/schemas/aws/provider\",
      \"name\": \"AWS Provider example via API\",
      \"credentials\": {
        \"key\": \"$provider_key\",
        \"secret\": \"$provider_secret\"
      },
      \"owner\": \"$owner\"
    }"
    provider=$(curl -k -s \
        -X POST \
        -H "Authorization:Bearer $json_web_token" \
        -H "elasticbox-release:4.0" \
        -H "Accept: application/json, text/plain, */*" \
        -H "Accept-encoding: gzip, deflate" \
        -H "Content-Type: application/json" \
        -d "$payload" https://$environment/services/providers)
    provider_id=$(echo $provider | python -c 'import json,sys; print json.load(sys.stdin)["id"]')
    if [ -z != $provider_id ]; then
        echo "Created provider $provider_id"
    else
        echo "Error creating the provider: $provider"
    fi;
    

    Crear una casilla para políticas de implementación

    Una casilla para política de implementación contiene las configuraciones para implementar aplicaciones en un entorno virtual específico. Para AWS, contiene detalles sobre la región, la nube privada virtual (VPC, por sus siglas en inglés), grupos de seguridad, etc.

    Para crear una casilla para política de implementación, envíe una solicitud POST al punto de enlace Boxes (casillas) con la ID del proveedor obtenida en la variable id_provider al registrar el proveedor.

    Si hay una falla al crear la casilla para política de implementación, indica el error. De lo contrario, indica la ID de la casilla para política de implementación creada y la guarda en la variable policy_box_id.

    Agregue las siguientes líneas a la secuencia:

    # Once the provider has been created, the proper policy box can be set
    payload="{
      \"owner\": \"$owner\",
      \"schema\": \"http://elasticbox.net/schemas/boxes/policy\",
      \"claims\": [
        \"linux\"
      ],
      \"lifespan\": {
        \"operation\": \"none\"
      },
      \"automatic_updates\": \"off\",
      \"provider_id\": \"$provider_id\",
      \"name\": \"Deployment Policy Box example via API\",
      \"description\": \"Just one example of deployment policy box creation via API\",
      \"profile\": {
        \"schema\": \"http://elasticbox.net/schemas/aws/ec2/profile\",
        \"flavor\": \"t1.micro\",
        \"location\": \"us-east-1\",
        \"instances\": 1,
        \"image\": \"Linux Compute\",
        \"keypair\": \"None\",
        \"cloud\": \"EC2\",
        \"security_groups\": [
    
        ],
        \"subnet\": \"us-east-1a\"
      }
    }"
    policy_box=$(curl -k -s \
        -X POST \
        -H "Content-Type:application/json" \
        -H "Authorization:Bearer $json_web_token" \
        -H "elasticbox-release:4.0" \
        -H "Accept: application/json, text/plain, */*" \
        -H "Accept-encoding: gzip, deflate" \
        -H "Content-Type: application/json;charset=UTF-8" \
        -d "$payload" https://$environment/services/boxes)
    policy_box_id=$(echo $policy_box | python -c 'import json,sys; print json.load(sys.stdin)["id"]')
    if [ -z != $policy_box_id ]; then
        echo "Created policy_box $policy_box_id"
    else
        echo "Error launching the policy_box: $policy_box"
    fi;
    

    Crear una casilla personalizada

    Una casilla de secuencia define el comportamiento de su aplicación durante la implementación, la reconfiguración y la finalización.

    Para crear una casilla, envíe una solicitud POST al punto de enlace Boxes (casillas).

    También utilice dos blobs ya creados. Puede echar un vistazo a la documentación de API punto de enlace Blobs si necesita saber cómo crearlos.

    Si hay una falla al crear esta casilla, indica el error. De lo contrario, indica la ID de la casilla y la guarda en la variable box_id.

    Agregue las siguientes líneas a la secuencia:

    # Create a box to deploy with that policy box. In this case use a previously uploaded scripts.
    payload="{
      \"automatic_updates\": \"off\",
      \"requirements\": [
    
      ],
      \"description\": \"create box example via API\",
      \"name\": \"ScriptBoxSample\",
      \"deleted\": null,
      \"variables\": [
        {
          \"required\": true,
          \"type\": \"Text\",
          \"name\": \"variable_name\",
          \"value\": \"variable_value\",
          \"visibility\": \"public\"
        }
      ],
      \"visibility\": \"workspace\",
      \"members\": [
    
      ],
      \"owner\": \"$owner\",
      \"organization\": \"elasticbox\",
      \"events\": {
        \"configure\": {
          \"url\": \"/services/blobs/download/5631fa7614841250525226cc/configure\",
          \"length\": 5,
          \"destination_path\": \"scripts\",
          \"content_type\": \"text/x-shellscript\"
        },
        \"install\": {
          \"url\": \"/services/blobs/download/5631fa6614841250525226ca/install\",
          \"length\": 5,
          \"destination_path\": \"scripts\",
          \"content_type\": \"text/x-shellscript\"
        }
      },
      \"schema\": \"http://elasticbox.net/schemas/boxes/script\"
    }"
    box=$(curl -k -s \
        -X POST \
        -H "Content-Type:application/json" \
        -H "Authorization:Bearer $json_web_token" \
        -H "elasticbox-release:4.0" \
        -H "Accept: application/json, text/plain, */*" \
        -H "Accept-encoding: gzip, deflate" \
        -H "Content-Type: application/json;charset=UTF-8" \
        -d "$payload" https://$environment/services/boxes) \
    box_id=$(echo $box | python -c 'import json,sys; print json.load(sys.stdin)["id"]')
    if [ -z != $box_id ]; then
        echo "Created box $box_id"
    else
        echo "Error launching the box: $box"
    fi;
    

    Implementar la instancia

    Para implementar una instancia de la casilla anterior, envíe una solicitud POST al punto de enlace Instances (instancias) con la ID obtenida en la variable box_id al crear la casilla y la ID obtenida en la variable policy_box_id al crear la casilla para política.

    Si hay una falla al implementar la instancia, indica el error. De lo contrario, indica la ID de la instancia implementada y la guarda en la variable instance_id.

    Agregue las siguientes líneas a la secuencia:

    # Finally, deploy the instance
    payload="{
        \"schema\": \"http://elasticbox.net/schemas/deploy-instance-request\",
        \"owner\": \"$owner\",
        \"name\": \"ScriptBoxSample\",
        \"box\": {
            \"id\": \"$box_id\",
            \"variables\": [
            ]
        },
        \"instance_tags\": [
    
        ],
        \"automatic_updates\": \"off\",
        \"policy_box\": {
            \"id\": \"$policy_box_id\",
            \"variables\": [
    
            ]
         }
    }"
    instance=$(curl -k -s \
        -X POST \
        -H "Content-Type:application/json" \
        -H "Authorization:Bearer $json_web_token" \
        -H "elasticbox-release:4.0" 
        -H "Accept: application/json, text/plain, */*" \
        -H "Accept-encoding: gzip, deflate" \
        -H "Content-Type: application/json;charset=UTF-8" \
        -d "$payload" https://$environment/services/instances)
    instance_id=$(echo $instance | python -c 'import json,sys; print json.load(sys.stdin)["id"]')
    if [ -z != $instance_id ]; then
        echo "Deployed instance $instance_id"
    else
        echo "Error deploying the instance: $instance_id"
    fi;
    

    Finalizar y eliminar la instancia

    La eliminación de la instancia de la máquina virtual debe realizarse en dos pasos: primero, finalice la instancia, y segundo, elimínela.

    La finalización ejecuta las secuencias de eventos de detención y finalización y, a continuación, elimina los recursos de la nube, pero no elimina la instancia de la base de datos del Gestor de aplicaciones en la nube. Envíe una solicitud DELETE al punto de enlace Instances (instancias) con la ID de la instancia obtenida en la variable instance_id al implementar la instancia y con el parámetro de URL operation=terminate.

    A continuación, compruebe su estado de respuesta. Si es 200, la instancia específica ha finalizado. De lo contrario, compruebe el estado de error de la respuesta.

    Puede forzar la finalización con el parámetro de URL operation=force_terminate. Vea los detalles del comando DELETE en la API para instancias.

    Agregue las siguientes líneas a la secuencia:

    curl -k -s \
    -X DELETE \
    -H "Authorization:Bearer $json_web_token" \
    -H "elasticbox-release:4.0" \
    -H "Accept: application/json, text/plain, */*" \
    -H "Accept-encoding: gzip, deflate" \
     https://$environment/services/instances/$instance_id??operation=terminate
    
    echo "Undeployed box instance: $instance_id"
    

    Después, vuelva a enviar un comando DELETE con un parámetro de URL operation=delete para eliminar definitivamente la instancia del Gestor de aplicaciones en la nube.

    Copie de nuevo las líneas de la secuencia anterior y reemplace las dos últimas líneas con estas nuevas:

       https://$environment/services/instances/$instance_id??operation=delete
    
     echo "Removed box instance: $instance_id"
    

    Comunicarse con soporte de Cloud Application Manager

    Lamentamos que esté teniendo problemas en el Gestor de aplicaciones en la nube. Revise los consejos para solucionar problemas o comuníquese con soporte de Cloud Application Manager para proporcionar detalles y capturas de pantalla de ser posible.

    Para problemas relacionados con las llamadas API, envíe el cuerpo de la solicitud junto con los detalles del problema.

    En el caso de error de casilla, comparta la casilla en el espacio de trabajo en el que su organización y Cloud Application Manager pueden ingresar y adjunte los registros.

    • Linux: SSH y busque el registro en /var/log/elasticbox/elasticbox-agent.log
    • Windows: RDP dentro de la instancia para buscar el registro en \ProgramData\ElasticBox\Logs\elasticbox-agent.log
    Powered by Translations.com GlobalLink OneLink SoftwarePowered By OneLink