OpenStack Application Catalog API v1

OpenStack Application Catalog API v1

Categories

In Murano, applications can belong to a category or multiple categories. Administrative users can create and delete categories as well as list available categories and view details for a particular category.

GET
/catalog/categories

List categories

Retrieve list of all available categories in the Application Catalog.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
categories body array All categories available in the application catalog.
id body string The UUID of the category.
name body string The name of the category.
updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

package_count body integer The number of packages associated with the category.

Response Example

{
    "categories": [
        {
            "id": "0420045dce7445fabae7e5e61fff9e2f",
            "updated": "2014-12-26T13:57:04",
            "name": "Web",
            "created": "2014-12-26T13:57:04",
            "package_count": 1
        },
        {
            "id": "3dd486b1e26f40ac8f35416b63f52042",
            "updated": "2014-12-26T13:57:04",
            "name": "Databases",
            "created": "2014-12-26T13:57:04",
            "package_count": 0
        }
    ]
}
GET
/catalog/categories/{category_id}

Show category details

Show details for a category.

Request Parameters

Name In Type Description
category_id path string The UUID of the category.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
404 - Not Found The requested resource could not be found.

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
id body string The UUID of the category.
name body string The name of the category.
updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

packages body array The list of packages associated with a package. Each package returned includes its id, fully_qualified_name, and name.
package_count body integer The number of packages associated with the category.

Response Example

{
    "id": "b308f7fa8a2f4a5eb419970c827f4466",
    "updated": "2015-01-28T17:00:19",
    "packages": [
        {
            "fully_qualified_name": "io.murano.apps.ZabbixServer",
            "id": "4dfb566e69e6445fbd4aea5099fe95e9",
            "name": "Zabbix Server"
        }
    ],
    "name": "Web",
    "created": "2015-01-28T17:00:19",
    "package_count": 1
}
POST
/catalog/categories

Create Category

Add a new category to the Application Catalog.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
409 - Conflict This operation conflicted with another operation on this resource.

Request Parameters

Name In Type Description
name body string The name of the category.

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
id body string The UUID of the category.
name body string The name of the category.
updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

package_count body integer The number of packages associated with the category.

Response Example

{
    "id": "ce373a477f211e187a55404a662f968",
    "name": "category_name",
    "created": "2013-11-30T03:23:42Z",
    "updated": "2013-11-30T03:23:44Z",
    "package_count": 0
}
DELETE
/catalog/categories/{category_id}

Delete Category

Remove an existing category from the Application Catalog.

Request Parameters

Name In Type Description
category_id path string The UUID of the category.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
403 - Forbidden Policy does not allow current user to do this operation.
404 - Not Found The requested resource could not be found.

Deployments

Deployments track environments that have been deployed, either successfully or otherwise. Each deployment contains the following information:

  • A “Class: Environment” object (io.murano.Environment) with a name. Each “Class: Environment” object defines an environment in terms of the deployment process and groups all Applications and their related infrastructures together.
  • An object (or objects) referring to networks that exist.
  • A list of Applications (e.g. io.murano.apps.linux.Telnet). Each Application contains, or otherwise references, anything it requires. The Telnet example has a property called instance whose contract states it must be of type io.murano.resources.Instance. In turn, the Instance has properties it requires (like a name, a flavor, or a keypair name, keyname).
GET
/deployments

List deployments

List deployments for all environments for the current tenant (project).

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.

Response Parameters

Name In Type Description
deployments body array

The list of deployments for either the current environment or all environments for the current tenant (project).

The following APIs control whether deployments by environment or by project are returned:

  • /deployments: Returns all deployments for a project.
  • /environments/{env_id}/deployments: Returns all deployments for an environment in a project.

Response Example

{
    "deployments": [
        {
            "updated": "2014-05-15T07:24:21",
            "environment_id": "744e44812da84e858946f5d817de4f72",
            "description": {
                "services": [
                    {
                        "instance": {
                            "flavor": "m1.medium",
                            "image": "cloud-fedora-v3",
                            "?": {
                                "type": "io.murano.resources.Instance",
                                "id": "ef729199-c71e-4a4c-a314-0340e279add8"
                            },
                            "name": "xkaduhv7qeg4m7"
                        },
                        "name": "teslnet1",
                        "?": {
                            "_26411a1861294160833743e45d0eaad9": {
                                "name": "Telnet"
                            },
                            "type": "io.murano.apps.linux.Telnet",
                            "id": "6e437be2-b5bc-4263-8814-6fd57d6ddbd5"
                        }
                    }
                ],
                "defaultNetworks": {
                    "environment": {
                        "name": "test2-network",
                        "?": {
                            "type": "io.murano.lib.networks.neutron.NewNetwork",
                            "id": "b6a1d515434047d5b4678a803646d556"
                        }
                    },
                    "flat": null
                },
                "name": "test2",
                "?": {
                    "type": "io.murano.Environment",
                    "id": "744e44812da84e858946f5d817de4f72"
                }
            },
            "created": "2014-05-15T07:24:21",
            "started": "2014-05-15T07:24:21",
            "finished": null,
            "state": "running",
            "id": "327c81e0e34a4c93ad9b9052ef42b752"
        }
    ]
}

Environments

GET
/environments

List environments

Get a list of existing Environments

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
401 - Unauthorized User must authenticate before making a request.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
all_tenants (Optional) query boolean Indicates whether environments from all projects are listed. True environments from all projects are listed. Admin user required. False environments only from current project are listed (default like option unspecified).

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
environments body array A list of environment object.
status body string

Current status of the environment. The available statuses are:

  • Ready to configure. When the environment is new and contains no components.
  • Ready to deploy. When the environment contains a component or multiple components and is ready for deployment.
  • Ready. When the environment has been successfully deployed.
  • Deploying. When the deploying is in progress.
  • Deploy FAILURE. When the deployment finished with errors.
  • Deleting. When deleting of an environment is in progress.
  • Delete FAILURE. You can abandon the environment in this case.
updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

networking body string Current network of the environment.
name body string A name for the environment. Name must be at least one non-white space symbol.
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

tenant_id body string The UUID of the tenant. A tenant is also known as a project.
version body int Current version.
id body string The UUID of the environment.

Response Example

{
    "environments": [
        {
            "status": "ready",
            "updated": "2014-05-14T13:02:54",
            "networking": {},
            "name": "test1",
            "created": "2014-05-14T13:02:46",
            "tenant_id": "726ed856965f43cc8e565bc991fa76c3",
            "version": 0,
            "id": "2fa5ab704749444bbeafe7991b412c33"
        },
        {
            "status": "ready",
            "updated": "2014-05-14T13:02:55",
            "networking": {},
            "name": "test2",
            "created": "2014-05-14T13:02:51",
            "tenant_id": "726ed856965f43cc8e565bc991fa76c3",
            "version": 0,
            "id": "744e44812da84e858946f5d817de4f72"
        }
    ]
}
POST
/environments

Create environment

Creates a environment.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
401 - Unauthorized User must authenticate before making a request.
409 - Conflict This operation conflicted with another operation on this resource.

Request Parameters

Name In Type Description
name body string A name for the environment. Name must be at least one non-white space symbol.

Request Example

{"name": "env_name"}

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
id body string The UUID of the environment.
name body string A name for the environment. Name must be at least one non-white space symbol.
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

tenant_id body string The UUID of the tenant. A tenant is also known as a project.
version body int Current version.

Response Example

{
    "id": "ce373a477f211e187a55404a662f968",
    "name": "env_name",
    "created": "2013-11-30T03:23:42Z",
    "updated": "2013-11-30T03:23:44Z",
    "tenant_id": "0849006f7ce94961b3aab4e46d6f229a",
    "version": 0
}
PUT
/environments/

Update environment

Updates an environment.

Response Codes

Success
Code Reason
202 - Accepted Request was accepted for processing, but the processing has not been completed. A ‘location’ header is included in the response which contains a link to check the progress of the request.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
403 - Forbidden Policy does not allow current user to do this operation.
404 - Not Found The requested resource could not be found.
409 - Conflict This operation conflicted with another operation on this resource.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
name path string A name for the environment. Name must be at least one non-white space symbol.

Request Example

{"name": "env_name_changed"}

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
id body string The UUID of the environment.
name body string A name for the environment. Name must be at least one non-white space symbol.
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

tenant_id body string The UUID of the tenant. A tenant is also known as a project.
version body int Current version.

Response Example

{
    "id": "ce373a477f211e187a55404a662f968",
    "name": "env_name_changed",
    "created": "2013-11-30T03:23:42Z",
    "updated": "2013-11-30T03:45:54Z",
    "tenant_id": "0849006f7ce94961b3aab4e46d6f229a",
    "version": 0
}
GET
/environments/{id}

Show environment details

Shows details for a environment.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
401 - Unauthorized User must authenticate before making a request.
404 - Not Found The requested resource could not be found.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
id path string The UUID of the environment.

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
status body string

Current status of the environment. The available statuses are:

  • Ready to configure. When the environment is new and contains no components.
  • Ready to deploy. When the environment contains a component or multiple components and is ready for deployment.
  • Ready. When the environment has been successfully deployed.
  • Deploying. When the deploying is in progress.
  • Deploy FAILURE. When the deployment finished with errors.
  • Deleting. When deleting of an environment is in progress.
  • Delete FAILURE. You can abandon the environment in this case.
updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

networking body string Current network of the environment.
name body string A name for the environment. Name must be at least one non-white space symbol.
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

tenant_id body string The UUID of the tenant. A tenant is also known as a project.
version body int Current version.
services body array A list of service objects.
id body string The UUID of the environment.

Response Example

{
    "status": "ready",
    "updated": "2014-05-14T13:12:26",
    "networking": {},
    "name": "quick-env-2",
    "created": "2014-05-14T13:09:55",
    "tenant_id": "726ed856965f43cc8e565bc991fa76c3",
    "version": 1,
    "services": [
        {
            "instance": {
                "flavor": "m1.medium",
                "image": "cloud-fedora-v3",
                "name": "exgchhv6nbika2",
                "ipAddresses": [
                    "10.0.0.200"
                ],
                "?": {
                    "type": "io.murano.resources.Instance",
                    "id": "14cce9d9-aaa1-4f09-84a9-c4bb859edaff"
                }
            },
            "name": "rewt4w56",
            "?": {
                "status": "ready",
                "_26411a1861294160833743e45d0eaad9": {
                    "name": "Telnet"
                },
                "type": "io.murano.apps.linux.Telnet",
                "id": "446373ef-03b5-4925-b095-6c56568fa518"
            }
        }
    ],
    "id": "20d4a012628e4073b48490a336a8acbf"
}
DELETE
/environments/{id}

Delete environment

Remove specified Environment.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
403 - Forbidden Policy does not allow current user to do this operation.
404 - Not Found The requested resource could not be found.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
id path string The UUID of the environment.
abandon (Optional) path boolean Indicates how to delete environment. True is used when just database must be cleaned. False is used if all resources used by environment must be destroyed.

Response Parameters

This request does not return anything in the response body.

GET
/environments/{env_id}/model/{path}

Get environment model

Get an Environment model.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
401 - Unauthorized User must authenticate before making a request.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
env_id path string The UUID of the environment.
path (Optional) path string Allows to get a specific section of the model, for example defaultNetworks, region or ? or any of the subsections.

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
defaultNetworks body array The default networks of the environment.
region body string Current region of the environment.
name body string A name for the environment. Name must be at least one non-white space symbol.
regions body array The regions detail of the cloud.
services body array A list of service objects.
? body array The ? sections of the environment.

Response Example

{
    "defaultNetworks": {
        "environment": {
            "internalNetworkName": "net_two",
            "?": {
                "type": "io.murano.resources.ExistingNeutronNetwork",
                "id": "594e94fcfe4c48ef8f9b55edb3b9f177"
            }
        },
        "flat": null
    },
    "region": "RegionTwo",
    "name": "new_env",
    "regions": {
        "": {
            "defaultNetworks": {
                "environment": {
                    "autoUplink": true,
                    "name": "new_env-network",
                    "externalRouterId": null,
                    "dnsNameservers": [],
                    "autogenerateSubnet": true,
                    "subnetCidr": null,
                    "openstackId": null,
                    "?": {
                        "dependencies": {
                            "onDestruction": [{
                                "subscriber": "c80e33dd67a44f489b2f04818b72f404",
                                "handler": null
                            }]
                        },
                        "type": "io.murano.resources.NeutronNetwork/0.0.0@io.murano",
                        "id": "e145b50623c04a68956e3e656a0568d3",
                        "name": null
                    },
                    "regionName": "RegionOne"
                },
                "flat": null
            },
            "name": "RegionOne",
            "?": {
                "type": "io.murano.CloudRegion/0.0.0@io.murano",
                "id": "c80e33dd67a44f489b2f04818b72f404",
                "name": null
            }
        },
        "RegionOne": "c80e33dd67a44f489b2f04818b72f404",
        "RegionTwo": {
            "defaultNetworks": {
                "environment": {
                    "autoUplink": true,
                    "name": "new_env-network",
                    "externalRouterId": "e449bdd5-228c-4747-a925-18cda80fbd6b",
                    "dnsNameservers": ["8.8.8.8"],
                    "autogenerateSubnet": true,
                    "subnetCidr": "10.0.198.0/24",
                    "openstackId": "00a695c1-60ff-42ec-acb9-b916165413da",
                    "?": {
                        "dependencies": {
                            "onDestruction": [{
                                "subscriber": "f8cb28d147914850978edb35eca156e1",
                                "handler": null
                            }]
                        },
                        "type": "io.murano.resources.NeutronNetwork/0.0.0@io.murano",
                        "id": "72d2c13c600247c98e09e2e3c1cd9d70",
                        "name": null
                    },
                    "regionName": "RegionTwo"
                },
                "flat": null
            },
            "name": "RegionTwo",
            "?": {
                "type": "io.murano.CloudRegion/0.0.0@io.murano",
                "id": "f8cb28d147914850978edb35eca156e1",
                "name": null
            }
        }
    },
    "services": [],
    "?": {
        "type": "io.murano.Environment/0.0.0@io.murano",
        "_actions": {
            "f7f22c174070455c9cafc59391402bdc_deploy": {
                "enabled": true,
                "name": "deploy",
                "title": "deploy"
            }
        },
        "id": "f7f22c174070455c9cafc59391402bdc",
        "name": null
    }
}
PATCH
/environments//model/

Update environment model

Update an Environment model.

Response Codes

Success
Code Reason
202 - Accepted Request was accepted for processing, but the processing has not been completed. A ‘location’ header is included in the response which contains a link to check the progress of the request.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
403 - Forbidden Policy does not allow current user to do this operation.
404 - Not Found The requested resource could not be found.
409 - Conflict This operation conflicted with another operation on this resource.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
name path string A name for the environment. Name must be at least one non-white space symbol.

Request Example

[{
  "op": "replace",
  "path": "/defaultNetworks/flat",
  "value": true
}]

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
defaultNetworks body array The default networks of the environment.
region body string Current region of the environment.
name body string A name for the environment. Name must be at least one non-white space symbol.
regions body array The regions detail of the cloud.
services body array A list of service objects.
? body array The ? sections of the environment.

Response Example

{
    "defaultNetworks": {
        "environment": {
            "internalNetworkName": "net_two",
            "?": {
                "type": "io.murano.resources.ExistingNeutronNetwork",
                "id": "594e94fcfe4c48ef8f9b55edb3b9f177"
            }
        },
        "flat": null
    },
    "region": "RegionTwo",
    "name": "new_env",
    "regions": {
        "": {
            "defaultNetworks": {
                "environment": {
                    "autoUplink": true,
                    "name": "new_env-network",
                    "externalRouterId": null,
                    "dnsNameservers": [],
                    "autogenerateSubnet": true,
                    "subnetCidr": null,
                    "openstackId": null,
                    "?": {
                        "dependencies": {
                            "onDestruction": [{
                                "subscriber": "c80e33dd67a44f489b2f04818b72f404",
                                "handler": null
                            }]
                        },
                        "type": "io.murano.resources.NeutronNetwork/0.0.0@io.murano",
                        "id": "e145b50623c04a68956e3e656a0568d3",
                        "name": null
                    },
                    "regionName": "RegionOne"
                },
                "flat": null
            },
            "name": "RegionOne",
            "?": {
                "type": "io.murano.CloudRegion/0.0.0@io.murano",
                "id": "c80e33dd67a44f489b2f04818b72f404",
                "name": null
            }
        },
        "RegionOne": "c80e33dd67a44f489b2f04818b72f404",
        "RegionTwo": {
            "defaultNetworks": {
                "environment": {
                    "autoUplink": true,
                    "name": "new_env-network",
                    "externalRouterId": "e449bdd5-228c-4747-a925-18cda80fbd6b",
                    "dnsNameservers": ["8.8.8.8"],
                    "autogenerateSubnet": true,
                    "subnetCidr": "10.0.198.0/24",
                    "openstackId": "00a695c1-60ff-42ec-acb9-b916165413da",
                    "?": {
                        "dependencies": {
                            "onDestruction": [{
                                "subscriber": "f8cb28d147914850978edb35eca156e1",
                                "handler": null
                            }]
                        },
                        "type": "io.murano.resources.NeutronNetwork/0.0.0@io.murano",
                        "id": "72d2c13c600247c98e09e2e3c1cd9d70",
                        "name": null
                    },
                    "regionName": "RegionTwo"
                },
                "flat": null
            },
            "name": "RegionTwo",
            "?": {
                "type": "io.murano.CloudRegion/0.0.0@io.murano",
                "id": "f8cb28d147914850978edb35eca156e1",
                "name": null
            }
        }
    },
    "services": [],
    "?": {
        "type": "io.murano.Environment/0.0.0@io.murano",
        "_actions": {
            "f7f22c174070455c9cafc59391402bdc_deploy": {
                "enabled": true,
                "name": "deploy",
                "title": "deploy"
            }
        },
        "id": "f7f22c174070455c9cafc59391402bdc",
        "name": null
    }
}
GET
/environments/{id}/lastStatus

Get environment last status

Get last status for a environment.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
401 - Unauthorized User must authenticate before making a request.
404 - Not Found The requested resource could not be found.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
id path string The UUID of the environment.

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
uuid body array A list of environment last status object.

Response Example

{
    "lastStatuses": {
        "66563e45-4d0a-451e-8138-7bc773b0607d": {
            "updated": "2017-03-09T07:31:51",
            "task_id": "1267d8dfcf2144f9a31f0f033defa0fd",
            "level": "info",
            "text": "Unable to install ApacheHttpServer on node-1 due to The murano-agent did not respond within 3600 seconds",
            "created": "2017-03-09T07:31:51",
            "entity_id": "66563e45-4d0a-451e-8138-7bc773b0607d",
            "entity": null,
            "details": null,
            "id": "4f93ae1f73294bf1a58cbc59fffe6238"
        }
    }
}

Packages

GET
/v1/catalog/packages

List Packages

Get a list of packages

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
401 - Unauthorized User must authenticate before making a request.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
catalog (Optional) query boolean If false (default) - search packages, that current user can edit (own for non-admin, all for admin). If true - search packages, that current user can deploy (i.e. his own + public).
marker (Optional) query string A package identifier marker may be specified. When present only packages which occur after the identifier ID will be listed
limit (Optional) query string When present the maximum number of results returned will not exceed the specified value. The typical pattern of limit and marker is to make an initial limited request and then to use the ID of the last package from the response as the marker parameter in a subsequent limited request.
order_by (Optional) query string Allows to sort packages by fqn, name, created. Created is default value.
type (Optional) query string Allows to filter package by type, e.g. application, library.
category (Optional) query string Allows to filter by categories.
fqn (Optional) query string Allows to filter by fully qualified name.
owned (Optional) query boolean Search only from packages owned by current project.
id (Optional) query string Allows to filter by package id.
include_disabled (Optional) query boolean Include disabled packages in the result.
search (Optional) query string Gives opportunity to search specified data by all the package parameters and order packages.
class_name (Optional) query string Search only for packages, that use specified class.
name (Optional) query string Allows to filter by package name.

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
packages body array A list of package object.
updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

class_definitions body array The class_definitions of the package.
id body string The UUID of the package.
fully_qualified_name body string The fqn of the package.
is_public body boolean Whether the package is shared for other projects.
name body string The name of the package.
type body string The type of the package.
supplier body object The supplier info of the package.
description body string The description of the package.
author body string The author of the package.
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

enabled body boolean Whether the package is browsed in the Application Catalog.
tags body array The tags of the package.
categories body array The categories associated with the package.
owner_id body string The owner id of the package.

Response Example

{
    "packages": [
        {
            "updated": "2017-03-30T08:35:03",
            "description": "Library of base class to develop scalable Applications with MuranoPL\n",
            "tags": [],
            "class_definitions": [
                "io.murano.applications.tests.TestPoolReplicaProvider",
                "io.murano.applications.SingleServerApplication",
                "io.murano.applications.tests.TestSoftwareComponent",
                "io.murano.applications.SoftwareComponent",
                "io.murano.applications.tests.TestEvents",
                "io.murano.applications.CloneReplicaProvider",
                "io.murano.applications.PoolReplicaProvider",
                "io.murano.applications.Event",
                "io.murano.applications.SingleServerGroup",
                "io.murano.applications.TemplateServerProvider",
                "io.murano.applications.MultiServerApplication",
                "io.murano.applications.ReplicationGroup",
                "io.murano.applications.OpenStackSecurityConfigurable",
                "io.murano.applications.Configurable",
                "io.murano.applications.tests.TestMockedServerFactory",
                "io.murano.applications.tests.TestCompositeReplicaProvider",
                "io.murano.applications.tests.TestRoundrobinReplicaProvider",
                "io.murano.applications.ServerReplicationGroup",
                "io.murano.applications.CompositeReplicaProvider",
                "io.murano.applications.tests.TestReplication",
                "io.murano.applications.CompositeServerGroup",
                "io.murano.applications.RoundrobinReplicaProvider",
                "io.murano.applications.ServerGroup",
                "io.murano.applications.ServerList",
                "io.murano.applications.Installable",
                "io.murano.applications.ReplicaProvider",
                "io.murano.applications.MultiServerApplicationWithScaling"
            ],
            "is_public": true,
            "categories": [],
            "name": "Application Development Library",
            "created": "2017-03-30T08:35:03",
            "author": "Mirantis, Inc.",
            "enabled": true,
            "id": "b0298c205235410fba047f4af8df0eb0",
            "supplier": {},
            "fully_qualified_name": "io.murano.applications",
            "type": "Library",
            "owner_id": "c0f6e4cf1bfc48aba587e709b58c9f28"
        },
        {
            "updated": "2017-03-30T08:35:07",
            "description": "Core MuranoPL library\n",
            "tags": [
                "MuranoPL"
            ],
            "class_definitions": [
                "io.murano.Exception",
                "io.murano.system.MetadefBrowser",
                "io.murano.metadata.forms.Hidden",
                "io.murano.system.NeutronSecurityGroupManager",
                "io.murano.system.AgentListener",
                "io.murano.Environment",
                "io.murano.system.SecurityGroupManager",
                "io.murano.resources.ConfLangInstance",
                "io.murano.resources.HeatSWConfigLinuxInstance",
                "io.murano.test.TestFixture",
                "io.murano.resources.MetadataAware",
                "io.murano.SharedIp",
                "io.murano.File",
                "io.murano.resources.LinuxUDInstance",
                "io.murano.configuration.Linux",
                "io.murano.resources.ExistingNeutronNetwork",
                "io.murano.resources.LinuxMuranoInstance",
                "io.murano.Object",
                "io.murano.system.Logger",
                "io.murano.metadata.engine.Synchronize",
                "io.murano.test.DummyNetwork",
                "io.murano.resources.CinderVolume",
                "io.murano.metadata.Title",
                "io.murano.Project",
                "io.murano.system.Resources",
                "io.murano.metadata.forms.Section",
                "io.murano.resources.Network",
                "io.murano.system.MistralClient",
                "io.murano.resources.CinderVolumeBackup",
                "io.murano.system.NetworkExplorer",
                "io.murano.system.DummySecurityGroupManager",
                "io.murano.resources.WindowsInstance",
                "io.murano.CloudResource",
                "io.murano.CloudRegion",
                "io.murano.system.Agent",
                "io.murano.resources.Instance",
                "io.murano.resources.Volume",
                "io.murano.system.InstanceNotifier",
                "io.murano.metadata.ModelBuilder",
                "io.murano.system.HeatStack",
                "io.murano.resources.LinuxInstance",
                "io.murano.metadata.Description",
                "io.murano.metadata.engine.Serialize",
                "io.murano.resources.ExistingCinderVolume",
                "io.murano.resources.HeatSWConfigInstance",
                "io.murano.system.StatusReporter",
                "io.murano.Application",
                "io.murano.test.TestFixtureWithEnvironment",
                "io.murano.system.AwsSecurityGroupManager",
                "io.murano.StackTrace",
                "io.murano.resources.NovaNetwork",
                "io.murano.metadata.forms.Position",
                "io.murano.metadata.HelpText",
                "io.murano.resources.NeutronNetworkBase",
                "io.murano.User",
                "io.murano.resources.InstanceAffinityGroup",
                "io.murano.resources.NeutronNetwork",
                "io.murano.resources.CinderVolumeSnapshot"
            ],
            "is_public": true,
            "categories": [],
            "name": "Core library",
            "created": "2017-03-30T08:35:07",
            "author": "murano.io",
            "enabled": true,
            "id": "5b6c8d7cd0694a7ebb7525ae62357740",
            "supplier": {},
            "fully_qualified_name": "io.murano",
            "type": "Library",
            "owner_id": "c0f6e4cf1bfc48aba587e709b58c9f28"
        }
    ]
}
POST
/v1/catalog/packages

Upload package

Create a package.

Note

Though specifying categories is optional, it is recommended that you specify at least one. It helps to filter applications in the catalog.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
401 - Unauthorized User must authenticate before making a request.
409 - Conflict This operation conflicted with another operation on this resource.

Request Parameters

Name In Type Description
categories body array The categories associated with the package.
is_public body boolean Whether the package is shared for other projects.
file body object The upload package file.

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

class_definitions body array The class_definitions of the package.
id body string The UUID of the package.
fully_qualified_name body string The fqn of the package.
is_public body boolean Whether the package is shared for other projects.
name body string The name of the package.
type body string The type of the package.
supplier body object The supplier info of the package.
description body string The description of the package.
author body string The author of the package.
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

enabled body boolean Whether the package is browsed in the Application Catalog.
tags body array The tags of the package.
categories body array The categories associated with the package.
owner_id body string The owner id of the package.

Response Example

{
    "class_definitions": [
        "com.example.apache.ApacheHttpServer"
    ],
    "description": "The Apache HTTP Server Project is an effort to develop and maintain an\nopen-source HTTP server for modern operating systems including UNIX and\nWindows NT. The goal of this project is to provide a secure, efficient and\nextensible server that provides HTTP services in sync with the current HTTP\nstandards.\nApache httpd has been the most popular web server on the Internet since\nApril 1996, and celebrated its 17th birthday as a project this February.\n",
    "tags": [
        "HTTP",
        "Server",
        "WebServer",
        "HTML",
        "Apache"
    ],
    "updated": "2017-04-06T07:54:40",
    "is_public": false,
    "id": "10f3e349bca9432abd673319195eed2b",
    "categories": [],
    "name": "Apache HTTP Server",
    "created": "2017-04-06T07:54:40",
    "author": "Mirantis, Inc",
    "enabled": true,
    "supplier": {},
    "fully_qualified_name": "com.example.apache.ApacheHttpServer",
    "type": "Application",
    "owner_id": "c0f6e4cf1bfc48aba587e709b58c9f28"
}
GET
/v1/catalog/packages/{id}

Show package details

Shows details for a package.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
401 - Unauthorized User must authenticate before making a request.
404 - Not Found The requested resource could not be found.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
id path string The UUID of the package.

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

class_definitions body array The class_definitions of the package.
id body string The UUID of the package.
fully_qualified_name body string The fqn of the package.
is_public body boolean Whether the package is shared for other projects.
name body string The name of the package.
type body string The type of the package.
supplier body object The supplier info of the package.
description body string The description of the package.
author body string The author of the package.
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

enabled body boolean Whether the package is browsed in the Application Catalog.
tags body array The tags of the package.
categories body array The categories associated with the package.
owner_id body string The owner id of the package.

Response Example

{
    "updated": "2017-04-06T08:22:11",
    "description": "The Apache HTTP Server Project is an effort to develop and maintain an\nopen-source HTTP server for modern operating systems including UNIX and\nWindows NT. The goal of this project is to provide a secure, efficient and\nextensible server that provides HTTP services in sync with the current HTTP\nstandards.\nApache httpd has been the most popular web server on the Internet since\nApril 1996, and celebrated its 17th birthday as a project this February.\n",
    "tags": [
        "HTTP",
        "Server",
        "WebServer",
        "HTML",
        "Apache"
    ],
    "class_definitions": [
        "com.example.apache.ApacheHttpServer"
    ],
    "is_public": false,
    "categories": [],
    "name": "Apache HTTP Server",
    "created": "2017-04-06T08:22:11",
    "author": "Mirantis, Inc",
    "enabled": true,
    "id": "979637f39a7245cebeabc99e6aa01666",
    "supplier": {},
    "fully_qualified_name": "com.example.apache.ApacheHttpServer",
    "type": "Application",
    "owner_id": "c0f6e4cf1bfc48aba587e709b58c9f28"
}
PATCH
/v1/catalog/packages/{id}

Update package

Update a package.

Response Codes

Success
Code Reason
202 - Accepted Request was accepted for processing, but the processing has not been completed. A ‘location’ header is included in the response which contains a link to check the progress of the request.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
403 - Forbidden Policy does not allow current user to do this operation.
404 - Not Found The requested resource could not be found.
409 - Conflict This operation conflicted with another operation on this resource.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
id path string The UUID of the package.

Request Example

[
    {
        "path": "/is_public",
        "value": true,
        "op": "replace"
    }
]

Response Parameters

Name In Type Description
X-Openstack-Request-Id header UUID A unique ID for tracking service request. The request ID associated with the request by default appears in the service logs.
updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

class_definitions body array The class_definitions of the package.
id body string The UUID of the package.
fully_qualified_name body string The fqn of the package.
is_public body boolean Whether the package is shared for other projects.
name body string The name of the package.
type body string The type of the package.
supplier body object The supplier info of the package.
description body string The description of the package.
author body string The author of the package.
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

enabled body boolean Whether the package is browsed in the Application Catalog.
tags body array The tags of the package.
categories body array The categories associated with the package.
owner_id body string The owner id of the package.

Response Example

{
    "updated": "2017-04-06T08:28:22",
    "description": "The Apache HTTP Server Project is an effort to develop and maintain an\nopen-source HTTP server for modern operating systems including UNIX and\nWindows NT. The goal of this project is to provide a secure, efficient and\nextensible server that provides HTTP services in sync with the current HTTP\nstandards.\nApache httpd has been the most popular web server on the Internet since\nApril 1996, and celebrated its 17th birthday as a project this February.\n",
    "tags": [
        "HTTP",
        "Server",
        "WebServer",
        "HTML",
        "Apache"
    ],
    "class_definitions": [
        "com.example.apache.ApacheHttpServer"
    ],
    "is_public": true,
    "categories": [],
    "name": "Apache HTTP Server",
    "created": "2017-04-06T08:22:11",
    "author": "Mirantis, Inc",
    "enabled": true,
    "id": "979637f39a7245cebeabc99e6aa01666",
    "supplier": {},
    "fully_qualified_name": "com.example.apache.ApacheHttpServer",
    "type": "Application",
    "owner_id": "c0f6e4cf1bfc48aba587e709b58c9f28"
}
DELETE
/v1/catalog/packages/{id}

Delete package

Remove specified Environment.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
403 - Forbidden Policy does not allow current user to do this operation.
404 - Not Found The requested resource could not be found.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
id path string The UUID of the package.

Response Parameters

This request does not return anything in the response body.
language:javascript
GET
/v1/catalog/packages/{id}/download

Download package

Download a package.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
401 - Unauthorized User must authenticate before making a request.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
id path string The UUID of the package.

Response Parameters

This request does not return anything in the response body.
language:javascript
GET
/v1/catalog/packages/{id}/ui

Get UI definition

Retrieve UI definition for a application.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
401 - Unauthorized User must authenticate before making a request.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
id path string The UUID of the package.

Response Parameters

This request does not return anything in the response body.
language:javascript

Retrieve application logo.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
400 - Bad Request Some content in the request was invalid.
401 - Unauthorized User must authenticate before making a request.
500 - Internal Server Error Something went wrong inside the service. This should not happen usually. If it does happen, it means the server has experienced some serious problems.

Request Parameters

Name In Type Description
id path string The UUID of the package.

Response Parameters

This request does not return anything in the response body.
language:javascript

Environment Configuration API

Since Murano environments are available for local modification by different users and from different locations, it’s therefore necessary to store local modifications somewhere. Thus, sessions were created to satisfy this requirement. After a user adds applications to an environment, a new session can be created. A session can be deployed only once.

Note

Multiple sessions can be opened for one environment simultaneously, but only one session can be deployed at a time. Only the first session that is deployed will be deployed, while the other ones will become invalid, no longer capable of being deploying. Once an environment is in deploying or deleting status, a new session for the environment cannot be opened.

POST
/environments/{env_id}/configure

Configure Environment / Open Session

Creates a new configuration session for environment env_id.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
403 - Forbidden Policy does not allow current user to do this operation.

Request Parameters

Name In Type Description
env_id path string The UUID of the environment.

Response Parameters

Name In Type Description
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

environment_id body string The UUID of the environment.
state body string The current state of the environment. When a session is first opened for the environment the state is opened.
version body integer The version of the session. It is tied to the version of the environment, so that only sessions whose version matches that of the environment can be deployed.
id body string The UUID of the session.

Response Example

{
    "created": "2017-04-06T07:54:40",
    "updated": "2017-04-06T07:54:40",
    "environment_id": "744e44812da84e858946f5d817de4f72",
    "state": "opened",
    "version": 0,
    "id": "257bef44a9d848daa5b2563779714820"
 }
POST
/environments/{env_id}/sessions/{session_id}/deploy

Deploy session

Start deployment of a murano environment session.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
403 - Forbidden Policy does not allow current user to do this operation.

Request Parameters

Name In Type Description
env_id path string The UUID of the environment.
session_id path string The UUID of the session.
GET
/environments/{env_id}/sessions/{session_id}

Get Session Details

Start deployment of a murano environment session.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
403 - Forbidden Policy does not allow current user to do this operation.

Request Parameters

Name In Type Description
env_id path string The UUID of the environment.
session_id path string The UUID of the session.

Response Parameters

Name In Type Description
id body string The UUID of the session.
environment_id body string The UUID of the environment.
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

user_id body string The UUID of the session owner.
version body integer The version of the session. It is tied to the version of the environment, so that only sessions whose version matches that of the environment can be deployed.
state body string The current state of the environment. When a session is first opened for the environment the state is opened.

Response Example

{
    "id": "4aecdc2178b9430cbbb8db44fb7ac384",
    "environment_id": "4dc8a2e8986fa8fa5bf24dc8a2e8986fa8",
    "created": "2013-11-30T03:23:42Z",
    "updated": "2013-11-30T03:23:54Z",
    "user_id": "d7b501094caf4daab08469663a9e1a2b",
    "version": 0,
    "state": "deploying"
}
DELETE
/environments/{env_id}/sessions/{session_id}

Delete Session

Delete the session session_id.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
403 - Forbidden Policy does not allow current user to do this operation.

Request Parameters

Name In Type Description
env_id path string The UUID of the environment.
session_id path string The UUID of the session.

Environment Templates

An environment template specifies a set of virtual resources and application information that can be deployed on top of OpenStack by translation this information into an application-ready environment. Environment templates can be customized, created, deleted and modified by users. Environment templates can be instantied as many times as the user desires. For example, the user can have different deployments from the same environment template: one for testing and another for production.

The workflow for the creation and the instantiation of the environment template is as follows:

  1. Creation of the environment template (including application information)
  2. Transformation of the environment template into the environment (creation of the environment and session and adding applications to the environment)
  3. Deployment of the environment on top of Openstack

Each environment template consists of services, which specify the application information. Each service includes information about the applications that will be installed (e.g. Tomcat), including application properties like the Tomcat port. Additional information pertaining to the virtual server may be specified, if applicable, such as keyname, flavor, image, etc.

The following is an example of an environment template:

{
   "name": "env_template_name",
   "services": [
      {
         "instance": {
            "assignFloatingIp": "true",
            "keyname": "mykeyname",
            "image": "cloud-fedora-v3",
            "flavor": "m1.medium",
            "?": {
                  "type": "io.murano.resources.LinuxMuranoInstance",
                  "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
               }
            },
         "name": "tomcat",
         "port": "8080",
         "?": {
            "type": "io.murano.apps.apache.Tomcat",
            "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
         }
      }
   ]
}
GET
/templates

List environment templates

Get a list of environment templates.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.

Request Parameters

Name In Type Description
is_public (Optional) path boolean

Indicates whether public environment templates are listed or not. The following options are possible:

  • True. Public environments templates from all projects are listed.
  • False. Private environments templates from current project are listed.
  • empty. All project templates plus public templates from all projects. are listed

Response Parameters

Name In Type Description
templates body array The list of templates.
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

name body string The name of the environment template. Only alphanumeric characters are allowed.
tenant_id body string The UUID of the tenant. A tenant is also known as a project.
version body integer The current version of the environment template.
description_text body string The enviroment template description.
is_public body boolean

Indicates whether an environment template is public or not.

  • True. The environment template is public. Can be cloned.
  • False. The environment template is private.
id body string The UUID of the environment template.

Response Example

{
    "templates": [
        {
            "updated": "2014-05-14T13:02:54",
            "networking": {},
            "name": "test1",
            "created": "2014-05-14T13:02:46",
            "tenant_id": "726ed856965f43cc8e565bc991fa76c3",
            "version": 0,
            "is_public": false,
            "description_text": "",
            "id": "2fa5ab704749444bbeafe7991b412c33"
        },
        {
            "updated": "2014-05-14T13:02:55",
            "networking": {},
            "name": "test2",
            "created": "2014-05-14T13:02:51",
            "tenant_id": "123452452345346345634563456345346",
            "version": 0,
            "is_public": true,
            "description_text": "",
            "id": "744e44812da84e858946f5d817de4f72"
        }
    ]
}
POST
/templates

Create environment template

Create an environment template.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
409 - Conflict This operation conflicted with another operation on this resource.

Request Parameters

Name In Type Description
name body string The name of the environment template. Only alphanumeric characters are allowed.
is_public body boolean

Indicates whether an environment template is public or not.

  • True. The environment template is public. Can be cloned.
  • False. The environment template is private.

Request Example

{
    "name": "env_template_name"
}

Response Parameters

Name In Type Description
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

name body string The name of the environment template. Only alphanumeric characters are allowed.
tenant_id body string The UUID of the tenant. A tenant is also known as a project.
version body integer The current version of the environment template.
description_text body string The enviroment template description.
is_public body boolean

Indicates whether an environment template is public or not.

  • True. The environment template is public. Can be cloned.
  • False. The environment template is private.
id body string The UUID of the environment template.

Response Example

{
    "updated": "2014-05-14T13:02:55",
    "networking": {},
    "name": "test2",
    "created": "2014-05-14T13:02:51",
    "tenant_id": "123452452345346345634563456345346",
    "version": 0,
    "is_public": true,
    "description_text": "",
    "id": "744e44812da84e858946f5d817de4f72"
}
GET
/templates/{env_temp_id}

Get environment template details

Get details for the environment template env_temp_id.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
404 - Not Found The requested resource could not be found.

Request Parameters

Name In Type Description
env_temp_id path string The UUID of the environment template.

Response Parameters

Name In Type Description
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

name body string The name of the environment template. Only alphanumeric characters are allowed.
services body array The list of environment template service objects.
tenant_id body string The UUID of the tenant. A tenant is also known as a project.
version body integer The current version of the environment template.
description_text body string The enviroment template description.
is_public body boolean

Indicates whether an environment template is public or not.

  • True. The environment template is public. Can be cloned.
  • False. The environment template is private.
id body string The UUID of the environment template.

Response Example

{
    "updated": "2014-05-14T13:02:55",
    "networking": {},
    "name": "test2",
    "created": "2014-05-14T13:02:51",
    "tenant_id": "123452452345346345634563456345346",
    "services": [
        {
          "instance": {
            "assignFloatingIp": "true",
            "keyname": "mykeyname",
            "image": "cloud-fedora-v3",
            "flavor": "m1.medium",
            "?": {
              "type": "io.murano.resources.LinuxMuranoInstance",
              "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
            }
          },
          "name": "orion",
          "?": {
            "type": "io.murano.apps.apache.Tomcat",
            "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
          },
          "port": "8080"
        }
    ],
    "version": 0,
    "is_public": true,
    "description_text": "",
    "id": "744e44812da84e858946f5d817de4f72"
}
DELETE
/templates/{env_temp_id}

Delete environment template

Delete the environment template env_temp_id.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
404 - Not Found The requested resource could not be found.

Request Parameters

Name In Type Description
env_temp_id path string The UUID of the environment template.
POST
/templates/{env_temp_id}/services

Add application to environment template

Create a new application for environment template env_temp_id.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
404 - Not Found The requested resource could not be found.

Request Parameters

Name In Type Description
env_temp_id path string The UUID of the environment template.
service body object

Detailed information about the service to be added to the environment template. The service includes virtual resources and application information. The virtual resources information is specified inside the instance object property. Application information is specified inside the body of the service object.

The instance object properties include:

  • assignFloatingIp. Whether to assign a floating IP to the VM.
  • keyname. The key name of a key pair for the VM.
  • image. The image to be used to provision the VM.
  • flavor. The flavor to be used to provision the VM.
  • ?. An object which includes the type of the server.

An example instance looks like:

{
  "assignFloatingIp": "true",
  "keyname": "mykeyname",
  "image": "cloud-fedora-v3",
  "flavor": "m1.medium",
  "?": {
    "type": "io.murano.resources.LinuxMuranoInstance",
    "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
  }
}

In addition, the service should also include the following:

  • name. The name of the application.
  • ?. An object that includes the type and id of the application. An example type is: “io.murano.resources.LinuxMuranoInstance”.
  • port: The port to be used by the application. The value must be greater than 0 and less than 65536 (although formatted as a string).

The entire service looks like:

{
  "instance": {
    "assignFloatingIp": "true",
    "keyname": "mykeyname",
    "image": "cloud-fedora-v3",
    "flavor": "m1.medium",
    "?": {
      "type": "io.murano.resources.LinuxMuranoInstance",
      "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
    }
  },
  "name": "orion",
  "?": {
    "type": "io.murano.apps.apache.Tomcat",
    "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
  },
  "port": "8080"
}

Request Example

{
  "instance": {
    "assignFloatingIp": "true",
    "keyname": "mykeyname",
    "image": "cloud-fedora-v3",
    "flavor": "m1.medium",
    "?": {
      "type": "io.murano.resources.LinuxMuranoInstance",
      "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
    }
  },
  "name": "orion",
  "?": {
    "type": "io.murano.apps.apache.Tomcat",
    "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
  },
  "port": "8080"
}

Response Parameters

Name In Type Description
updated body string

The date and time when the object was updated. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

tenant_id body string The UUID of the tenant. A tenant is also known as a project.
services body array The list of environment template service objects.
version body integer The current version of the environment template.
description_text body string The enviroment template description.
is_public body boolean

Indicates whether an environment template is public or not.

  • True. The environment template is public. Can be cloned.
  • False. The environment template is private.
id body string The UUID of the environment template.
name body string The name of the environment template. Only alphanumeric characters are allowed.

Response Example

{
  "updated": "2017-04-26T19:41:58",
  "created": "2017-04-26T19:33:10",
  "tenant_id": "cca37eef752244d99945a4123f30ff79",
  "services": [
    {
      "instance": {
        "assignFloatingIp": "true",
        "keyname": "mykeyname",
        "image": "cloud-fedora-v3",
        "flavor": "m1.medium",
        "?": {
          "type": "io.murano.resources.LinuxMuranoInstance",
          "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
        }
      },
      "name": "orion",
      "?": {
        "type": "io.murano.apps.apache.Tomcat",
        "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
      },
      "port": "8080"
    }
  ],
  "version": 0,
  "description_text": "",
  "is_public": false,
  "id": "64670f5ada0848408734b2985f5cbb92",
  "name": "test_application"
}
DELETE
/templates/{env_temp_id}/services/{service_id}

Delete application from an environment template

Delete an application from an environment template.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
404 - Not Found The requested resource could not be found.

Request Parameters

Name In Type Description
env_temp_id path string The UUID of the environment template.
service_id path string The UUID of a service belonging to an environment template.
GET
/templates/{env_temp_id}/services

List application details for environment template

List all the applications for the specified environment template env_temp_id.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
404 - Not Found The requested resource could not be found.

Request Parameters

Name In Type Description
env_temp_id path string The UUID of the environment template.

Response Parameters

  • updated: updated
  • created: created
  • tenant_id: tenant_id
  • services: template_services
  • version: template_version
  • description_text: template_description
  • is_public: template_is_public
  • id: template_id
  • name: template_name

Response Example

[
  {
    "instance":
    {
      "assignFloatingIp": "true",
      "keyname": "mykeyname",
      "image": "cloud-fedora-v3",
      "flavor": "m1.medium",
      "?":
      {
        "type": "io.murano.resources.LinuxMuranoInstance",
        "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
      }
    },
    "name": "tomcat",
    "?":
    {
      "type": "io.murano.apps.apache.Tomcat",
      "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
    },
    "port": "8080"
  },
  {
    "instance": "ef984a74-29a4-45c0-b1dc-2ab9f075732e",
    "password": "XXX",
    "name": "mysql",
    "?":
    {
      "type": "io.murano.apps.database.MySQL",
      "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
    }
  }
]
PUT
/templates/{env_temp_id}/services/{service_id}

Update application for an environment template

Delete an application from an environment template.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
404 - Not Found The requested resource could not be found.

Request Parameters

Name In Type Description
env_temp_id path string The UUID of the environment template.
service_id path string The UUID of a service belonging to an environment template.
service body object

Detailed information about the service to be added to the environment template. The service includes virtual resources and application information. The virtual resources information is specified inside the instance object property. Application information is specified inside the body of the service object.

The instance object properties include:

  • assignFloatingIp. Whether to assign a floating IP to the VM.
  • keyname. The key name of a key pair for the VM.
  • image. The image to be used to provision the VM.
  • flavor. The flavor to be used to provision the VM.
  • ?. An object which includes the type of the server.

An example instance looks like:

{
  "assignFloatingIp": "true",
  "keyname": "mykeyname",
  "image": "cloud-fedora-v3",
  "flavor": "m1.medium",
  "?": {
    "type": "io.murano.resources.LinuxMuranoInstance",
    "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
  }
}

In addition, the service should also include the following:

  • name. The name of the application.
  • ?. An object that includes the type and id of the application. An example type is: “io.murano.resources.LinuxMuranoInstance”.
  • port: The port to be used by the application. The value must be greater than 0 and less than 65536 (although formatted as a string).

The entire service looks like:

{
  "instance": {
    "assignFloatingIp": "true",
    "keyname": "mykeyname",
    "image": "cloud-fedora-v3",
    "flavor": "m1.medium",
    "?": {
      "type": "io.murano.resources.LinuxMuranoInstance",
      "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
    }
  },
  "name": "orion",
  "?": {
    "type": "io.murano.apps.apache.Tomcat",
    "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
  },
  "port": "8080"
}

Request Example

{
    "instance": {
        "assignFloatingIp": "true",
        "keyname": "mykeyname",
        "image": "cloud-fedora-v3",
        "flavor": "m1.medium",
        "?": {
            "type": "io.murano.resources.LinuxMuranoInstance",
            "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
        }
    },
    "name": "orion",
    "port": "8080",
    "?": {
        "type": "io.murano.apps.apache.Tomcat",
        "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
    }
}

Response Parameters

Name In Type Description
service body object

Detailed information about the service to be added to the environment template. The service includes virtual resources and application information. The virtual resources information is specified inside the instance object property. Application information is specified inside the body of the service object.

The instance object properties include:

  • assignFloatingIp. Whether to assign a floating IP to the VM.
  • keyname. The key name of a key pair for the VM.
  • image. The image to be used to provision the VM.
  • flavor. The flavor to be used to provision the VM.
  • ?. An object which includes the type of the server.

An example instance looks like:

{
  "assignFloatingIp": "true",
  "keyname": "mykeyname",
  "image": "cloud-fedora-v3",
  "flavor": "m1.medium",
  "?": {
    "type": "io.murano.resources.LinuxMuranoInstance",
    "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
  }
}

In addition, the service should also include the following:

  • name. The name of the application.
  • ?. An object that includes the type and id of the application. An example type is: “io.murano.resources.LinuxMuranoInstance”.
  • port: The port to be used by the application. The value must be greater than 0 and less than 65536 (although formatted as a string).

The entire service looks like:

{
  "instance": {
    "assignFloatingIp": "true",
    "keyname": "mykeyname",
    "image": "cloud-fedora-v3",
    "flavor": "m1.medium",
    "?": {
      "type": "io.murano.resources.LinuxMuranoInstance",
      "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
    }
  },
  "name": "orion",
  "?": {
    "type": "io.murano.apps.apache.Tomcat",
    "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
  },
  "port": "8080"
}

Response Example

{
   "instance":
   {
       "assignFloatingIp": "true",
       "keyname": "mykeyname",
       "image": "cloud-fedora-v3",
       "flavor": "m1.medium",
       "?":
       {
           "type": "io.murano.resources.LinuxMuranoInstance",
           "id": "ef984a74-29a4-45c0-b1dc-2ab9f075732e"
       }
   },
   "name": "orion",
   "?":
   {
       "type": "io.murano.apps.apache.Tomcat",
       "id": "54cea43d-5970-4c73-b9ac-fea656f3c722"
   },
   "port": "8080"
}
GET
/templates/{env_temp_id}/create-environment

Create environment from environment template

Create an environment from the environment template env_temp_id.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
404 - Not Found The requested resource could not be found.
409 - Conflict This operation conflicted with another operation on this resource.

Request Parameters

Name In Type Description
env_temp_id path string The UUID of the environment template.
name body string A name for the environment. Name must be at least one non-white space symbol.

Request Example

{
    "name": "environment_name"
}

Response Parameters

Name In Type Description
environment_id body string The UUID of the environment.
name body string A name for the environment. Name must be at least one non-white space symbol.
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

tenant_id body string The UUID of the tenant. A tenant is also known as a project.
version body int Current version.
session_id body string The UUID of the session.

Response Example

{
    "environment_id": "aa90fadfafca10e38e1c8c4bbf7",
    "name": "environment_name",
    "created": "2015-01-26T09:12:51",
    "tenant_id": "00000000000000000000000000000001",
    "version": 0,
    "session_id": "adf4dadfaa9033ca7ce245fca10e38e1c8c4bbf7",
}
GET
/templates/{env_temp_id}/clone

Clone environment template

Clones an environment template from one tenant into another.

Response Codes

Success
Code Reason
200 - OK Request was successful.
Error
Code Reason
401 - Unauthorized User must authenticate before making a request.
404 - Not Found The requested resource could not be found.
409 - Conflict This operation conflicted with another operation on this resource.

Request Parameters

Name In Type Description
env_temp_id path string The UUID of the environment template.
name body string The name of the environment template. Only alphanumeric characters are allowed.

Request Example

{
    "name": "cloned_env_template_name"
}

Response Parameters

Name In Type Description
environment_id body string The UUID of the environment.
name body string A name for the environment. Name must be at least one non-white space symbol.
created body string

The date and time when the resource was created. The date and time stamp format is ISO 8601:

CCYY-MM-DDThh:mm:ss±hh:mm

For example, 2015-08-27T09:49:58-05:00.

The ±hh:mm value, if included, is the time zone as an offset from UTC.

tenant_id body string The UUID of the tenant. A tenant is also known as a project.
version body int Current version.
session_id body string The UUID of the session.

Response Example

{
   "updated": "2015-01-26T09:12:51",
   "name": "cloned_env_template_name",
   "created": "2015-01-26T09:12:51",
   "tenant_id": "00000000000000000000000000000001",
   "version": 0,
   "is_public": false,
   "id": "aa9033ca7ce245fca10e38e1c8c4bbf7",
}
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.