Skip to content

Marketplace Provider Resource Projects

Operations Summary

Method Endpoint Description
Core CRUD
GET /api/marketplace-provider-resource-projects/ List Marketplace Provider Resource Projects
GET /api/marketplace-provider-resource-projects/{uuid}/ Retrieve
PUT /api/marketplace-provider-resource-projects/{uuid}/ Update
PATCH /api/marketplace-provider-resource-projects/{uuid}/ Partial Update
Permissions & Users
GET /api/marketplace-provider-resource-projects/{uuid}/list_users/ List users and their roles in a scope
POST /api/marketplace-provider-resource-projects/{uuid}/add_user/ Grant a role to a user
POST /api/marketplace-provider-resource-projects/{uuid}/delete_user/ Revoke a role from a user
POST /api/marketplace-provider-resource-projects/{uuid}/update_user/ Update a user's role expiration
Other Actions
POST /api/marketplace-provider-resource-projects/{uuid}/set_backend_id/ Set backend id
POST /api/marketplace-provider-resource-projects/{uuid}/set_state_erred/ Set state erred
POST /api/marketplace-provider-resource-projects/{uuid}/set_state_ok/ Set state ok

Core CRUD

List Marketplace Provider Resource Projects

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-resource-projects/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.marketplace_provider_resource_projects import marketplace_provider_resource_projects_list # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = marketplace_provider_resource_projects_list.sync(client=client)

for item in response:
    print(item)
  1. API Source: marketplace_provider_resource_projects_list
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import { marketplaceProviderResourceProjectsList } from 'waldur-js-client';

try {
  const response = await marketplaceProviderResourceProjectsList({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Description
name string
page integer A page number within the paginated result set.
page_size integer Number of results to return per page.
resource string (uri) Resource URL
resource_uuid string (uuid) Resource UUID

200 -

The response body is an array of objects, where each object has the following structure:

Field Type Description
uuid string (uuid)
resource string (uuid)
name string
description string
backend_id string
state string
error_message string
limits object (free-form) Dictionary mapping component types to quota values. Same format as Resource.limits.
current_usages object (free-form) Dictionary mapping component types to current usage amounts. Populated by backend synchronization.
resource_uuid string (uuid)
resource_name string
created string (date-time)
modified string (date-time)
is_removed boolean
removed_date string (date-time)
removed_by integer
removed_by_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
termination_metadata object (free-form)

Retrieve

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-resource-projects/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.marketplace_provider_resource_projects import marketplace_provider_resource_projects_retrieve # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = marketplace_provider_resource_projects_retrieve.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client
)

print(response)
  1. API Source: marketplace_provider_resource_projects_retrieve
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { marketplaceProviderResourceProjectsRetrieve } from 'waldur-js-client';

try {
  const response = await marketplaceProviderResourceProjectsRetrieve({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)

200 -

Field Type Description
uuid string (uuid)
resource string (uuid)
name string
description string
backend_id string
state string
error_message string
limits object (free-form) Dictionary mapping component types to quota values. Same format as Resource.limits.
current_usages object (free-form) Dictionary mapping component types to current usage amounts. Populated by backend synchronization.
resource_uuid string (uuid)
resource_name string
created string (date-time)
modified string (date-time)
is_removed boolean
removed_date string (date-time)
removed_by integer
removed_by_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
termination_metadata object (free-form)

Update

1
2
3
4
5
6
http \
  PUT \
  https://api.example.com/api/marketplace-provider-resource-projects/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
  Authorization:"Token YOUR_API_TOKEN" \
  resource="a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
  name="my-awesome-marketplace-provider-resource-project"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.resource_project_request import ResourceProjectRequest # (1)
from waldur_api_client.api.marketplace_provider_resource_projects import marketplace_provider_resource_projects_update # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = ResourceProjectRequest(
    resource="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    name="my-awesome-marketplace-provider-resource-project"
)
response = marketplace_provider_resource_projects_update.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

print(response)
  1. Model Source: ResourceProjectRequest
  2. API Source: marketplace_provider_resource_projects_update
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import { marketplaceProviderResourceProjectsUpdate } from 'waldur-js-client';

try {
  const response = await marketplaceProviderResourceProjectsUpdate({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "resource": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "name": "my-awesome-marketplace-provider-resource-project"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required Description
resource string (uuid)
name string
description string
limits object (free-form) Dictionary mapping component types to quota values. Same format as Resource.limits.

200 -

Field Type Description
uuid string (uuid)
resource string (uuid)
name string
description string
backend_id string
state string
error_message string
limits object (free-form) Dictionary mapping component types to quota values. Same format as Resource.limits.
current_usages object (free-form) Dictionary mapping component types to current usage amounts. Populated by backend synchronization.
resource_uuid string (uuid)
resource_name string
created string (date-time)
modified string (date-time)
is_removed boolean
removed_date string (date-time)
removed_by integer
removed_by_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
termination_metadata object (free-form)

Partial Update

1
2
3
4
http \
  PATCH \
  https://api.example.com/api/marketplace-provider-resource-projects/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.patched_resource_project_request import PatchedResourceProjectRequest # (1)
from waldur_api_client.api.marketplace_provider_resource_projects import marketplace_provider_resource_projects_partial_update # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = PatchedResourceProjectRequest()
response = marketplace_provider_resource_projects_partial_update.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

print(response)
  1. Model Source: PatchedResourceProjectRequest
  2. API Source: marketplace_provider_resource_projects_partial_update
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { marketplaceProviderResourceProjectsPartialUpdate } from 'waldur-js-client';

try {
  const response = await marketplaceProviderResourceProjectsPartialUpdate({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required Description
resource string (uuid)
name string
description string
limits object (free-form) Dictionary mapping component types to quota values. Same format as Resource.limits.

200 -

Field Type Description
uuid string (uuid)
resource string (uuid)
name string
description string
backend_id string
state string
error_message string
limits object (free-form) Dictionary mapping component types to quota values. Same format as Resource.limits.
current_usages object (free-form) Dictionary mapping component types to current usage amounts. Populated by backend synchronization.
resource_uuid string (uuid)
resource_name string
created string (date-time)
modified string (date-time)
is_removed boolean
removed_date string (date-time)
removed_by integer
removed_by_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
termination_metadata object (free-form)

Permissions & Users

List users and their roles in a scope

Retrieves a list of users who have a role within a specific scope (e.g., a project or an organization). The list can be filtered by user details or role.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-resource-projects/a1b2c3d4-e5f6-7890-abcd-ef1234567890/list_users/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.user_role_details_field_enum import UserRoleDetailsFieldEnum # (1)
from waldur_api_client.models.user_role_details_o_enum import UserRoleDetailsOEnum # (2)
from waldur_api_client.api.marketplace_provider_resource_projects import marketplace_provider_resource_projects_list_users_list # (3)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = marketplace_provider_resource_projects_list_users_list.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client
)

for item in response:
    print(item)
  1. Model Source: UserRoleDetailsFieldEnum
  2. Model Source: UserRoleDetailsOEnum
  3. API Source: marketplace_provider_resource_projects_list_users_list
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { marketplaceProviderResourceProjectsListUsersList } from 'waldur-js-client';

try {
  const response = await marketplaceProviderResourceProjectsListUsersList({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Name Type Description
field array Fields to include in response
full_name string User full name
native_name string User native name
o array Ordering fields
page integer A page number within the paginated result set.
page_size integer Number of results to return per page.
role string (uuid) Role UUID or name
search_string string Search string for user
user string (uuid) User UUID
user_slug string User slug
user_url string User URL
username string User username

200 -

The response body is an array of objects, where each object has the following structure:

Field Type Description
uuid string (uuid)
created string (date-time)
expiration_time string (date-time)
role_name string
role_uuid string (uuid)
user_email string (email)
user_full_name string
user_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
user_uuid string (uuid)
user_image string (uri)
created_by_full_name string
created_by_uuid string (uuid)

Grant a role to a user

Assigns a specific role to a user within the current scope. An optional expiration time for the role can be set.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/marketplace-provider-resource-projects/a1b2c3d4-e5f6-7890-abcd-ef1234567890/add_user/ \
  Authorization:"Token YOUR_API_TOKEN" \
  role="string-value" \
  user="a1b2c3d4-e5f6-7890-abcd-ef1234567890"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.user_role_create_request import UserRoleCreateRequest # (1)
from waldur_api_client.api.marketplace_provider_resource_projects import marketplace_provider_resource_projects_add_user # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = UserRoleCreateRequest(
    role="string-value",
    user="a1b2c3d4-e5f6-7890-abcd-ef1234567890"
)
response = marketplace_provider_resource_projects_add_user.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

print(response)
  1. Model Source: UserRoleCreateRequest
  2. API Source: marketplace_provider_resource_projects_add_user
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import { marketplaceProviderResourceProjectsAddUser } from 'waldur-js-client';

try {
  const response = await marketplaceProviderResourceProjectsAddUser({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "role": "string-value",
    "user": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required
role string
user string (uuid)
expiration_time string (date-time)

201 -

Field Type
expiration_time string (date-time)

400 - Validation error, for example when trying to add a user to a terminated project.


Revoke a role from a user

Removes a specific role from a user within the current scope. This effectively revokes their permissions associated with that role.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/marketplace-provider-resource-projects/a1b2c3d4-e5f6-7890-abcd-ef1234567890/delete_user/ \
  Authorization:"Token YOUR_API_TOKEN" \
  role="string-value" \
  user="a1b2c3d4-e5f6-7890-abcd-ef1234567890"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.user_role_delete_request import UserRoleDeleteRequest # (1)
from waldur_api_client.api.marketplace_provider_resource_projects import marketplace_provider_resource_projects_delete_user # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = UserRoleDeleteRequest(
    role="string-value",
    user="a1b2c3d4-e5f6-7890-abcd-ef1234567890"
)
response = marketplace_provider_resource_projects_delete_user.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

print(response)
  1. Model Source: UserRoleDeleteRequest
  2. API Source: marketplace_provider_resource_projects_delete_user
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import { marketplaceProviderResourceProjectsDeleteUser } from 'waldur-js-client';

try {
  const response = await marketplaceProviderResourceProjectsDeleteUser({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "role": "string-value",
    "user": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required
role string
user string (uuid)
expiration_time string (date-time)

200 - Role revoked successfully.


Update a user's role expiration

Updates the expiration time for a user's existing role in the current scope. This is useful for extending or shortening the duration of a permission. To make a role permanent, set expiration_time to null.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/marketplace-provider-resource-projects/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_user/ \
  Authorization:"Token YOUR_API_TOKEN" \
  role="string-value" \
  user="a1b2c3d4-e5f6-7890-abcd-ef1234567890"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.user_role_update_request import UserRoleUpdateRequest # (1)
from waldur_api_client.api.marketplace_provider_resource_projects import marketplace_provider_resource_projects_update_user # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = UserRoleUpdateRequest(
    role="string-value",
    user="a1b2c3d4-e5f6-7890-abcd-ef1234567890"
)
response = marketplace_provider_resource_projects_update_user.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

print(response)
  1. Model Source: UserRoleUpdateRequest
  2. API Source: marketplace_provider_resource_projects_update_user
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import { marketplaceProviderResourceProjectsUpdateUser } from 'waldur-js-client';

try {
  const response = await marketplaceProviderResourceProjectsUpdateUser({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "role": "string-value",
    "user": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required
role string
user string (uuid)
expiration_time string (date-time)

200 -

Field Type
expiration_time string (date-time)

Other Actions

Set backend id

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-provider-resource-projects/a1b2c3d4-e5f6-7890-abcd-ef1234567890/set_backend_id/ \
  Authorization:"Token YOUR_API_TOKEN" \
  backend_id="ext-a1b2c3d4"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.resource_project_backend_id_request import ResourceProjectBackendIdRequest # (1)
from waldur_api_client.api.marketplace_provider_resource_projects import marketplace_provider_resource_projects_set_backend_id # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = ResourceProjectBackendIdRequest(
    backend_id="ext-a1b2c3d4"
)
response = marketplace_provider_resource_projects_set_backend_id.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

print(response)
  1. Model Source: ResourceProjectBackendIdRequest
  2. API Source: marketplace_provider_resource_projects_set_backend_id
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import { marketplaceProviderResourceProjectsSetBackendId } from 'waldur-js-client';

try {
  const response = await marketplaceProviderResourceProjectsSetBackendId({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "backend_id": "ext-a1b2c3d4"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required
backend_id string

200 -

Field Type
status string

Set state erred

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-resource-projects/a1b2c3d4-e5f6-7890-abcd-ef1234567890/set_state_erred/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.resource_project_error_message_request import ResourceProjectErrorMessageRequest # (1)
from waldur_api_client.api.marketplace_provider_resource_projects import marketplace_provider_resource_projects_set_state_erred # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = ResourceProjectErrorMessageRequest()
response = marketplace_provider_resource_projects_set_state_erred.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

print(response)
  1. Model Source: ResourceProjectErrorMessageRequest
  2. API Source: marketplace_provider_resource_projects_set_state_erred
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { marketplaceProviderResourceProjectsSetStateErred } from 'waldur-js-client';

try {
  const response = await marketplaceProviderResourceProjectsSetStateErred({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required Description
error_message string Free-form description of why the project transitioned to Erred.
Constraints: default: ``

200 -

Field Type
status string

Set state ok

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-resource-projects/a1b2c3d4-e5f6-7890-abcd-ef1234567890/set_state_ok/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.marketplace_provider_resource_projects import marketplace_provider_resource_projects_set_state_ok # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = marketplace_provider_resource_projects_set_state_ok.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client
)

print(response)
  1. API Source: marketplace_provider_resource_projects_set_state_ok
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { marketplaceProviderResourceProjectsSetStateOk } from 'waldur-js-client';

try {
  const response = await marketplaceProviderResourceProjectsSetStateOk({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)

200 -

Field Type
status string