Marketplace Plans
Operations Summary
Core CRUD
List Marketplace Plans
HTTPie Python TypeScript Query Parameters Responses
http \
GET \
https://api.example.com/api/marketplace-plans/ \
Authorization:"Token YOUR_API_TOKEN"
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.marketplace_plans import marketplace_plans_list # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = marketplace_plans_list . sync ( client = client )
for item in response :
print ( item )
API Source: marketplace_plans_list
import { marketplacePlansList } from 'waldur-js-client' ;
try {
const response = await marketplacePlansList ({
auth : "Token YOUR_API_TOKEN"
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Name
Type
Description
offering
string
offering_slug
array
Multiple values may be separated by commas.
offering_uuid
string (uuid)
page
integer
A page number within the paginated result set.
page_size
integer
Number of results to return per page.
parent_offering_uuid
string (uuid)
200 -
The response body is an array of objects, where each object has the following structure:
Field
Type
Description
url
string (uri)
uuid
string (uuid)
name
string
description
string
article_code
string
max_amount
integer
Maximum number of plans that could be active. Plan is disabled when maximum amount is reached.
archived
boolean
Forbids creation of new resources.
is_active
boolean
unit_price
string (decimal)
unit
string
Enum: month, quarter, half_month, day, hour, quantity
init_price
number (double)
switch_price
number (double)
backend_id
string
organization_groups
array of objects
organization_groups.uuid
string (uuid)
organization_groups.url
string (uri)
organization_groups.name
string
organization_groups.parent_uuid
string (uuid)
organization_groups.parent_name
string
organization_groups.parent
string (uri)
organization_groups.customers_count
integer
components
array of objects
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.measured_unit
string
Unit of measurement, for example, GB.
components.amount
integer
components.price
string (decimal)
components.future_price
string (decimal)
components.discount_threshold
integer
Minimum amount to be eligible for discount.
components.discount_rate
integer
Discount rate in percentage.
offering
string (uri)
prices
object (free-form)
future_prices
object (free-form)
quotas
object (free-form)
resources_count
integer
plan_type
string
minimal_price
number (double)
Retrieve
HTTPie Python TypeScript Path Parameters Responses
http \
GET \
https://api.example.com/api/marketplace-plans/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_plans import marketplace_plans_retrieve # (1)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
response = marketplace_plans_retrieve . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client
)
print ( response )
API Source: marketplace_plans_retrieve
1
2
3
4
5
6
7
8
9
10
11
12
13 import { marketplacePlansRetrieve } from 'waldur-js-client' ;
try {
const response = await marketplacePlansRetrieve ({
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
url
string (uri)
uuid
string (uuid)
name
string
description
string
article_code
string
max_amount
integer
Maximum number of plans that could be active. Plan is disabled when maximum amount is reached.
archived
boolean
Forbids creation of new resources.
is_active
boolean
unit_price
string (decimal)
unit
string
Enum: month, quarter, half_month, day, hour, quantity
init_price
number (double)
switch_price
number (double)
backend_id
string
organization_groups
array of objects
organization_groups.uuid
string (uuid)
organization_groups.url
string (uri)
organization_groups.name
string
organization_groups.parent_uuid
string (uuid)
organization_groups.parent_name
string
organization_groups.parent
string (uri)
organization_groups.customers_count
integer
components
array of objects
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.measured_unit
string
Unit of measurement, for example, GB.
components.amount
integer
components.price
string (decimal)
components.future_price
string (decimal)
components.discount_threshold
integer
Minimum amount to be eligible for discount.
components.discount_rate
integer
Discount rate in percentage.
offering
string (uri)
prices
object (free-form)
future_prices
object (free-form)
quotas
object (free-form)
resources_count
integer
plan_type
string
minimal_price
number (double)
Create
HTTPie Python TypeScript Request Body (required) Responses
http \
POST \
https://api.example.com/api/marketplace-plans/ \
Authorization:"Token YOUR_API_TOKEN" \
name = "my-awesome-marketplace-plan" \
offering = "https://api.example.com/api/offering/a1b2c3d4-e5f6-7890-abcd-ef1234567890/"
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.provider_plan_details_request import ProviderPlanDetailsRequest # (1)
from waldur_api_client.api.marketplace_plans import marketplace_plans_create # (2)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
body_data = ProviderPlanDetailsRequest (
name = "my-awesome-marketplace-plan" ,
offering = "https://api.example.com/api/offering/a1b2c3d4-e5f6-7890-abcd-ef1234567890/"
)
response = marketplace_plans_create . sync (
client = client ,
body = body_data
)
print ( response )
Model Source: ProviderPlanDetailsRequest
API Source: marketplace_plans_create
1
2
3
4
5
6
7
8
9
10
11
12
13
14 import { marketplacePlansCreate } from 'waldur-js-client' ;
try {
const response = await marketplacePlansCreate ({
auth : "Token YOUR_API_TOKEN" ,
body : {
"name" : "my-awesome-marketplace-plan" ,
"offering" : "https://api.example.com/api/offering/a1b2c3d4-e5f6-7890-abcd-ef1234567890/"
}
});
console . log ( 'Success:' , response );
} catch ( error ) {
console . error ( 'Error:' , error );
}
Field
Type
Required
Description
name
string
✓
description
string
article_code
string
max_amount
integer
Maximum number of plans that could be active. Plan is disabled when maximum amount is reached.
archived
boolean
Forbids creation of new resources.
unit_price
string (decimal)
unit
string
Enum: month, quarter, half_month, day, hour, quantity
backend_id
string
offering
string (uri)
✓
201 -
Field
Type
Description
url
string (uri)
uuid
string (uuid)
name
string
description
string
article_code
string
max_amount
integer
Maximum number of plans that could be active. Plan is disabled when maximum amount is reached.
archived
boolean
Forbids creation of new resources.
is_active
boolean
unit_price
string (decimal)
unit
string
Enum: month, quarter, half_month, day, hour, quantity
init_price
number (double)
switch_price
number (double)
backend_id
string
organization_groups
array of objects
organization_groups.uuid
string (uuid)
organization_groups.url
string (uri)
organization_groups.name
string
organization_groups.parent_uuid
string (uuid)
organization_groups.parent_name
string
organization_groups.parent
string (uri)
organization_groups.customers_count
integer
components
array of objects
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.measured_unit
string
Unit of measurement, for example, GB.
components.amount
integer
components.price
string (decimal)
components.future_price
string (decimal)
components.discount_threshold
integer
Minimum amount to be eligible for discount.
components.discount_rate
integer
Discount rate in percentage.
offering
string (uri)
prices
object (free-form)
future_prices
object (free-form)
quotas
object (free-form)
resources_count
integer
plan_type
string
minimal_price
number (double)
Update volume discount configuration for plan components
Update volume discount configuration for plan components.
This endpoint allows updating discount thresholds and rates for multiple
plan components in a single request. Discounts are applied automatically
when limit quantities meet or exceed the threshold.
The discount configuration affects future billing:
- Creates separate invoice items showing the discount
- Can be enabled or disabled per component
Update organization groups
Update prices
Update quotas
Update
HTTPie Python TypeScript Path Parameters Request Body (required) Responses
http \
PUT \
https://api.example.com/api/marketplace-plans/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
Authorization:"Token YOUR_API_TOKEN" \
name = "my-awesome-marketplace-plan" \
offering = "https://api.example.com/api/offering/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.provider_plan_details_request import ProviderPlanDetailsRequest # (1)
from waldur_api_client.api.marketplace_plans import marketplace_plans_update # (2)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
body_data = ProviderPlanDetailsRequest (
name = "my-awesome-marketplace-plan" ,
offering = "https://api.example.com/api/offering/a1b2c3d4-e5f6-7890-abcd-ef1234567890/"
)
response = marketplace_plans_update . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client ,
body = body_data
)
print ( response )
Model Source: ProviderPlanDetailsRequest
API Source: marketplace_plans_update
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import { marketplacePlansUpdate } from 'waldur-js-client' ;
try {
const response = await marketplacePlansUpdate ({
auth : "Token YOUR_API_TOKEN" ,
path : {
"uuid" : "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
body : {
"name" : "my-awesome-marketplace-plan" ,
"offering" : "https://api.example.com/api/offering/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
name
string
✓
description
string
article_code
string
max_amount
integer
Maximum number of plans that could be active. Plan is disabled when maximum amount is reached.
archived
boolean
Forbids creation of new resources.
unit_price
string (decimal)
unit
string
Enum: month, quarter, half_month, day, hour, quantity
backend_id
string
offering
string (uri)
✓
200 -
Field
Type
Description
url
string (uri)
uuid
string (uuid)
name
string
description
string
article_code
string
max_amount
integer
Maximum number of plans that could be active. Plan is disabled when maximum amount is reached.
archived
boolean
Forbids creation of new resources.
is_active
boolean
unit_price
string (decimal)
unit
string
Enum: month, quarter, half_month, day, hour, quantity
init_price
number (double)
switch_price
number (double)
backend_id
string
organization_groups
array of objects
organization_groups.uuid
string (uuid)
organization_groups.url
string (uri)
organization_groups.name
string
organization_groups.parent_uuid
string (uuid)
organization_groups.parent_name
string
organization_groups.parent
string (uri)
organization_groups.customers_count
integer
components
array of objects
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.measured_unit
string
Unit of measurement, for example, GB.
components.amount
integer
components.price
string (decimal)
components.future_price
string (decimal)
components.discount_threshold
integer
Minimum amount to be eligible for discount.
components.discount_rate
integer
Discount rate in percentage.
offering
string (uri)
prices
object (free-form)
future_prices
object (free-form)
quotas
object (free-form)
resources_count
integer
plan_type
string
minimal_price
number (double)
Partial Update
HTTPie Python TypeScript Path Parameters Request Body Responses
http \
PATCH \
https://api.example.com/api/marketplace-plans/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_provider_plan_details_request import PatchedProviderPlanDetailsRequest # (1)
from waldur_api_client.api.marketplace_plans import marketplace_plans_partial_update # (2)
client = AuthenticatedClient (
base_url = "https://api.example.com" , token = "YOUR_API_TOKEN"
)
body_data = PatchedProviderPlanDetailsRequest ()
response = marketplace_plans_partial_update . sync (
uuid = "a1b2c3d4-e5f6-7890-abcd-ef1234567890" ,
client = client ,
body = body_data
)
print ( response )
Model Source: PatchedProviderPlanDetailsRequest
API Source: marketplace_plans_partial_update
1
2
3
4
5
6
7
8
9
10
11
12
13 import { marketplacePlansPartialUpdate } from 'waldur-js-client' ;
try {
const response = await marketplacePlansPartialUpdate ({
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
name
string
description
string
article_code
string
max_amount
integer
Maximum number of plans that could be active. Plan is disabled when maximum amount is reached.
archived
boolean
Forbids creation of new resources.
unit_price
string (decimal)
unit
string
Enum: month, quarter, half_month, day, hour, quantity
backend_id
string
200 -
Field
Type
Description
url
string (uri)
uuid
string (uuid)
name
string
description
string
article_code
string
max_amount
integer
Maximum number of plans that could be active. Plan is disabled when maximum amount is reached.
archived
boolean
Forbids creation of new resources.
is_active
boolean
unit_price
string (decimal)
unit
string
Enum: month, quarter, half_month, day, hour, quantity
init_price
number (double)
switch_price
number (double)
backend_id
string
organization_groups
array of objects
organization_groups.uuid
string (uuid)
organization_groups.url
string (uri)
organization_groups.name
string
organization_groups.parent_uuid
string (uuid)
organization_groups.parent_name
string
organization_groups.parent
string (uri)
organization_groups.customers_count
integer
components
array of objects
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.measured_unit
string
Unit of measurement, for example, GB.
components.amount
integer
components.price
string (decimal)
components.future_price
string (decimal)
components.discount_threshold
integer
Minimum amount to be eligible for discount.
components.discount_rate
integer
Discount rate in percentage.
offering
string (uri)
prices
object (free-form)
future_prices
object (free-form)
quotas
object (free-form)
resources_count
integer
plan_type
string
minimal_price
number (double)
Delete
Other Actions
Usage stats
Archive
Delete organization groups