V1 API¶
-
type
Link
¶ A link representation.
Data samples:
- Json
{ "href": "http://example.com:9777/v1", "target_name": "v1" }
- XML
<value> <href>http://example.com:9777/v1</href> <target_name>v1</target_name> </value>
-
href
¶ Type: unicode The link URI.
-
target_name
¶ Type: unicode 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
<value> <implementation_version>2014.1.1</implementation_version> <plans_uri>http://example.com:9777/v1/plans</plans_uri> <assemblies_uri>http://example.com:9777/v1/assemblies</assemblies_uri> <services_uri>http://example.com:9777/v1/services</services_uri> <components_uri>http://example.com:9777/v1/components</components_uri> <extensions_uri>http://example.com:9777/v1/extensions</extensions_uri> <operations_uri>http://example.com:9777/v1/operations</operations_uri> <sensors_uri>http://example.com:9777/v1/sensors</sensors_uri> <language_packs_uri>http://example.com:9777/v1/language_packs</language_packs_uri> <pipelines_uri>http://example.com:9777/v1/pipelines</pipelines_uri> <triggers_uri>http://example.com:9777/v1/triggers</triggers_uri> <infrastructure_uri>http://example.com:9777/v1/infrastructure</infrastructure_uri> <name>solum</name> <type>platform</type> <tags> <item>solid</item> </tags> <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id> <user_id>55f41cf46df74320b9486a35f5d28a11</user_id> <description>solum native implementation</description> <uri>http://example.com/v1</uri> </value>
-
assemblies_uri
¶ Type: unicode URI to assemblies.
-
components_uri
¶ Type: unicode URI to components.
-
extensions_uri
¶ Type: unicode URI to extensions.
-
implementation_version
¶ Type: unicode Version of the platform.
-
infrastructure_uri
¶ Type: unicode URI to infrastructure.
-
language_packs_uri
¶ Type: unicode URI to language packs.
-
operations_uri
¶ Type: unicode URI to operations.
-
pipelines_uri
¶ Type: unicode URI to pipelines.
-
plans_uri
¶ Type: unicode URI to plans.
-
sensors_uri
¶ Type: unicode URI to sensors.
-
services_uri
¶ Type: unicode URI to services.
-
triggers_uri
¶ Type: unicode URI to triggers.
Plans¶
-
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": "73cd3bad-e32f-4d14-9d59-38d1d3d5be4a", "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
<value> <artifacts> <item> <name>My-python-app</name> <artifact_type>git_pull</artifact_type> <content> <item> <key>href</key> <value>git://example.com/project.git</value> </item> <item> <key>private</key> <value>False</value> </item> </content> <language_pack>73cd3bad-e32f-4d14-9d59-38d1d3d5be4a</language_pack> <requirements> <item> <requirement_type>git_pull</requirement_type> <fulfillment>id:build</fulfillment> </item> </requirements> </item> </artifacts> <services> <item> <name>Build-Service</name> <id>build</id> <characteristics> <item>python_build_service</item> </characteristics> </item> </services> <trigger_uri>http://example.com/v1/triggers/1abc234</trigger_uri> <name>Example-plan</name> <type>plan</type> <tags> <item>small</item> </tags> <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id> <user_id>55f41cf46df74320b9486a35f5d28a11</user_id> <description>A plan with no services or artifacts shown</description> <uri>http://example.com/v1/plans/x1</uri> </value>
-
artifacts
¶ Type: list(Artifact) List of artifacts defining the plan.
-
parameters
¶ Type: dict(unicode: None) User defined parameters
-
services
¶ Type: list(ServiceReference) List of services needed by the plan.
-
trigger_uri
¶ Type: unicode The trigger uri used to trigger the build of the plan
Pipelines¶
-
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
<value> <plan_uri>http://example.com/v1/plans/x1</plan_uri> <workbook_name>build-deploy</workbook_name> <trigger_uri>http://example.com/v1/triggers/1abc234</trigger_uri> <last_execution>78f41cf46df7430b9486a35f5d28a41</last_execution> <type>pipeline</type> <name>Example-pipeline</name> <description>A pipeline for my app</description> <tags> <item>small</item> </tags> <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id> <user_id>55f41cf46df74320b9486a35f5d28a11</user_id> <uri>http://example.com/v2/pipelines/p1</uri> </value>
-
last_execution
¶ Type: unicode The UUID of the last run execution.
-
plan_uri
¶ Type: unicode Link to the plan URI.
-
trigger_uri
¶ Type: unicode The trigger uri used to trigger the pipeline.
-
workbook_name
¶ Type: unicode Name of the workbook in Mistral to use.
Executions¶
-
type
Execution
¶ Data samples:
- Json
{ "href": "http://example.com:9777/v1", "target_name": "v1" }
- XML
<value> <href>http://example.com:9777/v1</href> <target_name>v1</target_name> </value>
Assemblies¶
-
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": "2017-06-28T04:43:16.004753", "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": "2017-06-28T04:43:16.004753", "uri": "http://example.com/v1/assemblies/x4", "user_id": "55f41cf46df74320b9486a35f5d28a11" }
- XML
<value> <plan_uri>http://example.com/v1/plans/45-09</plan_uri> <components /> <operations /> <sensors /> <updated_at>2017-06-28T04:43:16.004753</updated_at> <created_at>2017-06-28T04:43:16.004753</created_at> <name>database</name> <type>assembly</type> <tags> <item>small</item> </tags> <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id> <user_id>55f41cf46df74320b9486a35f5d28a11</user_id> <description>A mysql database</description> <uri>http://example.com/v1/assemblies/x4</uri> </value>
-
application_uri
¶ Type: unicode 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: unicode The URI to the plan to be used to create this assembly.
-
sensors
¶ Type: list(Sensor) Sensors that belong to the assembly.
-
status
¶ Type: unicode 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¶
-
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
<value> <read_only>false</read_only> <service_type>language_pack</service_type> <name>language-pack</name> <type>service</type> <description>A language pack service</description> <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id> <user_id>55f41cf46df74320b9486a35f5d28a11</user_id> <tags> <item>group_xyz</item> </tags> <uri>http://example.com/v1/language_packs/java1.4</uri> </value>
-
read_only
¶ Type: bool The service is read only when this value is true.
-
service_type
¶ Type: unicode Type of service. Example: language_pack or db::mysql
Operations¶
-
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
<value> <documentation>http://example.com/docs/resume_op</documentation> <target_resource>http://example.com/instances/uuid</target_resource> <name>resume</name> <type>operation</type> <tags> <item>small</item> </tags> <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id> <user_id>55f41cf46df74320b9486a35f5d28a11</user_id> <description>A resume operation</description> <uri>http://example.com/v1/operations/resume</uri> </value>
-
documentation
¶ Type: unicode Documentation URI for the operation.
-
target_resource
¶ Type: unicode Target resource URI to the operation.
Sensors¶
-
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": "2017-06-28T04:43:16.173126", "type": "sensor", "uri": "http://example.com/v1/sensors/hb", "user_id": "55f41cf46df74320b9486a35f5d28a11", "value": "30" }
- XML
<value> <documentation>http://example.com/docs/heartbeat/</documentation> <target_resource>http://example.com/instances/uuid</target_resource> <sensor_type>str</sensor_type> <timestamp>2017-06-28T04:43:16.173126</timestamp> <operations /> <value>30</value> <name>hb</name> <type>sensor</type> <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id> <user_id>55f41cf46df74320b9486a35f5d28a11</user_id> <description>A heartbeat sensor</description> <uri>http://example.com/v1/sensors/hb</uri> </value>
-
documentation
¶ Type: unicode 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: unicode Target resource URI to the sensor.
-
timestamp
¶ Type: datetime Timestamp for Sensor.
-
value
¶ Type: str Value of the sensor.
Components¶
-
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
<value> <services /> <operations /> <sensors /> <abbreviated>true</abbreviated> <components_ids /> <component_type>heat_stack</component_type> <heat_stack_id>4c712026-dcd5-4664-90b8-0915494c1332</heat_stack_id> <name>php-web-app</name> <type>component</type> <description>A php web application component</description> <tags> <item>group_xyz</item> </tags> <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id> <user_id>55f41cf46df74320b9486a35f5d28a11</user_id> <uri>http://example.com/v1/components/php-web-app</uri> </value>
-
abbreviated
¶ Type: bool Boolean value indicating if this components has nested components at more than one level of depth.
-
assembly_uuid
¶ Type: unicode “The uuid of the assembly that this component belongs in.
-
component_type
¶ Type: unicode Type of component e.g. heat_stack.
-
components_ids
¶ Type: list(unicode) IDs of nested component of the component.
-
heat_stack_id
¶ Type: unicode Unique identifier of the Heat Stack.
-
operations
¶ Type: list(Operation) Operations that belong to the component.
-
plan_uri
¶ Type: unicode URI of Plan of which the component is a part.
-
resource_uri
¶ Type: unicode 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¶
-
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
<value> <version>2.13</version> <documentation>http://example.com/docs/ext/logstash</documentation> <name>logstash</name> <type>extension</type> <tags> <item>large</item> </tags> <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id> <user_id>55f41cf46df74320b9486a35f5d28a11</user_id> <description>This logstash extension provides a tool for managing your application events and logs.</description> <uri>http://example.com/v1/extensions/logstash</uri> </value>
-
documentation
¶ Type: unicode Documentation URI to the extension.
-
version
¶ Type: unicode Version of the extension.
LanguagePacks¶
-
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
<value> <name>php-web-app</name> <language_pack_type>org.openstack.solum.Java</language_pack_type> <compiler_versions> <item>1.4</item> <item>1.6</item> <item>1.7</item> </compiler_versions> <runtime_versions> <item>1.4</item> <item>1.6</item> <item>1.7</item> </runtime_versions> <language_implementation>Sun</language_implementation> <build_tool_chain> <item> <type>ant</type> <version>1.7</version> </item> <item> <type>maven</type> <version>1.2</version> </item> </build_tool_chain> <os_platform> <item> <key>version</key> <value>12.04</value> </item> <item> <key>OS</key> <value>Ubuntu</value> </item> </os_platform> <attributes> <item> <key>optional_attr1</key> <value>value</value> </item> <item> <key>admin_email</key> <value>someadmin@somewhere.com</value> </item> </attributes> <source_uri>git://example.com/project/app.git</source_uri> <source_format>heroku</source_format> <base_image_id>4dae5a09ef2b4d8cbf3594b0eb4f6b94</base_image_id> <image_format>docker</image_format> <created_image_id>4afasa09ef2b4d8cbf3594b0ec4f6b94</created_image_id> <tags> <item>group_xyz</item> </tags> <type>languagepack</type> <description>A php web application</description> <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id> <user_id>55f41cf46df74320b9486a35f5d28a11</user_id> <uri>http://example.com/v1/images/b3e0d79</uri> </value>
-
attributes
¶ Type: dict(str: unicode) Additional section attributes will be used to expose custom attributes designed by language pack creator.
-
base_image_id
¶ Type: unicode 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(unicode) 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: unicode The id of the created image in glance.
-
image_format
¶ Type: Enum(auto, qcow2, docker) The image format.
-
language_implementation
¶ Type: unicode 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: unicode 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: unicode The languagepack meta data.
-
os_platform
¶ Type: dict(str: unicode) OS and its version used by the language pack. This attribute identifies the base image of the language pack.
-
runtime_versions
¶ Type: list(unicode) 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: unicode The URI of the app/element.
-
status
¶ Type: Enum(READY, QUEUED, BUILDING, ERROR) 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
<value> <stacks_uri>http://example.com/v1/infrastructure/stacks</stacks_uri> <name>infrastructure</name> <type>infrastructure</type> <tags> <item>small</item> </tags> <project_id>1dae5a09ef2b4d8cbf3594b0eb4f6b94</project_id> <user_id>55f41cf46df74320b9486a35f5d28a11</user_id> <description>Solum Infrastructure endpoint</description> <uri>http://example.com/v1/infrastructure</uri> </value>
-
stacks_uri
¶ Type: unicode URI to services.