Marketplace Service Providers
Operations Summary
List course project accounts for a service provider
Returns a paginated list of course project accounts that have access to resources managed by the provider.
This includes:
- Projects with active resources of the service provider.
- Course accounts with non-blank users.
List customer projects of a service provider
Returns a paginated list of projects belonging to a specific customer that have consumed resources from the specified service provider.
HTTPie Python TypeScript Path Parameters Query Parameters Responses
http \
GET \
https://api.example.com/api/marketplace-service-providers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/customer_projects/ \
Authorization:"Token YOUR_API_TOKEN" \
project_customer_uuid == "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
1
2
3
4
5
6
7
8
9
10
11
12
13
14 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.marketplace_service_providers import marketplace_service_providers_customer_projects_list # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = marketplace_service_providers_customer_projects_list . sync (
service_provider_uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client ,
project_customer_uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
)
for item in response :
print ( item )
API Source: marketplace_service_providers_customer_projects_list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import { marketplaceServiceProvidersCustomerProjectsList } from 'waldur-js-client' ;
try {
const response = await marketplaceServiceProvidersCustomerProjectsList ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"service_provider_uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
query : {
"project_customer_uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
service_provider_uuid
string (uuid)
✓
Name
Type
Required
Description
backend_id
string
can_admin
boolean
Return a list of projects where current user is admin.
can_manage
boolean
Return a list of projects where current user is manager or a customer owner.
conceal_finished_projects
boolean
Conceal finished projects
created
string (date-time)
Created after
customer
array
Multiple values may be separated by commas.
customer_abbreviation
string
Customer abbreviation
customer_name
string
Customer name
customer_native_name
string
Customer native name
description
string
Description
field
array
is_removed
boolean
Is removed
modified
string (date-time)
Modified after
name
string
Name
name_exact
string
Name (exact)
o
array
Ordering
page
integer
A page number within the paginated result set.
page_size
integer
Number of results to return per page.
project_customer_uuid
string (uuid)
✓
UUID of the customer to filter projects by.
query
string
Filter by name, slug, UUID, backend ID or resource effective ID
slug
string
Slug
200 -
The response body is an array of objects, where each object has the following structure:
Field
Type
Description
uuid
string (uuid)
name
string
description
string
end_date
string (date)
The date is inclusive. Once reached, all project resource will be scheduled for termination.
resources_count
integer
users_count
integer
billing_price_estimate
any
List customers of a service provider
Returns a paginated list of customers who have consumed resources from the specified service provider.
HTTPie Python TypeScript Path Parameters Query Parameters Responses
http \
GET \
https://api.example.com/api/marketplace-service-providers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/customers/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12
13 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.marketplace_service_providers import marketplace_service_providers_customers_list # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = marketplace_service_providers_customers_list . sync (
service_provider_uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client
)
for item in response :
print ( item )
API Source: marketplace_service_providers_customers_list
1
2
3
4
5
6
7
8
9
10
11
12
13 import { marketplaceServiceProvidersCustomersList } from 'waldur-js-client' ;
try {
const response = await marketplaceServiceProvidersCustomersList ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"service_provider_uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
service_provider_uuid
string (uuid)
✓
Name
Type
Description
abbreviation
string
Abbreviation
agreement_number
string
archived
boolean
backend_id
string
contact_details
string
Contact details
field
array
name
string
Name
name_exact
string
Name (exact)
native_name
string
Native name
organization_group_name
string
Organization group name
organization_group_uuid
array
Organization group UUID
owned_by_current_user
boolean
Return a list of customers where current user is owner.
page
integer
A page number within the paginated result set.
page_size
integer
Number of results to return per page.
query
string
Filter by name, native name, abbreviation, domain, UUID, registration code or agreement number
registration_code
string
200 -
The response body is an array of objects, where each object has the following structure:
Field
Type
uuid
string (uuid)
name
string
slug
string
abbreviation
string
phone_number
string
email
string (email)
payment_profiles
array of objects
payment_profiles.uuid
string (uuid)
payment_profiles.url
string (uri)
payment_profiles.name
string
payment_profiles.organization_uuid
string (uuid)
payment_profiles.organization
string (uri)
payment_profiles.attributes
object
payment_profiles.attributes.end_date
string
payment_profiles.attributes.agreement_number
string
payment_profiles.attributes.contract_sum
integer
payment_profiles.payment_type
string
payment_profiles.payment_type_display
string
payment_profiles.is_active
boolean
billing_price_estimate
any
projects_count
integer
users_count
integer
projects
array of objects
projects.uuid
string (uuid)
projects.name
string
projects.image
string (uri)
users
array of objects
users.uuid
string (uuid)
users.full_name
string
users.email
string (email)
users.image
string (uri)
List SSH keys of a service provider
Returns a paginated list of SSH public keys for all users who have consumed resources from the specified service provider.
List service providers
Returns a paginated list of service providers.
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.
List offerings of a service provider
Returns a paginated list of all billable, shared offerings provided by the specified service provider.
HTTPie Python TypeScript Path Parameters Query Parameters Responses
http \
GET \
https://api.example.com/api/marketplace-service-providers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/offerings/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12
13 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.marketplace_service_providers import marketplace_service_providers_offerings_list # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = marketplace_service_providers_offerings_list . sync (
service_provider_uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client
)
for item in response :
print ( item )
API Source: marketplace_service_providers_offerings_list
1
2
3
4
5
6
7
8
9
10
11
12
13 import { marketplaceServiceProvidersOfferingsList } from 'waldur-js-client' ;
try {
const response = await marketplaceServiceProvidersOfferingsList ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"service_provider_uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
service_provider_uuid
string (uuid)
✓
Name
Type
Description
accessible_via_calls
boolean
Accessible via calls
allowed_customer_uuid
string (uuid)
Allowed customer UUID
attributes
string
Offering attributes (JSON)
billable
boolean
Billable
can_create_offering_user
boolean
category_group_uuid
string (uuid)
Category group UUID
category_uuid
string (uuid)
Category UUID
created
string (date-time)
Created after
customer
string
Customer URL
customer_uuid
string (uuid)
Customer UUID
description
string
Description contains
field
array
has_active_terms_of_service
boolean
Has Active Terms of Service
has_terms_of_service
boolean
Has Terms of Service
keyword
string
Keyword
modified
string (date-time)
Modified after
name
string
Name
name_exact
string
Name (exact)
o
array
Ordering
organization_group_uuid
array
Organization group UUID
page
integer
A page number within the paginated result set.
page_size
integer
Number of results to return per page.
parent_uuid
string (uuid)
Parent offering UUID
project_uuid
string (uuid)
Project UUID
query
string
Search by offering name, slug or description
resource_customer_uuid
string (uuid)
Resource customer UUID
resource_project_uuid
string (uuid)
Resource project UUID
scope_uuid
string
Scope UUID
service_manager_uuid
string (uuid)
Service manager UUID
shared
boolean
Shared
state
array
Offering state
type
array
Offering type
user_has_consent
boolean
User Has Consent
user_has_offering_user
boolean
User Has Offering User
uuid_list
string
Comma-separated offering UUIDs
200 -
The response body is an array of objects, where each object has the following structure:
Field
Type
Description
uuid
string (uuid)
customer_uuid
string (uuid)
name
string
slug
string
category_title
string
type
string
state
any
resources_count
integer
billing_price_estimate
any
components
array of objects
components.uuid
string (uuid)
components.billing_type
string
Enum: fixed, usage, limit, one, few
components.type
string
Unique internal name of the measured unit, for example floating_ip.
components.name
string
Display name for the measured unit, for example, Floating IP.
components.description
string
components.measured_unit
string
Unit of measurement, for example, GB.
components.unit_factor
integer
The conversion factor from backend units to measured_unit
components.limit_period
any
components.limit_amount
integer
components.article_code
string
components.max_value
integer
components.min_value
integer
components.max_available_limit
integer
components.is_boolean
boolean
components.default_limit
integer
components.factor
integer
components.is_builtin
boolean
components.is_prepaid
boolean
components.overage_component
string (uuid)
components.min_prepaid_duration
integer
components.max_prepaid_duration
integer
plans
array of objects
plans.url
string (uri)
plans.uuid
string (uuid)
plans.name
string
plans.description
string
plans.article_code
string
plans.max_amount
integer
Maximum number of plans that could be active. Plan is disabled when maximum amount is reached.
plans.archived
boolean
Forbids creation of new resources.
plans.is_active
boolean
plans.unit_price
string (decimal)
plans.unit
string
Enum: month, quarter, half_month, day, hour, quantity
plans.init_price
number (double)
plans.switch_price
number (double)
plans.backend_id
string
plans.organization_groups
array of objects
plans.organization_groups.uuid
string (uuid)
plans.organization_groups.url
string (uri)
plans.organization_groups.name
string
plans.organization_groups.parent_uuid
string (uuid)
plans.organization_groups.parent_name
string
plans.organization_groups.parent
string (uri)
plans.organization_groups.customers_count
integer
plans.components
array of objects
plans.components.type
string
Unique internal name of the measured unit, for example floating_ip.
plans.components.name
string
Display name for the measured unit, for example, Floating IP.
plans.components.measured_unit
string
Unit of measurement, for example, GB.
plans.components.amount
integer
plans.components.price
string (decimal)
plans.components.future_price
string (decimal)
plans.components.discount_threshold
integer
Minimum amount to be eligible for discount.
plans.components.discount_rate
integer
Discount rate in percentage.
plans.prices
object (free-form)
plans.future_prices
object (free-form)
plans.quotas
object (free-form)
plans.resources_count
integer
plans.plan_type
string
plans.minimal_price
number (double)
options
any
Fields describing resource provision form.
resource_options
any
Fields describing resource report form.
secret_options
any
thumbnail
string (uri)
List project permissions of a service provider
Returns a paginated list of project permissions for all projects that have consumed resources from the specified service provider.
List project service accounts for a service provider
Returns a paginated list of project service accounts that have access to resources managed by the provider.
This includes:
- Projects with active resources of the service provider.
- Service accounts with non-blank usernames.
List projects of a service provider
Returns a paginated list of all projects that have consumed resources from the specified service provider.
Retrieve a service provider
Returns details of a specific service provider.
Get service provider revenue
Returns monthly revenue data for the last year for the service provider.
List customers with robot accounts
Returns a paginated list of customers who have robot accounts for resources managed by this service provider.
List projects with robot accounts
Returns a paginated list of projects which have robot accounts for resources managed by this service provider.
Get service provider statistics
Returns various statistics for the service provider, such as number of active campaigns, customers, and resources.
List customers of a specific user within a service provider's scope
Returns a paginated list of customers that a specified user has access to within the scope of a service provider.
This includes:
- Customers where the user has direct permissions.
- Customers with projects where the user has project roles.
- Customers related to the service provider's resources that the user can access.
HTTPie Python TypeScript Path Parameters Query Parameters Responses
http \
GET \
https://api.example.com/api/marketplace-service-providers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/user_customers/ \
Authorization:"Token YOUR_API_TOKEN" \
user_uuid == "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
1
2
3
4
5
6
7
8
9
10
11
12
13
14 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.marketplace_service_providers import marketplace_service_providers_user_customers_list # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = marketplace_service_providers_user_customers_list . sync (
service_provider_uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client ,
user_uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
)
for item in response :
print ( item )
API Source: marketplace_service_providers_user_customers_list
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import { marketplaceServiceProvidersUserCustomersList } from 'waldur-js-client' ;
try {
const response = await marketplaceServiceProvidersUserCustomersList ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"service_provider_uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
query : {
"user_uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
service_provider_uuid
string (uuid)
✓
Name
Type
Required
Description
abbreviation
string
Abbreviation
agreement_number
string
archived
boolean
backend_id
string
contact_details
string
Contact details
field
array
name
string
Name
name_exact
string
Name (exact)
native_name
string
Native name
organization_group_name
string
Organization group name
organization_group_uuid
array
Organization group UUID
owned_by_current_user
boolean
Return a list of customers where current user is owner.
page
integer
A page number within the paginated result set.
page_size
integer
Number of results to return per page.
query
string
Filter by name, native name, abbreviation, domain, UUID, registration code or agreement number
registration_code
string
user_uuid
string (uuid)
✓
UUID of the user to get related customers for.
200 -
The response body is an array of objects, where each object has the following structure:
Field
Type
uuid
string (uuid)
name
string
slug
string
abbreviation
string
phone_number
string
email
string (email)
payment_profiles
array of objects
payment_profiles.uuid
string (uuid)
payment_profiles.url
string (uri)
payment_profiles.name
string
payment_profiles.organization_uuid
string (uuid)
payment_profiles.organization
string (uri)
payment_profiles.attributes
object
payment_profiles.attributes.end_date
string
payment_profiles.attributes.agreement_number
string
payment_profiles.attributes.contract_sum
integer
payment_profiles.payment_type
string
payment_profiles.payment_type_display
string
payment_profiles.is_active
boolean
billing_price_estimate
any
projects_count
integer
users_count
integer
projects
array of objects
projects.uuid
string (uuid)
projects.name
string
projects.image
string (uri)
users
array of objects
users.uuid
string (uuid)
users.full_name
string
users.email
string (email)
users.image
string (uri)
List users of a service provider
Returns a paginated list of all users who have consumed resources from the specified service provider.
HTTPie Python TypeScript Path Parameters Query Parameters Responses
http \
GET \
https://api.example.com/api/marketplace-service-providers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/users/ \
Authorization:"Token YOUR_API_TOKEN"
1
2
3
4
5
6
7
8
9
10
11
12
13 from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.marketplace_service_providers import marketplace_service_providers_users_list # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = marketplace_service_providers_users_list . sync (
service_provider_uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client
)
for item in response :
print ( item )
API Source: marketplace_service_providers_users_list
1
2
3
4
5
6
7
8
9
10
11
12
13 import { marketplaceServiceProvidersUsersList } from 'waldur-js-client' ;
try {
const response = await marketplaceServiceProvidersUsersList ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"service_provider_uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Required
service_provider_uuid
string (uuid)
✓
Name
Type
Description
agreement_date
string (date-time)
Agreement date after
civil_number
string
customer_uuid
string (uuid)
Customer UUID
date_joined
string (date-time)
Date joined after
description
string
email
string
Email
field
array
full_name
string
Full name
is_active
boolean
Is active
is_staff
boolean
Is staff
is_support
boolean
Is support
job_title
string
Job title
modified
string (date-time)
Date modified after
native_name
string
Native name
o
array
Ordering
organization
string
Organization
organization_roles
string
Organization roles
page
integer
A page number within the paginated result set.
page_size
integer
Number of results to return per page.
phone_number
string
project_roles
string
Project roles
project_uuid
string (uuid)
Project UUID
query
string
Filter by first name, last name, civil number, username or email
registration_method
string
user_keyword
string
User keyword
username
string
Username (exact)
username_list
string
Comma-separated usernames
200 -
The response body is an array of objects, where each object has the following structure:
Field
Type
Description
uuid
string (uuid)
username
string
Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
full_name
string
first_name
string
last_name
string
organization
string
email
string (email)
phone_number
string
projects_count
integer
registration_method
string
Indicates what registration method was used.
affiliations
any
Person's affiliation within organization such as student, faculty, staff.
is_active
boolean
Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
Get service provider API secret code
Returns the API secret code for a service provider. Requires service provider owner permission.
Get summary of compliance checklists
Returns a summary of all compliance checklists used by this service provider with usage counts.
Get compliance overview for a service provider
Returns compliance overview statistics for all offerings managed by this service provider.
List offering users' compliance status
Returns a list of offering users with their compliance status for this service provider. Can be filtered by offering and compliance status.
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.
HTTPie Python TypeScript Path Parameters Request Body (required) Responses
http \
POST \
https://api.example.com/api/marketplace-service-providers/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_service_providers import marketplace_service_providers_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_service_providers_add_user . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client ,
body = body_data
)
print ( response )
Model Source: UserRoleCreateRequest
API Source: marketplace_service_providers_add_user
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import { marketplaceServiceProvidersAddUser } from 'waldur-js-client' ;
try {
const response = await marketplaceServiceProvidersAddUser ({
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.
Create a service provider
Creates a new service provider profile for a customer.
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.
Set offering username for a user
Sets or updates the offering-specific username for a user across all offerings managed by the service provider that the user has access to.
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.
Generate new service provider API secret code
Generates a new API secret code for a service provider, invalidating the old one. Requires service provider owner permission.
Update a service provider
Updates an existing service provider profile.
Partially update a service provider
Partially updates an existing service provider profile.
Delete a service provider
Deletes a service provider profile. Only possible if there are no active offerings.