OpenStack Application Catalog API v1

Actions and Static Actions

A Murano action is a type of MuranoPL method. The differences between a regular MuranoPL method are:

  • Action is executed on deployed objects.

  • Action execution is initiated by API request: you do not have to call the method manually.

Thus, Murano actions allow performing any operations on objects, like:

  • Getting information from the VM, like a config that is generated during the deployment

  • VM rebooting

  • Scaling

A list of available actions is formed during the environment deployment. Following deployment completion, you can call the action asynchronously. Murano engine generates a task for every action thereby allowing the action status to be tracked.

POST
/environments/{environment_id}/actions/{action_id}

Execute action

Execute action on deployed environment.

Request Parameters

Name

In

Type

Description

environment_id

path

string

The UUID of the environment.

action_id

path

string

The UUID of the action to be executed on the deployed environment.

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.

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.

task_id

body

string

The UUID of the task associated with an action executed on a deployed environment.

Response Example

{
	"task_id": "9e60318629ef47378b583825e7d282b7"
}
GET
/environments/{environment_id}/actions/{task_id}

Get Action Result

Retrieve action result for action executed on deployed environment.

Request Parameters

Name

In

Type

Description

environment_id

path

string

The UUID of the environment.

task_id

path

string

The UUID of the task associated with an action executed on a deployed environment.

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.

POST
/actions

Execute static action

Execute static action.

Static methods can be called if they are exposed by specifying Scope: Public in the MuranoPL object and the result of its execution will be returned.

Request Example

{
  "className": "ns.Bar",
  "methodName": "staticAction",
  "parameters": {"myName": "John"}
}

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.

Response Example

"Hello, John"

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

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.

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

An environment is a set of logically connected applications that are grouped together for easy management. By default, each environment has a single network for all its applications, and the deployment of the environment is defined in a single heat stack. Applications in different environments are always independent from one another.

An environment is a single unit of deployment. This means that you can not only deploy an environment that contains a single application but an environment that contains multiple applications.

GET
/environments

List environments

Get a list of existing Environments

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

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).

tenant (Optional)

query

string

Indicates environments from specified tenant are listed. Admin user required.

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.

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

A name for the environment. Name must be at least one non-white space symbol and less than 256 characters long.

description_text

body

string

The description of the environment.

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 an 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.

403 - Forbidden

Policy does not allow current user to do this operation.

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 and less than 256 characters long.

description_text

body

string

The description 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.

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.

acquired_by

body

string

The session that is currently deploying the environment. Returns the first session id that is in DEPLOYING state for the environment.

Response Example

{
  "status": "ready",
  "updated": "2017-04-27T15:36:02",
  "created": "2017-04-27T15:36:02",
  "tenant_id": "cca37eef752244d99945a4123f30ff79",
  "acquired_by": null,
  "services": [],
  "version": 0,
  "description_text": "",
  "id": "a2977db57398401aba5804ef2211a2a3",
  "name": "env_name"
}
PUT
/environments/{env_id}

Rename environment

Renames an 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.

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.

Request Parameters

Name

In

Type

Description

env_id

path

string

The UUID of the environment.

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 and less than 256 characters long.

description_text

body

string

The description 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.

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.

acquired_by

body

string

The session that is currently deploying the environment. Returns the first session id that is in DEPLOYING state for the environment.

Response Example

{
  "status": "ready",
  "updated": "2017-04-27T16:01:29",
  "created": "2017-04-27T15:33:55",
  "tenant_id": "cca37eef752244d99945a4123f30ff79",
  "acquired_by": null,
  "services": [],
  "version": 0,
  "description_text": "",
  "id": "f199275420ff4e938e0307b0cf68374d",
  "name": "env_name_changed"
}
GET
/environments/{env_id}

Show environment details

Shows details for an environment.

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.

Request Parameters

Name

In

Type

Description

env_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.

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 and less than 256 characters long.

description_text

body

string

The description 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.

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.

acquired_by

body

string

The session that is currently deploying the environment. Returns the first session id that is in DEPLOYING state for the environment.

Response Example

{
  "status": "ready",
  "updated": "2017-04-27T15:36:02",
  "created": "2017-04-27T15:36:02",
  "tenant_id": "cca37eef752244d99945a4123f30ff79",
  "acquired_by": null,
  "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"
        }
    }
  ],
  "version": 0,
  "description_text": "",
  "id": "a2977db57398401aba5804ef2211a2a3",
  "name": "env_name"
}
DELETE
/environments/{env_id}

Delete environment

Remove specified Environment.

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.

Request Parameters

Name

In

Type

Description

env_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

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.

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

object

The default networking information of the environment. The information includes the name of the network, along with the type and id of the network, contained in the ? property.

An example defaultNetworks object looks like:

"defaultNetworks": {
    "environment": {
        "internalNetworkName": "net_two",
        "?": {
            "type": "io.murano.resources.ExistingNeutronNetwork",
            "id": "594e94fcfe4c48ef8f9b55edb3b9f177"
        }
    },
    "flat": null
}

region

body

string

Current region of the environment.

regions

body

object

Detailed region information for the cloud environment.

name

body

string

A name for the environment. Name must be at least one non-white space symbol and less than 256 characters long.

services

body

array

A list of service objects.

?

body

object

The ? section of the environment, containing information about the environment model, including its type, id and associated metadata.

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/{env_id}/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.

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.

409 - Conflict

This operation conflicted with another operation on this resource.

Request Parameters

Name

In

Type

Description

env_id

path

string

The UUID of the environment.

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

object

The default networking information of the environment. The information includes the name of the network, along with the type and id of the network, contained in the ? property.

An example defaultNetworks object looks like:

"defaultNetworks": {
    "environment": {
        "internalNetworkName": "net_two",
        "?": {
            "type": "io.murano.resources.ExistingNeutronNetwork",
            "id": "594e94fcfe4c48ef8f9b55edb3b9f177"
        }
    },
    "flat": null
}

region

body

string

Current region of the environment.

regions

body

object

Detailed region information for the cloud environment.

name

body

string

A name for the environment. Name must be at least one non-white space symbol and less than 256 characters long.

services

body

array

A list of service objects.

?

body

object

The ? section of the environment, containing information about the environment model, including its type, id and associated metadata.

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/{env_id}/lastStatus

Get environment last status

Get the last status for the environment for each service in the 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.

403 - Forbidden

Policy does not allow current user to do this operation.

404 - Not Found

The requested resource could not be found.

Request Parameters

Name

In

Type

Description

env_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.

lastStatuses

body

object

Shows the most recent status of the environment for each service in the environment. The response object includes detailed information by service_id.

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

In Murano, each application, as well as the UI form for application data entry, is defined by packages.

Package Structure

The structure of the Murano application package is predefined. The application package root folder should contain the following:

  • manifest.yaml file is the application entry point.

    Note

    The filename is fixed, so do not use any custom names.

  • Classes folder contains MuranoPL class definitions.

  • Resources folder contaisn execution plan templates as well as the scripts folder with all the files required for an application deployment located inside it.

  • UI folder contains the dynamic UI YAML definitions.

  • logo.png file (optional) is an image file associated with your application. The logo appears in the Application Catalog within Murano Dasboard.

    Note

    There are no special limitations regarding an image filename. However, if it differs from the default logo.png, specify it in an application manifest file.

  • images.lst file (optional) contains a list of images required by an application.

Note

A bundle is a collection of packages. In the Community App Catalog, you can find such bundles as container-based-apps, app-servers, and so on. The packages in the Application Catalog are sorted by usage.

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.

403 - Forbidden

Policy does not allow current user to do this operation.

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

Upload a package to the application catalog.

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.

403 - Forbidden

Policy does not allow current user to do this operation.

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/{package_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.

403 - Forbidden

Policy does not allow current user to do this operation.

Request Parameters

Name

In

Type

Description

package_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/{package_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.

403 - Forbidden

Policy does not allow current user to do this operation.

404 - Not Found

The requested resource could not be found.

Request Parameters

Name

In

Type

Description

package_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/{package_id}

Update package

Update a package.

List of allowed changes:

{ "op": "add", "path": "/tags", "value": [ "foo", "bar" ] }
{ "op": "add", "path": "/categories", "value": [ "foo", "bar" ] }
{ "op": "remove", "path": "/tags" }
{ "op": "remove", "path": "/categories" }
{ "op": "replace", "path": "/tags", "value": ["foo", "bar"] }
{ "op": "replace", "path": "/is_public", "value": true }
{ "op": "replace", "path": "/description",
                    "value":"New description" }
{ "op": "replace", "path": "/name", "value": "New name" }

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.

Request Parameters

Name

In

Type

Description

package_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/{package_id}

Delete package

Remove specified Environment.

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.

Request Parameters

Name

In

Type

Description

package_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

Search for packages

Search for packages in application catalog. Non-admins, by default, can view packages that belong to their project as well as public packages: packages which belong to other projects but which have been tagged as public by an admin. Admins can search for packages across all projects.

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.

403 - Forbidden

Policy does not allow current user to do this operation.

Request Parameters

Name

In

Type

Description

filters (Optional)

query

string

The filters that you want to use to search for packages in the application catalog. If no filters query parameter is specified, the application catalog API returns all packages allowed by the policy settings. By using filters parameter, the API returns only the requested set of packages that meet the filters. The list of filters includes:

  • limit: the maximum number of packages to return

  • type: the package type

  • id: the package id

  • category: the package category

  • tag: the package tag

  • class_name: the package class name

  • fqn: the package fully qualified name

  • name: the package name

Response Parameters

Returns the list of packages matching the search criteria.

GET
/v1/catalog/packages/{package_id}/ui

Get UI definition

Retrieve UI definition for an 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.

403 - Forbidden

Policy does not allow current user to do this operation.

404 - Not Found

The requested resource could not be found.

Request Parameters

Name

In

Type

Description

package_id

path

string

The UUID of the package.

Response Parameters

Returns the entire UI definition for the package, if the logo has a UI definition.

Below is an example of a very basic UI definition:

Version: 2.2

Forms:
  - appConfiguration:
      fields:
        - name: license
          type: string
          description: Apache License, Version 2.0
          hidden: false
          required: false

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.

403 - Forbidden

Policy does not allow current user to do this operation.

404 - Not Found

The requested resource could not be found.

Request Parameters

Name

In

Type

Description

package_id

path

string

The UUID of the package.

Response Parameters

Returns the binary logo data for the package, if the package has a logo.

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

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.

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

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 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

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.

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 environment 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

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.

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 environment 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

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.

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 environment 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

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.

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 environment 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

  • X-Openstack-Request-Id: request_id

  • 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

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.

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 and less than 256 characters long.

Request Example

{
    "name": "environment_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.

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 and less than 256 characters long.

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

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.

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 and less than 256 characters long.

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",
}