Intelligent Workload Manager (IWM)

IWM provides lifecycle management for virtual resources in a multi-cloud multi-tenant environment. It also provides optimised planner for the target infrastructure (costs, tags, etc). Functionality is implemented on top of the Waldur hybrid cloud broker.

Version: 1.0.0

Contact information:
Ilja Livenson

PUT /api/openstacktenant-snapshots/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/openstacktenant-snapshots/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/openstacktenant-snapshots/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/openstacktenant-snapshots/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

GET /api/customers/{uuid}/users/

A list of users connected to the customer

  • Description: A list of users connected to the customer

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/project-permissions/

- Projects are connected to customers, whereas the project may belong to one customer only,

  • Description: - Projects are connected to customers, whereas the project may belong to one customer only, and the customer may have multiple projects. - Projects are connected to services, whereas the project may contain multiple services, and the service may belong to multiple projects. - Staff members can list all available projects of any customer and create new projects. - Customer owners can list all projects that belong to any of the customers they own. Customer owners can also create projects for the customers they own. - Project administrators can list all the projects they are administrators in. - Project managers can list all the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/project-permissions/

Project permissions expresses connection of user to a project.

  • Description: Project permissions expresses connection of user to a project. User may have either project manager or system administrator permission in the project. Use */api/project-permissions/* endpoint to maintain project permissions. Note that project permissions can be viewed and modified only by customer owners and staff users. To list all visible permissions, run a **GET** query against a list. Response will contain a list of project users and their brief data. To add a new user to the project, **POST** a new relationship to */api/project-permissions/* endpoint specifying project, user and the role of the user (‘admin’ or ‘manager’): .. code-block:: http POST /api/project-permissions/ HTTP/1.1 Accept: application/json Authorization: Token 95a688962bf68678fd4c8cec4d138ddd9493c93b Host: example.com { “project”: “http://example.com/api/projects/6c9b01c251c24174a6691a1f894fae31/”, “role”: “manager”, “user”: “http://example.com/api/users/82cec6c8e0484e0ab1429412fe4194b7/” }

Parameters

Name Position Description Type
page query string
page_size query string
role query string
user query string
user_url query string
username query string
full_name query string
native_name query string
o query string
customer query string
project query string
project_url query string

Responses

200 -

POST /api/openstack-tenants/{uuid}/pull_floating_ips/

Parameters

Name Position Description Type
uuid path string

Responses

201 -

PUT /api/hooks-email/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/hooks-email/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/hooks-email/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/hooks-email/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstacktenant-snapshots/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/openstacktenant-snapshots/

Parameters

Name Position Description Type
page query string
page_size query string
customer query string
customer_uuid query string
customer_name query string
customer_native_name query string
customer_abbreviation query string
project query string
project_uuid query string
project_name query string
service_uuid query string
service_name query string
service_settings_name query string
service_settings_uuid query string
name query string
description query string
state query string
uuid query string
tag query string
rtag query string
o query string
source_volume_uuid query string
source_volume query string
backup_uuid query string
backup query string

Responses

200 -

PUT /api/openstacktenant-service-project-link/{id}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
id path string
data body

Responses

200 -

DELETE /api/openstacktenant-service-project-link/{id}/

Parameters

Name Position Description Type
id path string

Responses

204 -

PATCH /api/openstacktenant-service-project-link/{id}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
id path string
data body

Responses

200 -

GET /api/openstacktenant-service-project-link/{id}/

To remove a link, issue **DELETE** to URL of the corresponding connection as stuff user or customer owner.

  • Description: To remove a link, issue **DELETE** to URL of the corresponding connection as stuff user or customer owner.

Parameters

Name Position Description Type
id path string

Responses

200 -

POST /api/openstack-tenants/{uuid}/create_floating_ip/

Parameters

Name Position Description Type
uuid path string

Responses

201 -

PUT /api/project-permissions/{id}/

- Projects are connected to customers, whereas the project may belong to one customer only,

  • Description: - Projects are connected to customers, whereas the project may belong to one customer only, and the customer may have multiple projects. - Projects are connected to services, whereas the project may contain multiple services, and the service may belong to multiple projects. - Staff members can list all available projects of any customer and create new projects. - Customer owners can list all projects that belong to any of the customers they own. Customer owners can also create projects for the customers they own. - Project administrators can list all the projects they are administrators in. - Project managers can list all the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
id path string
data body

Responses

200 -

DELETE /api/project-permissions/{id}/

To remove a user from a project, delete corresponding connection (**url** field). Successful deletion

  • Description: To remove a user from a project, delete corresponding connection (**url** field). Successful deletion will return status code 204. .. code-block:: http DELETE /api/project-permissions/42/ HTTP/1.1 Authorization: Token 95a688962bf68678fd4c8cec4d138ddd9493c93b Host: example.com

Parameters

Name Position Description Type
id path string

Responses

204 -

PATCH /api/project-permissions/{id}/

- Projects are connected to customers, whereas the project may belong to one customer only,

  • Description: - Projects are connected to customers, whereas the project may belong to one customer only, and the customer may have multiple projects. - Projects are connected to services, whereas the project may contain multiple services, and the service may belong to multiple projects. - Staff members can list all available projects of any customer and create new projects. - Customer owners can list all projects that belong to any of the customers they own. Customer owners can also create projects for the customers they own. - Project administrators can list all the projects they are administrators in. - Project managers can list all the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
id path string
data body

Responses

200 -

GET /api/project-permissions/{id}/

- Projects are connected to customers, whereas the project may belong to one customer only,

  • Description: - Projects are connected to customers, whereas the project may belong to one customer only, and the customer may have multiple projects. - Projects are connected to services, whereas the project may contain multiple services, and the service may belong to multiple projects. - Staff members can list all available projects of any customer and create new projects. - Customer owners can list all projects that belong to any of the customers they own. Customer owners can also create projects for the customers they own. - Project administrators can list all the projects they are administrators in. - Project managers can list all the projects they are managers in.

Parameters

Name Position Description Type
id path string

Responses

200 -

GET /api/events/event_groups/

Returns a list of groups with event types.

  • Description: Returns a list of groups with event types. Group is used in exclude_features query param.

Parameters

Name Position Description Type

Responses

200 -

PUT /api/hooks-push/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/hooks-push/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/hooks-push/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/hooks-push/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

GET /api/events/scope_types/

Returns a list of scope types acceptable by events filter.

  • Description: Returns a list of scope types acceptable by events filter.

Parameters

Name Position Description Type

Responses

200 -

PUT /api/openstack-floating-ips/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

DELETE /api/openstack-floating-ips/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/openstack-floating-ips/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

GET /api/openstack-floating-ips/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstacktenant-volumes/{uuid}/extend/

Increase volume size

  • Description: Increase volume size
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

PUT /api/openstack-subnets/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/openstack-subnets/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/openstack-subnets/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/openstack-subnets/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

PUT /api/openstacktenant-instances/{uuid}/

OpenStack instance permissions

  • Description: OpenStack instance permissions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Staff members can list all available VM instances in any service. - Customer owners can list all VM instances in all the services that belong to any of the customers they own. - Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in. - Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/openstacktenant-instances/{uuid}/

Deletion of an instance is done through sending a **DELETE** request to the instance URI.

  • Description: Deletion of an instance is done through sending a **DELETE** request to the instance URI. Valid request example (token is user specific): .. code-block:: http DELETE /api/openstacktenant-instances/abceed63b8e844afacd63daeac855474/ HTTP/1.1 Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com Only stopped instances or instances in ERRED state can be deleted. By default when instance is destroyed, all data volumes attached to it are destroyed too. In order to preserve data volumes use query parameter ?delete_volumes=false In this case data volumes are detached from the instance and then instance is destroyed. Note that system volume is deleted anyway. For example: .. code-block:: http DELETE /api/openstacktenant-instances/abceed63b8e844afacd63daeac855474/?delete_volumes=false HTTP/1.1 Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/openstacktenant-instances/{uuid}/

OpenStack instance permissions

  • Description: OpenStack instance permissions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Staff members can list all available VM instances in any service. - Customer owners can list all VM instances in all the services that belong to any of the customers they own. - Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in. - Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/openstacktenant-instances/{uuid}/

OpenStack instance permissions

  • Description: OpenStack instance permissions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Staff members can list all available VM instances in any service. - Customer owners can list all VM instances in all the services that belong to any of the customers they own. - Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in. - Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstacktenant-instances/{uuid}/change_flavor/

OpenStack instance permissions

  • Description: OpenStack instance permissions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Staff members can list all available VM instances in any service. - Customer owners can list all VM instances in all the services that belong to any of the customers they own. - Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in. - Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

POST /api/hooks-web/

To create new web hook issue **POST** against */api/hooks-web/* as an authenticated user.

  • Description: To create new web hook issue **POST** against */api/hooks-web/* as an authenticated user. You should specify list of event_types or event_groups. Example of a request: .. code-block:: http POST /api/hooks-web/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “event_types”: [“resource_start_succeeded”], “event_groups”: [“users”], “destination_url”: “http://example.com/” } When hook is activated, **POST** request is issued against destination URL with the following data: .. code-block:: javascript { “timestamp”: “2015-07-14T12:12:56.000000”, “message”: “Customer ABC LLC has been updated.”, “type”: “customer_update_succeeded”, “context”: { “user_native_name”: “Walter Lebrowski”, “customer_contact_details”: “”, “user_username”: “Walter”, “user_uuid”: “1c3323fc4ae44120b57ec40dea1be6e6”, “customer_uuid”: “4633bbbb0b3a4b91bffc0e18f853de85”, “ip_address”: “8.8.8.8”, “user_full_name”: “Walter Lebrowski”, “customer_abbreviation”: “ABC LLC”, “customer_name”: “ABC LLC” }, “levelname”: “INFO” } Note that context depends on event type.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/hooks-web/

Parameters

Name Position Description Type
page query string
page_size query string
user query string
is_active query string
last_published query string
destination_url query string
content_type query string
author_uuid query string

Responses

200 -

POST /api/openstack-tenants/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/openstack-tenants/

Parameters

Name Position Description Type
page query string
page_size query string
customer query string
customer_uuid query string
customer_name query string
customer_native_name query string
customer_abbreviation query string
project query string
project_uuid query string
project_name query string
service_uuid query string
service_name query string
service_settings_name query string
service_settings_uuid query string
name query string
description query string
state query string
uuid query string
tag query string
rtag query string
o query string

Responses

200 -

POST /api/openstack-floating-ips/

Parameters

Name Position Description Type

Responses

201 -

GET /api/openstack-floating-ips/

To get a list of all available floating IPs, issue **GET** against */api/floating-ips/*.

  • Description: To get a list of all available floating IPs, issue **GET** against */api/floating-ips/*. Floating IPs are read only. Each floating IP has fields: ‘address’, ‘status’. Status *DOWN* means that floating IP is not linked to a VM, status *ACTIVE* means that it is in use.

Parameters

Name Position Description Type
page query string
page_size query string
customer query string
customer_uuid query string
customer_name query string
customer_native_name query string
customer_abbreviation query string
project query string
project_uuid query string
project_name query string
service_uuid query string
service_name query string
service_settings_name query string
service_settings_uuid query string
name query string
description query string
state query string
uuid query string
tag query string
rtag query string
runtime_state query string
o query string
tenant_uuid query string
tenant query string

Responses

200 -

POST /api/openstack-subnets/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/openstack-subnets/

Parameters

Name Position Description Type
page query string
page_size query string
customer query string
customer_uuid query string
customer_name query string
customer_native_name query string
customer_abbreviation query string
project query string
project_uuid query string
project_name query string
service_uuid query string
service_name query string
service_settings_name query string
service_settings_uuid query string
name query string
description query string
state query string
uuid query string
tag query string
rtag query string
o query string
tenant_uuid query string
tenant query string
network_uuid query string
network query string

Responses

200 -

POST /api/openstack/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/openstack/

To create a service, issue a **POST** to */api/openstack/* as a customer owner.

  • Description: To create a service, issue a **POST** to */api/openstack/* as a customer owner. You can create service based on shared service settings. Example: .. code-block:: http POST /api/openstack/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “name”: “Common OpenStack”, “customer”: “http://example.com/api/customers/1040561ca9e046d2b74268600c7e1105/”, “settings”: “http://example.com/api/service-settings/93ba615d6111466ebe3f792669059cb4/” } Or provide your own credentials. Example: .. code-block:: http POST /api/openstack/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “name”: “My OpenStack”, “customer”: “http://example.com/api/customers/1040561ca9e046d2b74268600c7e1105/”, “backend_url”: “http://keystone.example.com:5000/v2.0”, “username”: “admin”, “password”: “secret” }

Parameters

Name Position Description Type
page query string
page_size query string
name query string
project_uuid query string
customer query string
project query string
settings query string
shared query string
type query string
tag query string
rtag query string

Responses

200 -

GET /api/customers/{uuid}/balance_history/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstacktenant-instances/{uuid}/stop/

OpenStack instance permissions

  • Description: OpenStack instance permissions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Staff members can list all available VM instances in any service. - Customer owners can list all VM instances in all the services that belong to any of the customers they own. - Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in. - Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

POST /api/openstack-networks/{uuid}/pull/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

POST /api/projects/

A new project can be created by users with staff privilege (is_staff=True) or customer owners.

  • Description: A new project can be created by users with staff privilege (is_staff=True) or customer owners. Project resource quota is optional. Example of a valid request: .. code-block:: http POST /api/projects/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “name”: “Project A”, “customer”: “http://example.com/api/customers/6c9b01c251c24174a6691a1f894fae31/”, }
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/projects/

To get a list of projects, run **GET** against */api/projects/* as authenticated user.

  • Description: To get a list of projects, run **GET** against */api/projects/* as authenticated user. Here you can also check actual value for project quotas and project usage Note that a user can only see connected projects: - projects that the user owns as a customer - projects where user has any role Supported logic filters: - ?can_manage - return a list of projects where current user is manager or a customer owner; - ?can_admin - return a list of projects where current user is admin;

Parameters

Name Position Description Type
page query string
page_size query string
name query string
customer query string
customer_name query string
customer_native_name query string
customer_abbreviation query string
description query string
created query string
o query string

Responses

200 -

POST /api/openstacktenant-instances/

OpenStack instance permissions

  • Description: OpenStack instance permissions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Staff members can list all available VM instances in any service. - Customer owners can list all VM instances in all the services that belong to any of the customers they own. - Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in. - Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/openstacktenant-instances/

OpenStack instance permissions

  • Description: OpenStack instance permissions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Staff members can list all available VM instances in any service. - Customer owners can list all VM instances in all the services that belong to any of the customers they own. - Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in. - Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Parameters

Name Position Description Type
page query string
page_size query string
customer query string
customer_uuid query string
customer_name query string
customer_native_name query string
customer_abbreviation query string
project query string
project_uuid query string
project_name query string
service_uuid query string
service_name query string
service_settings_name query string
service_settings_uuid query string
name query string
description query string
state query string
uuid query string
tag query string
rtag query string
o query string
tenant_uuid query string

Responses

200 -

GET /api/openstacktenant-security-groups/

Parameters

Name Position Description Type
page query string
page_size query string
name query string
settings_uuid query string
settings query string

Responses

200 -

POST /api/openstack-networks/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/openstack-networks/

Parameters

Name Position Description Type
page query string
page_size query string
customer query string
customer_uuid query string
customer_name query string
customer_native_name query string
customer_abbreviation query string
project query string
project_uuid query string
project_name query string
service_uuid query string
service_name query string
service_settings_name query string
service_settings_uuid query string
name query string
description query string
state query string
uuid query string
tag query string
rtag query string
o query string
tenant_uuid query string
tenant query string

Responses

200 -

POST /api/openstack-tenants/{uuid}/pull/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

GET /api/openstacktenant-security-groups/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

PUT /api/openstack/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/openstack/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/openstack/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/openstack/{uuid}/

To update OpenStack service issue **PUT** or **PATCH** against */api/openstack/<service_uuid>/*

  • Description: To update OpenStack service issue **PUT** or **PATCH** against */api/openstack/<service_uuid>/* as a customer owner. You can update service’s `name` and `available_for_all` fields. Example of a request: .. code-block:: http PUT /api/openstack/c6526bac12b343a9a65c4cd6710666ee/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “name”: “My OpenStack2” } To remove OpenStack service, issue **DELETE** against */api/openstack/<service_uuid>/* as staff user or customer owner.

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstack-security-groups/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/openstack-security-groups/

Parameters

Name Position Description Type
page query string
page_size query string
description query string
name query string
error_message query string
backend_id query string
start_time query string
service_project_link query string
tenant query string
customer query string
customer_uuid query string
customer_name query string
customer_native_name query string
customer_abbreviation query string
project query string
project_uuid query string
project_name query string
service_uuid query string
service_name query string
service_settings_uuid query string
service_settings_name query string
state query string
uuid query string
tag query string
rtag query string
o query string
tenant_uuid query string

Responses

200 -

GET /api/hooks/

Use */api/hooks/* to get a list of all the hooks of any type that a user can see.

  • Description: Use */api/hooks/* to get a list of all the hooks of any type that a user can see.

Parameters

Name Position Description Type
page query string
page_size query string

Responses

200 -

POST /api/users/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/users/

User list is available to all authenticated users. To get a list,

  • Description: User list is available to all authenticated users. To get a list, issue authenticated **GET** request against */api/users/*. User list supports several filters. All filters are set in HTTP query section. Field filters are listed below. All of the filters apart from ?organization are using case insensitive partial matching. Several custom filters are supported: - ?current - filters out user making a request. Useful for getting information about a currently logged in user. - ?civil_number=XXX - filters out users with a specified civil number - ?is_active=True|False - show only active (non-active) users - ?potential - shows users that have common connections to the customers and are potential collaborators. Exclude staff users. Staff users can see all the customers. - ?potential_customer=<Customer UUID> - optionally filter potential users by customer UUID - ?potential_organization=<organization name> - optionally filter potential unconnected users by their organization name (deprecated, use `organization plugin <http://nodeconductor-organization.readthedocs.org/en/stable/>`_ instead) - ?organization_claimed - show only users with a non-empty organization (deprecated, use `organization plugin <http://nodeconductor-organization.readthedocs.org/en/stable/>`_ instead) The user can be created either through automated process on login with SAML token, or through a REST call by a user with staff privilege. Example of a creation request is below. .. code-block:: http POST /api/users/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “username”: “sample-user”, “full_name”: “full name”, “native_name”: “taisnimi”, “job_title”: “senior cleaning manager”, “email”: “example@example.com”, “civil_number”: “12121212”, “phone_number”: “”, “description”: “”, “organization”: “”, } NB! Username field is case-insensitive. So “John” and “john” will be treated as the same user.

Parameters

Name Position Description Type
page query string
page_size query string
full_name query string
native_name query string
organization query string
organization_approved query string
email query string
phone_number query string
description query string
job_title query string
username query string
civil_number query string
is_active query string
registration_method query string
o query string
full_name query string
native_name query string
organization query string
organization_approved query string
email query string
phone_number query string
description query string
job_title query string
username query string
civil_number query string
is_active query string
registration_method query string
o query string
full_name query string
native_name query string
organization query string
organization_approved query string
email query string
phone_number query string
description query string
job_title query string
username query string
civil_number query string
is_active query string
registration_method query string
o query string

Responses

200 -

POST /api/openstacktenant-volumes/{uuid}/attach/

Attach volume to instance

  • Description: Attach volume to instance
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

POST /api/openstacktenant-instances/{uuid}/update_security_groups/

OpenStack instance permissions

  • Description: OpenStack instance permissions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Staff members can list all available VM instances in any service. - Customer owners can list all VM instances in all the services that belong to any of the customers they own. - Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in. - Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

POST /api/hooks-email/

To create new email hook issue **POST** against */api/hooks-email/* as an authenticated user.

  • Description: To create new email hook issue **POST** against */api/hooks-email/* as an authenticated user. You should specify list of event_types or event_groups. Example of a request: .. code-block:: http POST /api/hooks-email/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “event_types”: [“openstack_instance_start_succeeded”], “event_groups”: [“users”], “email”: “test@example.com” } You may temporarily disable hook without deleting it by issuing following **PATCH** request against hook URL: .. code-block:: javascript { “is_active”: “false” }
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/hooks-email/

Parameters

Name Position Description Type
page query string
page_size query string
user query string
is_active query string
last_published query string
email query string
author_uuid query string

Responses

200 -

POST /api/openstacktenant/{uuid}/unlink/

Unlink all related resources, service project link and service itself.

  • Description: Unlink all related resources, service project link and service itself.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

PUT /api/customer-permissions/{id}/

- Customers are connected to users through roles, whereas user may have role “customer owner”.

  • Description: - Customers are connected to users through roles, whereas user may have role “customer owner”. - Each customer may have multiple owners, and each user may own multiple customers. - Staff members can list all available customers and create new customers. - Customer owners can list all customers they own. Customer owners can also create new customers. - Project administrators can list all the customers that own any of the projects they are administrators in. - Project managers can list all the customers that own any of the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
id path string
data body

Responses

200 -

DELETE /api/customer-permissions/{id}/

- Customers are connected to users through roles, whereas user may have role “customer owner”.

  • Description: - Customers are connected to users through roles, whereas user may have role “customer owner”. - Each customer may have multiple owners, and each user may own multiple customers. - Staff members can list all available customers and create new customers. - Customer owners can list all customers they own. Customer owners can also create new customers. - Project administrators can list all the customers that own any of the projects they are administrators in. - Project managers can list all the customers that own any of the projects they are managers in.

Parameters

Name Position Description Type
id path string

Responses

204 -

PATCH /api/customer-permissions/{id}/

- Customers are connected to users through roles, whereas user may have role “customer owner”.

  • Description: - Customers are connected to users through roles, whereas user may have role “customer owner”. - Each customer may have multiple owners, and each user may own multiple customers. - Staff members can list all available customers and create new customers. - Customer owners can list all customers they own. Customer owners can also create new customers. - Project administrators can list all the customers that own any of the projects they are administrators in. - Project managers can list all the customers that own any of the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
id path string
data body

Responses

200 -

GET /api/customer-permissions/{id}/

To remove a user from a customer owner group, delete corresponding connection (**url** field).

  • Description: To remove a user from a customer owner group, delete corresponding connection (**url** field). Successful deletion will return status code 204. .. code-block:: http DELETE /api/customer-permissions/71/ HTTP/1.1 Authorization: Token 95a688962bf68678fd4c8cec4d138ddd9493c93b Host: example.com

Parameters

Name Position Description Type
id path string

Responses

200 -

POST /api/openstack-tenants/{uuid}/create_network/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

PUT /api/openstack-service-project-link/{id}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
id path string
data body

Responses

200 -

DELETE /api/openstack-service-project-link/{id}/

Parameters

Name Position Description Type
id path string

Responses

204 -

PATCH /api/openstack-service-project-link/{id}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
id path string
data body

Responses

200 -

GET /api/openstack-service-project-link/{id}/

To remove a link, issue **DELETE** to URL of the corresponding connection as stuff user or customer owner.

  • Description: To remove a link, issue **DELETE** to URL of the corresponding connection as stuff user or customer owner.

Parameters

Name Position Description Type
id path string

Responses

200 -

POST /api/users/{uuid}/password/

To change a user password, submit a **POST** request to the user’s RPC URL, specifying new password

  • Description: To change a user password, submit a **POST** request to the user’s RPC URL, specifying new password by staff user or account owner. Password is expected to be at least 7 symbols long and contain at least one number and at least one lower or upper case. Example of a valid request: .. code-block:: http POST /api/users/e0c058d06864441fb4f1c40dee5dd4fd/password/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “password”: “nQvqHzeP123”, }
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

GET /api/openstacktenant-floating-ips/

Parameters

Name Position Description Type
page query string
page_size query string
name query string
settings_uuid query string
settings query string
runtime_state query string

Responses

200 -

POST /api/openstacktenant-instances/{uuid}/unassign_floating_ip/

OpenStack instance permissions

  • Description: OpenStack instance permissions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Staff members can list all available VM instances in any service. - Customer owners can list all VM instances in all the services that belong to any of the customers they own. - Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in. - Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.

Parameters

Name Position Description Type
uuid path string

Responses

201 -

POST /api/hooks-push/

To create new push hook issue **POST** against */api/hooks-push/* as an authenticated user.

  • Description: To create new push hook issue **POST** against */api/hooks-push/* as an authenticated user. You should specify list of event_types or event_groups. Example of a request: .. code-block:: http POST /api/hooks-push/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “event_types”: [“resource_start_succeeded”], “event_groups”: [“users”], “type”: “Android” } You may temporarily disable hook without deleting it by issuing following **PATCH** request against hook URL: .. code-block:: javascript { “is_active”: “false” }
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/hooks-push/

Parameters

Name Position Description Type
page query string
page_size query string
user query string
is_active query string
last_published query string
type query string
device_id query string
device_manufacturer query string
device_model query string
token query string
author_uuid query string

Responses

200 -

POST /api/events/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/events/

To get a list of events - run **GET** against */api/events/* as authenticated user. Note that a user can

  • Description: To get a list of events - run **GET** against */api/events/* as authenticated user. Note that a user can only see events connected to objects she is allowed to see. Sorting is supported in ascending and descending order by specifying a field to an **?o=** parameter. By default events are sorted by @timestamp in descending order. Run POST against */api/events/* to create an event. Only users with staff privileges can create events. New event will be emitted with `custom_notification` event type. Request should contain following fields: - level: the level of current event. Following levels are supported: debug, info, warning, error - message: string representation of event message - scope: optional URL, which points to the loggable instance Request example: .. code-block:: javascript POST /api/events/ Accept: application/json Content-Type: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “level”: “info”, “message”: “message#1”, “scope”: “http://example.com/api/customers/9cd869201e1b4158a285427fcd790c1c/” }

Parameters

Name Position Description Type
page query string
page_size query string

Responses

200 -

GET /api/customer-permissions-log/{id}/

Parameters

Name Position Description Type
id path string

Responses

200 -

POST /api/openstack-tenants/{uuid}/create_security_group/

Example of a request:

  • Description: Example of a request: .. code-block:: http { “name”: “Security group name”, “description”: “description”, “rules”: [ { “protocol”: “tcp”, “from_port”: 1, “to_port”: 10, “cidr”: “10.1.1.0/24” }, { “protocol”: “udp”, “from_port”: 10, “to_port”: 8000, “cidr”: “10.1.1.0/24” } ] }
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

POST /api/openstacktenant-volumes/{uuid}/pull/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

GET /api/customer-permissions-log/

Parameters

Name Position Description Type
page query string
page_size query string
role query string
user query string
user_url query string
username query string
full_name query string
native_name query string
o query string
customer query string
customer_url query string

Responses

200 -

GET /api/openstacktenant-flavors/

VM instance flavor is a pre-defined set of virtual hardware parameters that the instance will use:

  • Description: VM instance flavor is a pre-defined set of virtual hardware parameters that the instance will use: CPU, memory, disk size etc. VM instance flavor is not to be confused with VM template – flavor is a set of virtual hardware parameters whereas template is a definition of a system to be installed on this instance.

Parameters

Name Position Description Type
page query string
page_size query string
ram query string
ram__gte query string
ram__lte query string
name query string
settings query string
cores query string
cores__gte query string
cores__lte query string
disk query string
disk__gte query string
disk__lte query string
settings_uuid query string
o query string

Responses

200 -

POST /api/openstack-ip-mappings/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/openstack-ip-mappings/

Parameters

Name Position Description Type
page query string
page_size query string
project query string
private_ip query string
public_ip query string

Responses

200 -

GET /api/openstacktenant-flavors/{uuid}/

VM instance flavor is a pre-defined set of virtual hardware parameters that the instance will use:

  • Description: VM instance flavor is a pre-defined set of virtual hardware parameters that the instance will use: CPU, memory, disk size etc. VM instance flavor is not to be confused with VM template – flavor is a set of virtual hardware parameters whereas template is a definition of a system to be installed on this instance.

Parameters

Name Position Description Type
uuid path string

Responses

200 -

PUT /api/openstack-packages/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

DELETE /api/openstack-packages/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/openstack-packages/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

GET /api/openstack-packages/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/keys/

SSH public keys are injected to VM instances during creation, so that holder of corresponding SSH private key can

  • Description: SSH public keys are injected to VM instances during creation, so that holder of corresponding SSH private key can log in to that instance. SSH public keys are connected to user accounts, whereas the key may belong to one user only, and the user may have multiple SSH keys. Users can only access SSH keys connected to their accounts. Staff users can see all the accounts. Project administrators can select what SSH key will be injected into VM instance during instance provisioning.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/keys/

To get a list of SSH keys, run **GET** against */api/keys/* as authenticated user.

  • Description: To get a list of SSH keys, run **GET** against */api/keys/* as authenticated user. A new SSH key can be created by any active users. Example of a valid request: .. code-block:: http POST /api/keys/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “name”: “ssh_public_key1”, “public_key”: “ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDURXDP5YhOQUYoDuTxJ84DuzqMJYJqJ8+SZT28 TtLm5yBDRLKAERqtlbH2gkrQ3US58gd2r8H9jAmQOydfvgwauxuJUE4eDpaMWupqquMYsYLB5f+vVGhdZbbzfc6DTQ2rY dknWoMoArlG7MvRMA/xQ0ye1muTv+mYMipnd7Z+WH0uVArYI9QBpqC/gpZRRIouQ4VIQIVWGoT6M4Kat5ZBXEa9yP+9du D2C05GX3gumoSAVyAcDHn/xgej9pYRXGha4l+LKkFdGwAoXdV1z79EG1+9ns7wXuqMJFHM2KDpxAizV0GkZcojISvDwuh vEAFdOJcqjyyH4FOGYa8usP1 jhon@example.com”, }

Parameters

Name Position Description Type
page query string
page_size query string
name query string
fingerprint query string
uuid query string
user_uuid query string
o query string

Responses

200 -

GET /api/customers/{uuid}/counters/

Count number of entities related to customer

  • Description: Count number of entities related to customer .. code-block:: javascript { “alerts”: 12, “services”: 1, “projects”: 1, “users”: 3 }

Parameters

Name Position Description Type
uuid path string
page query string
page_size query string

Responses

200 -

GET /api/openstack-images/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

PUT /api/projects/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/projects/{uuid}/

Deletion of a project is done through sending a **DELETE** request to the project instance URI.

  • Description: Deletion of a project is done through sending a **DELETE** request to the project instance URI. Please note, that if a project has connected instances, deletion request will fail with 409 response code. Valid request example (token is user specific): .. code-block:: http DELETE /api/projects/6c9b01c251c24174a6691a1f894fae31/ HTTP/1.1 Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/projects/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/projects/{uuid}/

Optional `field` query parameter (can be list) allows to limit what fields are returned.

  • Description: Optional `field` query parameter (can be list) allows to limit what fields are returned. For example, given request /api/projects/<uuid>/?field=uuid&field=name you get response like this: .. code-block:: javascript { “uuid”: “90bcfe38b0124c9bbdadd617b5d739f5”, “name”: “Default” }

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstacktenant-instances/{uuid}/pull/

OpenStack instance permissions

  • Description: OpenStack instance permissions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Staff members can list all available VM instances in any service. - Customer owners can list all VM instances in all the services that belong to any of the customers they own. - Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in. - Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

GET /api/service-settings/

To get a list of service settings, run **GET** against */api/service-settings/* as an authenticated user.

  • Description: To get a list of service settings, run **GET** against */api/service-settings/* as an authenticated user. Only settings owned by this user or shared settings will be listed. Supported filters are: - ?name=<text> - partial matching used for searching - ?type=<type> - choices: OpenStack, DigitalOcean, Amazon, JIRA, GitLab, Oracle - ?state=<state> - choices: New, Creation Scheduled, Creating, Sync Scheduled, Syncing, In Sync, Erred - ?shared=<bool> - allows to filter shared service settings

Parameters

Name Position Description Type
page query string
page_size query string
name query string
type query string
state query string
shared query string
name query string
type query string
state query string
shared query string

Responses

200 -

GET /api/openstack-flavors/{uuid}/

VM instance flavor is a pre-defined set of virtual hardware parameters that the instance will use:

  • Description: VM instance flavor is a pre-defined set of virtual hardware parameters that the instance will use: CPU, memory, disk size etc. VM instance flavor is not to be confused with VM template – flavor is a set of virtual hardware parameters whereas template is a definition of a system to be installed on this instance.

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstack-packages/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/openstack-packages/

Parameters

Name Position Description Type
page query string
page_size query string
name query string
customer query string
project query string
tenant query string

Responses

200 -

GET /api/openstacktenant-floating-ips/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

GET /api/openstack-flavors/

VM instance flavor is a pre-defined set of virtual hardware parameters that the instance will use:

  • Description: VM instance flavor is a pre-defined set of virtual hardware parameters that the instance will use: CPU, memory, disk size etc. VM instance flavor is not to be confused with VM template – flavor is a set of virtual hardware parameters whereas template is a definition of a system to be installed on this instance.

Parameters

Name Position Description Type
page query string
page_size query string
ram query string
ram__gte query string
ram__lte query string
name query string
settings query string
cores query string
cores__gte query string
cores__lte query string
disk query string
disk__gte query string
disk__lte query string
settings_uuid query string
o query string

Responses

200 -

POST /api/openstacktenant-instances/{uuid}/restart/

OpenStack instance permissions

  • Description: OpenStack instance permissions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Staff members can list all available VM instances in any service. - Customer owners can list all VM instances in all the services that belong to any of the customers they own. - Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in. - Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

DELETE /api/keys/{uuid}/

SSH public keys are injected to VM instances during creation, so that holder of corresponding SSH private key can

  • Description: SSH public keys are injected to VM instances during creation, so that holder of corresponding SSH private key can log in to that instance. SSH public keys are connected to user accounts, whereas the key may belong to one user only, and the user may have multiple SSH keys. Users can only access SSH keys connected to their accounts. Staff users can see all the accounts. Project administrators can select what SSH key will be injected into VM instance during instance provisioning.

Parameters

Name Position Description Type
uuid path string

Responses

204 -

GET /api/keys/{uuid}/

SSH public keys are injected to VM instances during creation, so that holder of corresponding SSH private key can

  • Description: SSH public keys are injected to VM instances during creation, so that holder of corresponding SSH private key can log in to that instance. SSH public keys are connected to user accounts, whereas the key may belong to one user only, and the user may have multiple SSH keys. Users can only access SSH keys connected to their accounts. Staff users can see all the accounts. Project administrators can select what SSH key will be injected into VM instance during instance provisioning.

Parameters

Name Position Description Type
uuid path string

Responses

200 -

GET /api/service-metadata/

To get a list of supported service types, run **GET** against */api/service-metadata/* as an authenticated user.

  • Description: To get a list of supported service types, run **GET** against */api/service-metadata/* as an authenticated user. Use an endpoint from the returned list in order to create new service.

Parameters

Name Position Description Type
page query string
page_size query string

Responses

200 -

POST /api/openstacktenant-volumes/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/openstacktenant-volumes/

Parameters

Name Position Description Type
page query string
page_size query string
customer query string
customer_uuid query string
customer_name query string
customer_native_name query string
customer_abbreviation query string
project query string
project_uuid query string
project_name query string
service_uuid query string
service_name query string
service_settings_name query string
service_settings_uuid query string
name query string
description query string
state query string
uuid query string
tag query string
rtag query string
instance query string
instance_uuid query string
o query string

Responses

200 -

POST /api/openstack-tenants/{uuid}/create_service/

Create non-admin service with credentials from the tenant

  • Description: Create non-admin service with credentials from the tenant
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

GET /api/version/

Retrieve version of the application

  • Description: Retrieve version of the application

Parameters

Name Position Description Type

Responses

200 -

GET /api/resources/

To get a list of supported resources’ actions, run **OPTIONS** against

  • Description: To get a list of supported resources’ actions, run **OPTIONS** against */api/<resource_url>/* as an authenticated user. It is possible to filter and order by resource-specific fields, but this filters will be applied only to resources that support such filtering. For example it is possible to sort resource by ?o=ram, but SugarCRM crms will ignore this ordering, because they do not support such option. Filter resources by type or category ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ There are two query argument to select resources by their type. - Specify explicitly list of resource types, for example: /api/<resource_endpoint>/?resource_type=DigitalOcean.Droplet&resource_type=OpenStack.Instance - Specify category, one of vms, apps, private_clouds or storages for example: /api/<resource_endpoint>/?category=vms Filtering by monitoring fields ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Resources may have SLA attached to it. Example rendering of SLA: .. code-block:: javascript “sla”: { “value”: 95.0 “agreed_value”: 99.0, “period”: “2016-03” } You may filter or order resources by SLA. Default period is current year and month. - Example query for filtering list of resources by actual SLA: /api/<resource_endpoint>/?actual_sla=90&period=2016-02 - Warning! If resource does not have SLA attached to it, it is not included in ordered response. Example query for ordering list of resources by actual SLA: /api/<resource_endpoint>/?o=actual_sla&period=2016-02 Service list is displaying current SLAs for each of the items. By default, SLA period is set to the current month. To change the period pass it as a query argument: - ?period=YYYY-MM - return a list with SLAs for a given month - ?period=YYYY - return a list with SLAs for a given year In all cases all currently running resources are returned, if SLA for the given period is not known or not present, it will be shown as **null** in the response. Resources may have monitoring items attached to it. Example rendering of monitoring items: .. code-block:: javascript “monitoring_items”: { “application_state”: 1 } You may filter or order resources by monitoring item. - Example query for filtering list of resources by installation state: /api/<resource_endpoint>/?monitoring__installation_state=1 - Warning! If resource does not have monitoring item attached to it, it is not included in ordered response. Example query for ordering list of resources by installation state: /api/<resource_endpoint>/?o=monitoring__installation_state Filtering by tags ^^^^^^^^^^^^^^^^^ Resource may have tags attached to it. Example of tags rendering: .. code-block:: javascript “tags”: [ “license-os:centos7”, “os-family:linux”, “license-application:postgresql”, “support:premium” ] Tags filtering: - ?tag=IaaS - filter by full tag name, using method OR. Can be list. - ?rtag=os-family:linux - filter by full tag name, using AND method. Can be list. - ?tag__license-os=centos7 - filter by tags with particular prefix. Tags ordering: - ?o=tag__license-os - order by tag with particular prefix. Instances without given tag will not be returned.

Parameters

Name Position Description Type
page query string
page_size query string

Responses

200 -

POST /api-auth/password/

Api view loosely based on DRF’s default ObtainAuthToken,

  • Description: Api view loosely based on DRF’s default ObtainAuthToken, but with the responses formats and status codes aligned with BasicAuthentication behavior. Valid request example: .. code-block:: http POST /api-auth/password/ HTTP/1.1

Parameters

Name Position Description Type

Responses

201 -

PUT /api/openstacktenant/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/openstacktenant/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/openstacktenant/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/openstacktenant/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstacktenant-instances/{uuid}/assign_floating_ip/

To assign floating IP to the instance, make **POST** request to

  • Description: To assign floating IP to the instance, make **POST** request to */api/openstacktenant-instances/<uuid>/assign_floating_ip/* with link to the floating IP. Make empty POST request to allocate new floating IP and assign it to instance. Note that instance should be in stable state, service project link of the instance should be in stable state and have external network. Example of a valid request: .. code-block:: http POST /api/openstacktenant-instances/6c9b01c251c24174a6691a1f894fae31/assign_floating_ip/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “floating_ip”: “http://example.com/api/floating-ips/5e7d93955f114d88981dea4f32ab673d/” }
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

PUT /api/openstack-networks/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/openstack-networks/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/openstack-networks/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/openstack-networks/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstacktenant-instances/{uuid}/backup/

OpenStack instance permissions

  • Description: OpenStack instance permissions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Staff members can list all available VM instances in any service. - Customer owners can list all VM instances in all the services that belong to any of the customers they own. - Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in. - Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

PUT /api/users/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/users/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/users/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/users/{uuid}/

User fields can be updated by account owner or user with staff privilege (is_staff=True).

  • Description: User fields can be updated by account owner or user with staff privilege (is_staff=True). Following user fields can be updated: - organization (deprecated, use `organization plugin <http://nodeconductor-organization.readthedocs.org/en/stable/>`_ instead) - full_name - native_name - job_title - phone_number - email Can be done by **PUT**ing a new data to the user URI, i.e. */api/users/<UUID>/* by staff user or account owner. Valid request example (token is user specific): .. code-block:: http PUT /api/users/e0c058d06864441fb4f1c40dee5dd4fd/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “email”: “example@example.com”, “organization”: “Bells organization”, }

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstack-floating-ips/{uuid}/pull/

Parameters

Name Position Description Type
uuid path string

Responses

201 -

POST /api/openstack-service-project-link/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/openstack-service-project-link/

In order to be able to provision OpenStack resources, it must first be linked to a project. To do that,

  • Description: In order to be able to provision OpenStack resources, it must first be linked to a project. To do that, **POST** a connection between project and a service to */api/openstack-service-project-link/* as stuff user or customer owner. Example of a request: .. code-block:: http POST /api/openstack-service-project-link/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “project”: “http://example.com/api/projects/e5f973af2eb14d2d8c38d62bcbaccb33/”, “service”: “http://example.com/api/openstack/b0e8a4cbd47c4f9ca01642b7ec033db4/” } To remove a link, issue DELETE to URL of the corresponding connection as stuff user or customer owner.

Parameters

Name Position Description Type
page query string
page_size query string
project query string
service query string
service_uuid query string
customer_uuid query string
project_uuid query string

Responses

200 -

PUT /api/hooks-web/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/hooks-web/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/hooks-web/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/hooks-web/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

GET /api/openstacktenant/{uuid}/managed_resources/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstack-packages/extend/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

POST /api/openstacktenant-service-project-link/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/openstacktenant-service-project-link/

To get a list of connections between a project and an service, run **GET** against service_project_link_url

  • Description: To get a list of connections between a project and an service, run **GET** against service_project_link_url as authenticated user. Note that a user can only see connections of a project where a user has a role. If service has `available_for_all` flag, project-service connections are created automatically. Otherwise, in order to be able to provision resources, service must first be linked to a project. To do that, **POST** a connection between project and a service to service_project_link_url as stuff user or customer owner.

Parameters

Name Position Description Type
page query string
page_size query string
project query string
service query string
service_uuid query string
customer_uuid query string
project_uuid query string

Responses

200 -

GET /api/services/

Filter services by type

  • Description: Filter services by type ^^^^^^^^^^^^^^^^^^^^^^^ It is possible to filter services by their types. Example: /api/services/?service_type=DigitalOcean&service_type=OpenStack

Parameters

Name Position Description Type
page query string
page_size query string

Responses

200 -

POST /api/openstack-security-groups/{uuid}/set_rules/

WARNING! Auto-generated HTML form is wrong for this endpoint. List should be defined as input.

  • Description: WARNING! Auto-generated HTML form is wrong for this endpoint. List should be defined as input. Example: [ { “protocol”: “tcp”, “from_port”: 1, “to_port”: 10, “cidr”: “10.1.1.0/24” } ]
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

POST /api/openstacktenant-instances/{uuid}/start/

OpenStack instance permissions

  • Description: OpenStack instance permissions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Staff members can list all available VM instances in any service. - Customer owners can list all VM instances in all the services that belong to any of the customers they own. - Project administrators can list all VM instances, create new instances and start/stop/restart instances in all the services that are connected to any of the projects they are administrators in. - Project managers can list all VM instances in all the services that are connected to any of the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

POST /api/openstacktenant-volumes/{uuid}/detach/

Detach instance from volume

  • Description: Detach instance from volume
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

POST /api/openstack-tenants/{uuid}/pull_security_groups/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

POST /api/openstack-networks/{uuid}/create_subnet/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

PUT /api/service-settings/{uuid}/

To update service settings, issue a **PUT** or **PATCH** to */api/service-settings/<uuid>/* as a customer owner.

  • Description: To update service settings, issue a **PUT** or **PATCH** to */api/service-settings/<uuid>/* as a customer owner. You are allowed to change name and credentials only. Example of a request: .. code-block:: http PATCH /api/service-settings/9079705c17d64e6aa0af2e619b0e0702/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “username”: “admin”, “password”: “new_secret” }
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

PATCH /api/service-settings/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/service-settings/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstack/{uuid}/link/

To get a list of resources available for import, run **GET** against */<service_endpoint>/link/*

  • Description: To get a list of resources available for import, run **GET** against */<service_endpoint>/link/* as an authenticated user. Optionally project_uuid parameter can be supplied for services requiring it like OpenStack. To import (link with NodeConductor) resource issue **POST** against the same endpoint with resource id. .. code-block:: http POST /api/openstack/08039f01c9794efc912f1689f4530cf0/link/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “backend_id”: “bd5ec24d-9164-440b-a9f2-1b3c807c5df3”, “project”: “http://example.com/api/projects/e5f973af2eb14d2d8c38d62bcbaccb33/” }
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

GET /api/openstack/{uuid}/link/

To get a list of resources available for import, run **GET** against */<service_endpoint>/link/*

  • Description: To get a list of resources available for import, run **GET** against */<service_endpoint>/link/* as an authenticated user. Optionally project_uuid parameter can be supplied for services requiring it like OpenStack. To import (link with NodeConductor) resource issue **POST** against the same endpoint with resource id. .. code-block:: http POST /api/openstack/08039f01c9794efc912f1689f4530cf0/link/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “backend_id”: “bd5ec24d-9164-440b-a9f2-1b3c807c5df3”, “project”: “http://example.com/api/projects/e5f973af2eb14d2d8c38d62bcbaccb33/” }

Parameters

Name Position Description Type
uuid path string

Responses

200 -

PUT /api/openstack-ip-mappings/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/openstack-ip-mappings/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/openstack-ip-mappings/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/openstack-ip-mappings/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstack-tenants/{uuid}/set_quotas/

A quota can be set for a particular tenant. Only staff users can do that.

  • Description: A quota can be set for a particular tenant. Only staff users can do that. In order to set quota submit **POST** request to */api/openstack-tenants/<uuid>/set_quotas/*. The quota values are propagated to the backend. The following quotas are supported. All values are expected to be integers: - instances - maximal number of created instances. - ram - maximal size of ram for allocation. In MiB_. - storage - maximal size of storage for allocation. In MiB_. - vcpu - maximal number of virtual cores for allocation. - security_group_count - maximal number of created security groups. - security_group_rule_count - maximal number of created security groups rules. - volumes - maximal number of created volumes. - snapshots - maximal number of created snapshots. It is possible to update quotas by one or by submitting all the fields in one request. NodeConductor will attempt to update the provided quotas. Please note, that if provided quotas are conflicting with the backend (e.g. requested number of instances is below of the already existing ones), some quotas might not be applied. .. _MiB: http://en.wikipedia.org/wiki/Mebibyte .. _settings: http://nodeconductor.readthedocs.org/en/stable/guide/intro.html#id1 Example of a valid request (token is user specific): .. code-block:: http POST /api/openstack-tenants/c84d653b9ec92c6cbac41c706593e66f567a7fa4/set_quotas/ HTTP/1.1 Content-Type: application/json Accept: application/json Host: example.com { “instances”: 30, “ram”: 100000, “storage”: 1000000, “vcpu”: 30, “security_group_count”: 100, “security_group_rule_count”: 100, “volumes”: 10, “snapshots”: 20 } Response code of a successful request is **202 ACCEPTED**. In case tenant is in a non-stable status, the response would be **409 CONFLICT**. In this case REST client is advised to repeat the request after some time. On successful completion the task will synchronize quotas with the backend.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

POST /api/openstack/{uuid}/unlink/

Unlink all related resources, service project link and service itself.

  • Description: Unlink all related resources, service project link and service itself.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

PUT /api/customers/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/customers/{uuid}/

Deletion of a customer is done through sending a **DELETE** request to the customer instance URI. Please note,

  • Description: Deletion of a customer is done through sending a **DELETE** request to the customer instance URI. Please note, that if a customer has connected projects, deletion request will fail with 409 response code. Valid request example (token is user specific): .. code-block:: http DELETE /api/customers/6c9b01c251c24174a6691a1f894fae31/ HTTP/1.1 Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/customers/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/customers/{uuid}/

Optional `field` query parameter (can be list) allows to limit what fields are returned.

  • Description: Optional `field` query parameter (can be list) allows to limit what fields are returned. For example, given request /api/customers/<uuid>/?field=uuid&field=name you get response like this: .. code-block:: javascript { “uuid”: “90bcfe38b0124c9bbdadd617b5d739f5”, “name”: “Ministry of Bells” }

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/customers/

A new customer can only be created by users with staff privilege (is_staff=True).

  • Description: A new customer can only be created by users with staff privilege (is_staff=True). Example of a valid request: .. code-block:: http POST /api/customers/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “name”: “Customer A”, “native_name”: “Customer A”, “abbreviation”: “CA”, “contact_details”: “Luhamaa 28, 10128 Tallinn”, }
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/customers/

To get a list of customers, run GET against */api/customers/* as authenticated user. Note that a user can

  • Description: To get a list of customers, run GET against */api/customers/* as authenticated user. Note that a user can only see connected customers: - customers that the user owns - customers that have a project where user has a role Staff also can filter customers by user UUID, for example /api/customers/?user_uuid=<UUID>

Parameters

Name Position Description Type
page query string
page_size query string
name query string
abbreviation query string
contact_details query string
native_name query string
registration_code query string
o query string

Responses

200 -

POST /api/openstacktenant-snapshots/{uuid}/pull/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

PUT /api/customers/{uuid}/image/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/customers/{uuid}/image/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/customers/{uuid}/image/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/customers/{uuid}/image/

Parameters

Name Position Description Type
uuid path string
page query string
page_size query string

Responses

200 -

GET /api/events/count/

To get a count of events - run **GET** against */api/events/count/* as authenticated user.

  • Description: To get a count of events - run **GET** against */api/events/count/* as authenticated user. Endpoint support same filters as events list. Response example: .. code-block:: javascript {“count”: 12321}

Parameters

Name Position Description Type

Responses

200 -

POST /api/openstacktenant-volumes/{uuid}/snapshot/

Create snapshot from volume

  • Description: Create snapshot from volume
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

POST /api/openstack-security-groups/{uuid}/pull/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

POST /api/openstack-subnets/{uuid}/pull/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

201 -

GET /api/openstacktenant-images/

Parameters

Name Position Description Type
page query string
page_size query string
name query string
settings_uuid query string
settings query string

Responses

200 -

PUT /api/openstacktenant-volumes/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/openstacktenant-volumes/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/openstacktenant-volumes/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/openstacktenant-volumes/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/openstacktenant/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/openstacktenant/

To list all services without regard to its type, run **GET** against */api/services/* as an authenticated user.

  • Description: To list all services without regard to its type, run **GET** against */api/services/* as an authenticated user. To list services of specific type issue **GET** to specific endpoint from a list above as a customer owner. Individual endpoint used for every service type. To create a service, issue a **POST** to specific endpoint from a list above as a customer owner. Individual endpoint used for every service type. You can create service based on shared service settings. Example: .. code-block:: http POST /api/digitalocean/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “name”: “Common DigitalOcean”, “customer”: “http://example.com/api/customers/1040561ca9e046d2b74268600c7e1105/”, “settings”: “http://example.com/api/service-settings/93ba615d6111466ebe3f792669059cb4/” } Or provide your own credentials. Example: .. code-block:: http POST /api/oracle/ HTTP/1.1 Content-Type: application/json Accept: application/json Authorization: Token c84d653b9ec92c6cbac41c706593e66f567a7fa4 Host: example.com { “name”: “My Oracle”, “customer”: “http://example.com/api/customers/1040561ca9e046d2b74268600c7e1105/”, “backend_url”: “https://oracle.example.com:7802/em”, “username”: “admin”, “password”: “secret” }

Parameters

Name Position Description Type
page query string
page_size query string
name query string
project_uuid query string
customer query string
project query string
settings query string
shared query string
type query string
tag query string
rtag query string

Responses

200 -

GET /api/openstack/{uuid}/managed_resources/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

GET /api/openstack-images/

Parameters

Name Position Description Type
page query string
page_size query string
name query string
settings_uuid query string
settings query string

Responses

200 -

PUT /api/openstack-security-groups/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/openstack-security-groups/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/openstack-security-groups/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/openstack-security-groups/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

GET /api/openstacktenant-images/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -

POST /api/customer-permissions/

- Customers are connected to users through roles, whereas user may have role “customer owner”.

  • Description: - Customers are connected to users through roles, whereas user may have role “customer owner”. - Each customer may have multiple owners, and each user may own multiple customers. - Staff members can list all available customers and create new customers. - Customer owners can list all customers they own. Customer owners can also create new customers. - Project administrators can list all the customers that own any of the projects they are administrators in. - Project managers can list all the customers that own any of the projects they are managers in.
  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
data body

Responses

201 -

GET /api/customer-permissions/

Each customer is associated with a group of users that represent customer owners. The link is maintained

  • Description: Each customer is associated with a group of users that represent customer owners. The link is maintained through **api/customer-permissions/** endpoint. To list all visible links, run a **GET** query against a list. Response will contain a list of customer owners and their brief data. To add a new user to the customer, **POST** a new relationship to **customer-permissions** endpoint: .. code-block:: http POST /api/customer-permissions/ HTTP/1.1 Accept: application/json Authorization: Token 95a688962bf68678fd4c8cec4d138ddd9493c93b Host: example.com { “customer”: “http://example.com/api/customers/6c9b01c251c24174a6691a1f894fae31/”, “role”: “owner”, “user”: “http://example.com/api/users/82cec6c8e0484e0ab1429412fe4194b7/” }

Parameters

Name Position Description Type
page query string
page_size query string
role query string
user query string
user_url query string
username query string
full_name query string
native_name query string
o query string
customer query string
customer_url query string

Responses

200 -

PUT /api/openstack-tenants/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

DELETE /api/openstack-tenants/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

204 -

PATCH /api/openstack-tenants/{uuid}/

  • Consumes: [u’application/json’]

Parameters

Name Position Description Type
uuid path string
data body

Responses

200 -

GET /api/openstack-tenants/{uuid}/

Parameters

Name Position Description Type
uuid path string

Responses

200 -