V1 API

A link representation.

Data samples:

Json
{
    "href": "http://example.com:9777/v1",
    "target_name": "v1"
}
XML
b'<value>\n  <href>http://example.com:9777/v1</href>\n  <target_name>v1</target_name>\n</value>'
href
Type

str

The link URI.

target_name
Type

str

Textual name of the target link.

Platform

type Platform

Representation of a Platform.

The Platform resource is the root level resource that refers to all the other resources owned by this tenant.

Data samples:

Json
{
    "assemblies_uri": "http://example.com:9777/v1/assemblies",
    "components_uri": "http://example.com:9777/v1/components",
    "description": "solum native implementation",
    "extensions_uri": "http://example.com:9777/v1/extensions",
    "implementation_version": "2014.1.1",
    "infrastructure_uri": "http://example.com:9777/v1/infrastructure",
    "language_packs_uri": "http://example.com:9777/v1/language_packs",
    "name": "solum",
    "operations_uri": "http://example.com:9777/v1/operations",
    "pipelines_uri": "http://example.com:9777/v1/pipelines",
    "plans_uri": "http://example.com:9777/v1/plans",
    "project_id": "1dae5a09ef2b4d8cbf3594b0eb4f6b94",
    "sensors_uri": "http://example.com:9777/v1/sensors",
    "services_uri": "http://example.com:9777/v1/services",
    "tags": [
        "solid"
    ],
    "triggers_uri": "http://example.com:9777/v1/triggers",
    "type": "platform",
    "uri": "http://example.com/v1",
    "user_id": "55f41cf46df74320b9486a35f5d28a11"
}
XML
b'<value>\n  <implementation_version>2014.1.1</implementation_version>\n  <plans_uri>http://example.com:9777/v1/plans</plans_uri>\n  <assemblies_uri>http://example.com:9777/v1/assemblies</assemblies_uri>\n  <services_uri>http://example.com:9777/v1/services</services_uri>\n  <components_uri>http://example.com:9777/v1/components</components_uri>\n  <extensions_uri>http://example.com:9777/v1/extensions</extensions_uri>\n  <operations_uri>http://example.com:9777/v1/operations</operations_uri>\n  <sensors_uri>http://example.com:9777/v1/sensors</sensors_uri>\n  <language_packs_uri>http://example.com:9777/v1/language_packs</language_packs_uri>\n  <pipelines_uri>http://example.com:9777/v1/pipelines</pipelines_uri>\n  <triggers_uri>http://example.com:9777/v1/triggers</triggers_uri>\n  <infrastructure_uri>http://example.com:9777/v1/infrastructure</infrastructure_uri>\n  <name>solum</name>\n  <type>platform</type>\n  <tags>\n    <item>solid</item>\n  </tags>\n  <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id>\n  <user_id>55f41cf46df74320b9486a35f5d28a11</user_id>\n  <description>solum native implementation</description>\n  <uri>http://example.com/v1</uri>\n</value>'
assemblies_uri
Type

str

URI to assemblies.

components_uri
Type

str

URI to components.

extensions_uri
Type

str

URI to extensions.

implementation_version
Type

str

Version of the platform.

infrastructure_uri
Type

str

URI to infrastructure.

language_packs_uri
Type

str

URI to language packs.

operations_uri
Type

str

URI to operations.

pipelines_uri
Type

str

URI to pipelines.

plans_uri
Type

str

URI to plans.

sensors_uri
Type

str

URI to sensors.

services_uri
Type

str

URI to services.

triggers_uri
Type

str

URI to triggers.

Plans

GET /v1/plans

Return all plans, based on the query provided.

POST /v1/plans

Create a new plan.

GET /v1/plans/(plan_id)

Return this plan.

PUT /v1/plans/(plan_id)

Modify this plan.

DELETE /v1/plans/(plan_id)

Delete this plan.

type Plan

Representation of an Plan file.

The Plan resource is a representation of a Plan file. Plans are used to create Assembly resources. A Plan resource may be used to create an arbitrary number of Assembly instances. They use artifacts and services to indicate what will be used to generate the plan, and what services Solum can use to satisfy them. Note: Plan files are YAML and Plan resources are the REST representation of the Plan file after services have been matched to ones offered by Solum.

Data samples:

Json
{
    "artifacts": [
        {
            "artifact_type": "git_pull",
            "content": {
                "href": "git://example.com/project.git",
                "private": false
            },
            "language_pack": "00b5facd-8b29-4dbf-a970-0c9bc9d433e1",
            "name": "My-python-app",
            "requirements": [
                {
                    "fulfillment": "id:build",
                    "requirement_type": "git_pull"
                }
            ]
        }
    ],
    "description": "A plan with no services or artifacts shown",
    "name": "Example-plan",
    "project_id": "1dae5a09ef2b4d8cbf3594b0eb4f6b94",
    "services": [
        {
            "characteristics": [
                "python_build_service"
            ],
            "id": "build",
            "name": "Build-Service"
        }
    ],
    "tags": [
        "small"
    ],
    "trigger_uri": "http://example.com/v1/triggers/1abc234",
    "type": "plan",
    "uri": "http://example.com/v1/plans/x1",
    "user_id": "55f41cf46df74320b9486a35f5d28a11"
}
XML
b'<value>\n  <artifacts>\n    <item>\n      <name>My-python-app</name>\n      <artifact_type>git_pull</artifact_type>\n      <content>\n        <item>\n          <key>href</key>\n          <value>git://example.com/project.git</value>\n        </item>\n        <item>\n          <key>private</key>\n          <value>False</value>\n        </item>\n      </content>\n      <language_pack>00b5facd-8b29-4dbf-a970-0c9bc9d433e1</language_pack>\n      <requirements>\n        <item>\n          <requirement_type>git_pull</requirement_type>\n          <fulfillment>id:build</fulfillment>\n        </item>\n      </requirements>\n    </item>\n  </artifacts>\n  <services>\n    <item>\n      <name>Build-Service</name>\n      <id>build</id>\n      <characteristics>\n        <item>python_build_service</item>\n      </characteristics>\n    </item>\n  </services>\n  <trigger_uri>http://example.com/v1/triggers/1abc234</trigger_uri>\n  <name>Example-plan</name>\n  <type>plan</type>\n  <tags>\n    <item>small</item>\n  </tags>\n  <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id>\n  <user_id>55f41cf46df74320b9486a35f5d28a11</user_id>\n  <description>A plan with no services or artifacts shown</description>\n  <uri>http://example.com/v1/plans/x1</uri>\n</value>'
artifacts
Type

list(Artifact)

List of artifacts defining the plan.

parameters
Type

dict(str: None)

User defined parameters

services
Type

list(ServiceReference)

List of services needed by the plan.

trigger_uri
Type

str

The trigger uri used to trigger the build of the plan

Pipelines

GET /v1/pipelines

Return all pipelines.

Return type

list(Pipeline)

POST /v1/pipelines

Create a new pipeline. :type data: Pipeline

Return type

Pipeline

GET /v1/pipelines/(pipeline_id)

Return this pipeline.

Return type

Pipeline

PUT /v1/pipelines/(pipeline_id)

Modify this pipeline. :type data: Pipeline

Return type

Pipeline

DELETE /v1/pipelines/(pipeline_id)

Delete this pipeline.

type Pipeline

Representation of an Pipeline.

A pipeline is the association between a plan, a mistral workbook and a git trigger. Together they form a working development “pipeline”.

Data samples:

Json
{
    "description": "A pipeline for my app",
    "last_execution": "78f41cf46df7430b9486a35f5d28a41",
    "name": "Example-pipeline",
    "plan_uri": "http://example.com/v1/plans/x1",
    "project_id": "1dae5a09ef2b4d8cbf3594b0eb4f6b94",
    "tags": [
        "small"
    ],
    "trigger_uri": "http://example.com/v1/triggers/1abc234",
    "type": "pipeline",
    "uri": "http://example.com/v2/pipelines/p1",
    "user_id": "55f41cf46df74320b9486a35f5d28a11",
    "workbook_name": "build-deploy"
}
XML
b'<value>\n  <plan_uri>http://example.com/v1/plans/x1</plan_uri>\n  <workbook_name>build-deploy</workbook_name>\n  <trigger_uri>http://example.com/v1/triggers/1abc234</trigger_uri>\n  <last_execution>78f41cf46df7430b9486a35f5d28a41</last_execution>\n  <type>pipeline</type>\n  <name>Example-pipeline</name>\n  <description>A pipeline for my app</description>\n  <tags>\n    <item>small</item>\n  </tags>\n  <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id>\n  <user_id>55f41cf46df74320b9486a35f5d28a11</user_id>\n  <uri>http://example.com/v2/pipelines/p1</uri>\n</value>'
last_execution
Type

str

The UUID of the last run execution.

plan_uri
Type

str

Link to the plan URI.

trigger_uri
Type

str

The trigger uri used to trigger the pipeline.

workbook_name
Type

str

Name of the workbook in Mistral to use.

Executions

GET /v1/pipelines/(pipeline_id)/executions

Return all executions, based on the provided pipeline_id. :type pipeline_id: str

Return type

list(Execution)

type Execution

Data samples:

Json
{
    "href": "http://example.com:9777/v1",
    "target_name": "v1"
}
XML
b'<value>\n  <href>http://example.com:9777/v1</href>\n  <target_name>v1</target_name>\n</value>'

Assemblies

GET /v1/assemblies

Return all assemblies, based on the query provided.

Return type

list(Assembly)

POST /v1/assemblies

Create a new assembly. :type data: Assembly

Return type

Assembly

GET /v1/assemblies/(assembly_id)

Return this assembly.

Return type

Assembly

PUT /v1/assemblies/(assembly_id)

Modify this assembly. :type data: Assembly

Return type

Assembly

DELETE /v1/assemblies/(assembly_id)

Delete this assembly.

type Assembly

Representation of an Assembly.

The Assembly resource represents a group of components that make up a running instance of an application. You may casually refer to this as “the application” but we refer to it as an Assembly because most cloud applications are actually a system of multiple service instances that make up a system. For example, a three-tier web application may have a load balancer component, a group of application servers, and a database server all represented as Component resources that make up an Assembly resource. An Assembly resource has at least one Component resource associated with it.

Data samples:

Json
{
    "components": [],
    "created_at": "2023-03-08T01:01:48.235299",
    "description": "A mysql database",
    "name": "database",
    "operations": [],
    "plan_uri": "http://example.com/v1/plans/45-09",
    "project_id": "1dae5a09ef2b4d8cbf3594b0eb4f6b94",
    "sensors": [],
    "tags": [
        "small"
    ],
    "type": "assembly",
    "updated_at": "2023-03-08T01:01:48.235299",
    "uri": "http://example.com/v1/assemblies/x4",
    "user_id": "55f41cf46df74320b9486a35f5d28a11"
}
XML
b'<value>\n  <plan_uri>http://example.com/v1/plans/45-09</plan_uri>\n  <components />\n  <operations />\n  <sensors />\n  <updated_at>2023-03-08T01:01:48.235299</updated_at>\n  <created_at>2023-03-08T01:01:48.235299</created_at>\n  <name>database</name>\n  <type>assembly</type>\n  <tags>\n    <item>small</item>\n  </tags>\n  <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id>\n  <user_id>55f41cf46df74320b9486a35f5d28a11</user_id>\n  <description>A mysql database</description>\n  <uri>http://example.com/v1/assemblies/x4</uri>\n</value>'
application_uri
Type

str

The uri of the deployed application.

components
Type

list(Component)

Components that belong to the assembly.

created_at
Type

datetime

The time the assembly initially created.

operations
Type

list(Operation)

Operations that belong to the assembly.

plan_uri
Type

str

The URI to the plan to be used to create this assembly.

sensors
Type

list(Sensor)

Sensors that belong to the assembly.

status
Type

str

The status of the assembly.

updated_at
Type

datetime

The last time a change was made to the assembly’s status.

workflow
Type

list(Enum(unittest, build, deploy))

Defines the workflow that an assembly will go through.

Services

GET /v1/services

Return all services, based on the query provided.

Return type

list(Service)

POST /v1/services

Create a new service. :type data: Service

Return type

Service

GET /v1/services/(service_id)

Return this service.

Return type

Service

PUT /v1/services/(service_id)

Modify this service. :type data: Service

Return type

Service

DELETE /v1/services/(service_id)

Delete this service.

type Service

The Service resource represents a networked service.

You may create Component resources that refer to Service resources. A Component represents an instance of a Service. Your application connects to such a Component using a network protocol. For example, the Platform may offer a default Service named “mysql”. You may create multiple Component resources that reference different instances of the “mysql” service. Each Component may be a multi-tenant instance of a MySQL database (perhaps a logical database) service offered by the Platform for a given Assembly.

Data samples:

Json
{
    "description": "A language pack service",
    "name": "language-pack",
    "project_id": "1dae5a09ef2b4d8cbf3594b0eb4f6b94",
    "read_only": false,
    "service_type": "language_pack",
    "tags": [
        "group_xyz"
    ],
    "type": "service",
    "uri": "http://example.com/v1/language_packs/java1.4",
    "user_id": "55f41cf46df74320b9486a35f5d28a11"
}
XML
b'<value>\n  <read_only>false</read_only>\n  <service_type>language_pack</service_type>\n  <name>language-pack</name>\n  <type>service</type>\n  <description>A language pack service</description>\n  <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id>\n  <user_id>55f41cf46df74320b9486a35f5d28a11</user_id>\n  <tags>\n    <item>group_xyz</item>\n  </tags>\n  <uri>http://example.com/v1/language_packs/java1.4</uri>\n</value>'
read_only
Type

bool

The service is read only when this value is true.

service_type
Type

str

Type of service. Example: language_pack or db::mysql

Operations

GET /v1/operations

Return all operations, based on the query provided.

Return type

list(Operation)

POST /v1/operations

Create a new operation. :type data: Operation

Return type

Operation

GET /v1/operations/(operation_id)

Return this operation.

Return type

Operation

PUT /v1/operations/(operation_id)

Modify this operation. :type data: str

Return type

Operation

DELETE /v1/operations/(operation_id)

Delete this operation.

type Operation

An Operation resource represents an operation or action.

This is for defining actions that may change the state of the resource they are related to. For example, the API already provides ways to register, start, and stop your application (POST an Assembly to register+start, and DELETE an Assembly to stop) but Operations provide a way to extend the system to add your own actions such as “pause” and “resume”, or “scale_up” and “scale_down”.

Data samples:

Json
{
    "description": "A resume operation",
    "documentation": "http://example.com/docs/resume_op",
    "name": "resume",
    "project_id": "1dae5a09ef2b4d8cbf3594b0eb4f6b94",
    "tags": [
        "small"
    ],
    "target_resource": "http://example.com/instances/uuid",
    "type": "operation",
    "uri": "http://example.com/v1/operations/resume",
    "user_id": "55f41cf46df74320b9486a35f5d28a11"
}
XML
b'<value>\n  <documentation>http://example.com/docs/resume_op</documentation>\n  <target_resource>http://example.com/instances/uuid</target_resource>\n  <name>resume</name>\n  <type>operation</type>\n  <tags>\n    <item>small</item>\n  </tags>\n  <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id>\n  <user_id>55f41cf46df74320b9486a35f5d28a11</user_id>\n  <description>A resume operation</description>\n  <uri>http://example.com/v1/operations/resume</uri>\n</value>'
documentation
Type

str

Documentation URI for the operation.

target_resource
Type

str

Target resource URI to the operation.

Sensors

GET /v1/sensors

Return all sensors, based on the query provided.

Return type

list(Sensor)

POST /v1/sensors

Create a new sensor. :type data: str

Return type

Sensor

GET /v1/sensors/(sensor_id)

Return this sensor.

Return type

Sensor

PUT /v1/sensors/(sensor_id)

Modify this sensor. :type data: str

Return type

Sensor

DELETE /v1/sensors/(sensor_id)

Delete this sensor.

type Sensor

A Sensor resource represents exactly one supported sensor.

Sensor resources represent dynamic data about resources, such as metrics or state. Sensor resources are useful for exposing data that changes rapidly, or that may need to be fetched from a secondary system.

Data samples:

Json
{
    "description": "A heartbeat sensor",
    "documentation": "http://example.com/docs/heartbeat/",
    "name": "hb",
    "operations": [],
    "project_id": "1dae5a09ef2b4d8cbf3594b0eb4f6b94",
    "sensor_type": "str",
    "target_resource": "http://example.com/instances/uuid",
    "timestamp": "2023-03-08T01:01:48.321661",
    "type": "sensor",
    "uri": "http://example.com/v1/sensors/hb",
    "user_id": "55f41cf46df74320b9486a35f5d28a11",
    "value": "30"
}
XML
b'<value>\n  <documentation>http://example.com/docs/heartbeat/</documentation>\n  <target_resource>http://example.com/instances/uuid</target_resource>\n  <sensor_type>str</sensor_type>\n  <timestamp>2023-03-08T01:01:48.321661</timestamp>\n  <operations />\n  <value>30</value>\n  <name>hb</name>\n  <type>sensor</type>\n  <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id>\n  <user_id>55f41cf46df74320b9486a35f5d28a11</user_id>\n  <description>A heartbeat sensor</description>\n  <uri>http://example.com/v1/sensors/hb</uri>\n</value>'
documentation
Type

str

Documentation URI for the sensor.

operations
Type

list(Operation)

Operations that belong to the sensor.

sensor_type
Type

Enum(str, float, int)

Sensor data type.

target_resource
Type

str

Target resource URI to the sensor.

timestamp
Type

datetime

Timestamp for Sensor.

property value

Value of the sensor.

Components

GET /v1/components

Return all components, based on the query provided.

Return type

list(Component)

POST /v1/components

Create a new component. :type data: Component

Return type

Component

GET /v1/components/(component_id)

Return this component.

Return type

Component

PUT /v1/components/(component_id)

Modify this component. :type data: Component

Return type

Component

DELETE /v1/components/(component_id)

Delete this component.

type Component

The Component resource represents one part of an Assembly.

For example, an instance of a database service may be a Component. A Component resource may also represent a static artifact, such as an archive file that contains data for initializing your application. An Assembly may have different components that represent different processes that run. For example, you may have one Component that represents an API service process, and another that represents a web UI process that consumes that API service. The simplest case is when an Assembly has only one component. For example, your component may be named “PHP” and refers to the PHP Service offered by the platform for running a PHP application.

Data samples:

Json
{
    "abbreviated": true,
    "component_type": "heat_stack",
    "components_ids": [],
    "description": "A php web application component",
    "heat_stack_id": "4c712026-dcd5-4664-90b8-0915494c1332",
    "name": "php-web-app",
    "operations": [],
    "project_id": "1dae5a09ef2b4d8cbf3594b0eb4f6b94",
    "sensors": [],
    "services": [],
    "tags": [
        "group_xyz"
    ],
    "type": "component",
    "uri": "http://example.com/v1/components/php-web-app",
    "user_id": "55f41cf46df74320b9486a35f5d28a11"
}
XML
b'<value>\n  <services />\n  <operations />\n  <sensors />\n  <abbreviated>true</abbreviated>\n  <components_ids />\n  <component_type>heat_stack</component_type>\n  <heat_stack_id>4c712026-dcd5-4664-90b8-0915494c1332</heat_stack_id>\n  <name>php-web-app</name>\n  <type>component</type>\n  <description>A php web application component</description>\n  <tags>\n    <item>group_xyz</item>\n  </tags>\n  <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id>\n  <user_id>55f41cf46df74320b9486a35f5d28a11</user_id>\n  <uri>http://example.com/v1/components/php-web-app</uri>\n</value>'
abbreviated
Type

bool

Boolean value indicating if this components has nested components at more than one level of depth.

assembly_uuid
Type

str

“The uuid of the assembly that this component belongs in.

component_type
Type

str

Type of component e.g. heat_stack.

components_ids
Type

list(str)

IDs of nested component of the component.

heat_stack_id
Type

str

Unique identifier of the Heat Stack.

operations
Type

list(Operation)

Operations that belong to the component.

plan_uri
Type

str

URI of Plan of which the component is a part.

resource_uri
Type

str

Remote resource URI of the component.

sensors
Type

list(Sensor)

Sensors that belong to the component.

services
Type

list(Service)

Services that belong to the component.

Extensions

GET /v1/extensions

Return all extensions, based on the query provided.

Return type

list(Extension)

POST /v1/extensions

Create a new extension. :type data: str

Return type

Extension

GET /v1/extensions/(extension_id)

Return this extension.

Return type

Extension

PUT /v1/extensions/(extension_id)

Modify this extension. :type data: str

Return type

Extension

DELETE /v1/extensions/(extension_id)

Delete this extension.

type Extension

The Extension resource represents Provider modifications.

This may include additional protocol semantics, resource types, application lifecycle states, resource attributes, etc. Anything may be added, as long as it does not contradict the base functionality offered by Solum.

Data samples:

Json
{
    "description": "This logstash extension provides a tool for managing your application events and logs.",
    "documentation": "http://example.com/docs/ext/logstash",
    "name": "logstash",
    "project_id": "1dae5a09ef2b4d8cbf3594b0eb4f6b94",
    "tags": [
        "large"
    ],
    "type": "extension",
    "uri": "http://example.com/v1/extensions/logstash",
    "user_id": "55f41cf46df74320b9486a35f5d28a11",
    "version": "2.13"
}
XML
b'<value>\n  <version>2.13</version>\n  <documentation>http://example.com/docs/ext/logstash</documentation>\n  <name>logstash</name>\n  <type>extension</type>\n  <tags>\n    <item>large</item>\n  </tags>\n  <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id>\n  <user_id>55f41cf46df74320b9486a35f5d28a11</user_id>\n  <description>This logstash extension provides a tool for managing your application events and logs.</description>\n  <uri>http://example.com/v1/extensions/logstash</uri>\n</value>'
documentation
Type

str

Documentation URI to the extension.

version
Type

str

Version of the extension.

LanguagePacks

GET /v1/language_packs

Return all languagepacks, based on the query provided.

Return type

list(LanguagePack)

POST /v1/language_packs

Create a new languagepack. :type data: LanguagePack

Return type

LanguagePack

GET /v1/language_packs/(lp_id)

Return a languagepack.

Return type

LanguagePack

DELETE /v1/language_packs/(lp_id)

Delete a languagepack.

type LanguagePack

Representation of a language pack.

When a user creates an application, he specifies the language pack to be used. The language pack is responsible for building the application and producing an artifact for deployment.

For a complete list of language pack attributes please refer: https://etherpad.openstack.org/p/Solum-Language-pack-json-format

Data samples:

Json
{
    "attributes": {
        "admin_email": "someadmin@somewhere.com",
        "optional_attr1": "value"
    },
    "base_image_id": "4dae5a09ef2b4d8cbf3594b0eb4f6b94",
    "build_tool_chain": [
        {
            "type": "ant",
            "version": "1.7"
        },
        {
            "type": "maven",
            "version": "1.2"
        }
    ],
    "compiler_versions": [
        "1.4",
        "1.6",
        "1.7"
    ],
    "created_image_id": "4afasa09ef2b4d8cbf3594b0ec4f6b94",
    "description": "A php web application",
    "image_format": "docker",
    "language_implementation": "Sun",
    "language_pack_type": "org.openstack.solum.Java",
    "name": "php-web-app",
    "os_platform": {
        "OS": "Ubuntu",
        "version": "12.04"
    },
    "project_id": "1dae5a09ef2b4d8cbf3594b0eb4f6b94",
    "runtime_versions": [
        "1.4",
        "1.6",
        "1.7"
    ],
    "source_format": "heroku",
    "source_uri": "git://example.com/project/app.git",
    "tags": [
        "group_xyz"
    ],
    "type": "languagepack",
    "uri": "http://example.com/v1/images/b3e0d79",
    "user_id": "55f41cf46df74320b9486a35f5d28a11"
}
XML
b'<value>\n  <name>php-web-app</name>\n  <language_pack_type>org.openstack.solum.Java</language_pack_type>\n  <compiler_versions>\n    <item>1.4</item>\n    <item>1.6</item>\n    <item>1.7</item>\n  </compiler_versions>\n  <runtime_versions>\n    <item>1.4</item>\n    <item>1.6</item>\n    <item>1.7</item>\n  </runtime_versions>\n  <language_implementation>Sun</language_implementation>\n  <build_tool_chain>\n    <item>\n      <type>ant</type>\n      <version>1.7</version>\n    </item>\n    <item>\n      <type>maven</type>\n      <version>1.2</version>\n    </item>\n  </build_tool_chain>\n  <os_platform>\n    <item>\n      <key>OS</key>\n      <value>Ubuntu</value>\n    </item>\n    <item>\n      <key>version</key>\n      <value>12.04</value>\n    </item>\n  </os_platform>\n  <attributes>\n    <item>\n      <key>optional_attr1</key>\n      <value>value</value>\n    </item>\n    <item>\n      <key>admin_email</key>\n      <value>someadmin@somewhere.com</value>\n    </item>\n  </attributes>\n  <source_uri>git://example.com/project/app.git</source_uri>\n  <source_format>heroku</source_format>\n  <base_image_id>4dae5a09ef2b4d8cbf3594b0eb4f6b94</base_image_id>\n  <image_format>docker</image_format>\n  <created_image_id>4afasa09ef2b4d8cbf3594b0ec4f6b94</created_image_id>\n  <tags>\n    <item>group_xyz</item>\n  </tags>\n  <type>languagepack</type>\n  <description>A php web application</description>\n  <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id>\n  <user_id>55f41cf46df74320b9486a35f5d28a11</user_id>\n  <uri>http://example.com/v1/images/b3e0d79</uri>\n</value>'
attributes
Type

dict(str: str)

Additional section attributes will be used to expose custom attributes designed by language pack creator.

base_image_id
Type

str

The id (in glance) of the image to customize.

build_tool_chain
Type

list(BuildTool)

Toolchain available in the language pack. Example: For a java language pack which supports Ant and Maven, build_tool_chain = [“{type:ant,version:1.7}”,”{type:maven,version:1.2}”]

compiler_versions
Type

list(str)

List of all the compiler versions supported by the language pack. Example: For a java language pack supporting Java versions 1.4 to 1.7, version = [‘1.4’, ‘1.6’, ‘1.7’]

created_image_id
Type

str

The id of the created image in glance.

image_format
Type

Enum(auto, qcow2, docker)

The image format.

language_implementation
Type

str

Actual language implementation supported by the language pack. Example: In case of java it might be ‘Sun’ or ‘openJava’ In case of C++ it can be ‘gcc’ or ‘icc’ or ‘microsoft’.

language_pack_type
Type

str

Type of the language pack. Identifies the language supported by the language pack. This attribute value will use the org.openstack.solum namespace.

lp_metadata
Type

str

The languagepack meta data.

os_platform
Type

dict(str: str)

OS and its version used by the language pack. This attribute identifies the base image of the language pack.

runtime_versions
Type

list(str)

List of all runtime versions supported by the language pack. Runtime version can be different than compiler version. Example: An application can be compiled with java 1.7 but it should run in java 1.6 as it is backward compatible.

source_format
Type

Enum(auto, heroku, dib, dockerfile)

The source repository format.

source_uri
Type

str

The URI of the app/element.

status
Type

Enum(QUEUED, BUILDING, ERROR, READY)

The state of the image.

Infrastructure

type Infrastructure

Description of an Infrastructure.

Data samples:

Json
{
    "description": "Solum Infrastructure endpoint",
    "name": "infrastructure",
    "project_id": "1dae5a09ef2b4d8cbf3594b0eb4f6b94",
    "stacks_uri": "http://example.com/v1/infrastructure/stacks",
    "tags": [
        "small"
    ],
    "type": "infrastructure",
    "uri": "http://example.com/v1/infrastructure",
    "user_id": "55f41cf46df74320b9486a35f5d28a11"
}
XML
b'<value>\n  <stacks_uri>http://example.com/v1/infrastructure/stacks</stacks_uri>\n  <name>infrastructure</name>\n  <type>infrastructure</type>\n  <tags>\n    <item>small</item>\n  </tags>\n  <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id>\n  <user_id>55f41cf46df74320b9486a35f5d28a11</user_id>\n  <description>Solum Infrastructure endpoint</description>\n  <uri>http://example.com/v1/infrastructure</uri>\n</value>'
stacks_uri
Type

str

URI to services.

Triggers

POST /v1/triggers

Trigger a new event on Solum.