Skip to content

Marketplace Provider Offerings

Operations Summary

Method Endpoint Description
Core CRUD
GET /api/marketplace-provider-offerings/ List provider offerings
GET /api/marketplace-provider-offerings/{uuid}/ Retrieve a provider offering
POST /api/marketplace-provider-offerings/ Create a provider offering
DELETE /api/marketplace-provider-offerings/{uuid}/ Delete a provider offering
State Management
POST /api/marketplace-provider-offerings/{uuid}/activate/ Activate an offering
POST /api/marketplace-provider-offerings/{uuid}/archive/ Archive an offering
POST /api/marketplace-provider-offerings/{uuid}/draft/ Move an offering to draft
POST /api/marketplace-provider-offerings/{uuid}/pause/ Pause an offering
POST /api/marketplace-provider-offerings/{uuid}/unpause/ Unpause an offering
Users and Accounts
GET /api/marketplace-provider-offerings/{uuid}/glauth_users_config/ Get GLauth user configuration
GET /api/marketplace-provider-offerings/{uuid}/list_course_accounts/ List course accounts for an offering
GET /api/marketplace-provider-offerings/{uuid}/list_customer_service_accounts/ List customer service accounts for an offering
GET /api/marketplace-provider-offerings/{uuid}/list_customer_users/ List customer users for an offering
GET /api/marketplace-provider-offerings/{uuid}/list_project_service_accounts/ List project service accounts for an offering
GET /api/marketplace-provider-offerings/{uuid}/list_users/ List users and their roles in a scope
GET /api/marketplace-provider-offerings/{uuid}/user_has_resource_access/ Check user access to offering resources
POST /api/marketplace-provider-offerings/{uuid}/add_user/ Grant a role to a user
POST /api/marketplace-provider-offerings/{uuid}/delete_user/ Revoke a role from a user
POST /api/marketplace-provider-offerings/{uuid}/refresh_offering_usernames/ Refresh offering user usernames
POST /api/marketplace-provider-offerings/{uuid}/update_user/ Update a user's role expiration
Offering Components
POST /api/marketplace-provider-offerings/{uuid}/create_offering_component/ Create an offering component
POST /api/marketplace-provider-offerings/{uuid}/remove_offering_component/ Remove an offering component
POST /api/marketplace-provider-offerings/{uuid}/update_offering_component/ Update an offering component
Software Catalogs and Partitions
POST /api/marketplace-provider-offerings/{uuid}/add_partition/ Add a partition to an offering
POST /api/marketplace-provider-offerings/{uuid}/add_software_catalog/ Add a software catalog to an offering
POST /api/marketplace-provider-offerings/{uuid}/remove_partition/ Remove a partition from an offering
POST /api/marketplace-provider-offerings/{uuid}/remove_software_catalog/ Remove a software catalog from an offering
PATCH /api/marketplace-provider-offerings/{uuid}/update_partition/ Update a partition of an offering
PATCH /api/marketplace-provider-offerings/{uuid}/update_software_catalog/ Update software catalog configuration
Endpoints
POST /api/marketplace-provider-offerings/{uuid}/add_endpoint/ Add an access endpoint to an offering
POST /api/marketplace-provider-offerings/{uuid}/delete_endpoint/ Delete an access endpoint from an offering
Attachments and Images
POST /api/marketplace-provider-offerings/{uuid}/delete_image/ Delete offering image
POST /api/marketplace-provider-offerings/{uuid}/delete_thumbnail/ Delete offering thumbnail
POST /api/marketplace-provider-offerings/{uuid}/update_image/ Update offering image
POST /api/marketplace-provider-offerings/{uuid}/update_thumbnail/ Update offering thumbnail
Configuration & Updates
POST /api/marketplace-provider-offerings/{uuid}/delete_organization_groups/ Delete organization groups for offering
POST /api/marketplace-provider-offerings/{uuid}/move_offering/ Move an offering
POST /api/marketplace-provider-offerings/{uuid}/set_backend_metadata/ Set offering backend metadata
POST /api/marketplace-provider-offerings/{uuid}/update_attributes/ Update offering attributes
POST /api/marketplace-provider-offerings/{uuid}/update_compliance_checklist/ Update offering compliance checklist
POST /api/marketplace-provider-offerings/{uuid}/update_description/ Update offering category
POST /api/marketplace-provider-offerings/{uuid}/update_integration/ Update offering integration settings
POST /api/marketplace-provider-offerings/{uuid}/update_location/ Update offering location
POST /api/marketplace-provider-offerings/{uuid}/update_options/ Update offering options
POST /api/marketplace-provider-offerings/{uuid}/update_organization_groups/ Update organization groups for offering
POST /api/marketplace-provider-offerings/{uuid}/update_overview/ Update offering overview
POST /api/marketplace-provider-offerings/{uuid}/update_resource_options/ Update offering resource options
Data & Reporting
GET /api/marketplace-provider-offerings/{uuid}/component_stats/ Get statistics for offering components
GET /api/marketplace-provider-offerings/{uuid}/costs/ Get costs for an offering
GET /api/marketplace-provider-offerings/{uuid}/customers/ Get customers for an offering
GET /api/marketplace-provider-offerings/groups/ List offerings grouped by provider
GET /api/marketplace-provider-offerings/{uuid}/list_customer_projects/ List customer projects for an offering
GET /api/marketplace-provider-offerings/{uuid}/orders/ List orders for an offering
GET /api/marketplace-provider-offerings/{uuid}/orders/{order_uuid}/ Retrieve a specific order for an offering
GET /api/marketplace-provider-offerings/{uuid}/stats/ Get offering statistics
GET /api/marketplace-provider-offerings/{uuid}/tos_stats/ Get Terms of Service consent statistics
Remote Actions & Sync
GET /api/marketplace-provider-offerings/{uuid}/importable_resources/ List importable resources
POST /api/marketplace-provider-offerings/{uuid}/import_resource/ Import a resource
POST /api/marketplace-provider-offerings/{uuid}/sync/ Synchronize offering service settings
Other Actions
POST /api/marketplace-provider-offerings/{uuid}/check_unique_backend_id/ Check if backend_id is unique
POST /api/marketplace-provider-offerings/{uuid}/export_offering/ Export offering data
POST /api/marketplace-provider-offerings/import_offering/ Import offering data
POST /api/marketplace-provider-offerings/{uuid}/make_available/ Mark an offering as available
POST /api/marketplace-provider-offerings/{uuid}/make_unavailable/ Mark an offering as unavailable

Core CRUD

List provider offerings

Returns a paginated list of offerings for the provider.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/ \
  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_offerings import marketplace_provider_offerings_list # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsList({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
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
url string (uri)
uuid string (uuid)
created string (date-time)
name string
slug string
description string
full_description string
privacy_policy_link string (uri)
access_url string (uri) Publicly accessible offering access URL
endpoints array of objects
endpoints.uuid string (uuid)
endpoints.name string
endpoints.url string
software_catalogs array of objects
software_catalogs.uuid string (uuid)
software_catalogs.catalog object
software_catalogs.catalog.uuid string
software_catalogs.catalog.name string
software_catalogs.catalog.version string
software_catalogs.catalog.description string
software_catalogs.enabled_cpu_family any List of enabled CPU families: ['x86_64', 'aarch64']
software_catalogs.enabled_cpu_microarchitectures any List of enabled CPU microarchitectures: ['generic', 'zen3']
software_catalogs.package_count integer
software_catalogs.partition object
software_catalogs.partition.uuid string
software_catalogs.partition.partition_name string
software_catalogs.partition.priority_tier integer
software_catalogs.partition.qos string
partitions array of objects
partitions.uuid string (uuid)
partitions.partition_name string Name of the SLURM partition
partitions.cpu_bind integer Default task binding policy (SLURM cpu_bind)
partitions.def_cpu_per_gpu integer Default CPUs allocated per GPU
partitions.max_cpus_per_node integer Maximum allocated CPUs per node
partitions.max_cpus_per_socket integer Maximum allocated CPUs per socket
partitions.def_mem_per_cpu integer (int64) Default memory per CPU in MB
partitions.def_mem_per_gpu integer (int64) Default memory per GPU in MB
partitions.def_mem_per_node integer (int64) Default memory per node in MB
partitions.max_mem_per_cpu integer (int64) Maximum memory per CPU in MB
partitions.max_mem_per_node integer (int64) Maximum memory per node in MB
partitions.default_time integer Default time limit in minutes
partitions.max_time integer Maximum time limit in minutes
partitions.grace_time integer Preemption grace time in seconds
partitions.max_nodes integer Maximum nodes per job
partitions.min_nodes integer Minimum nodes per job
partitions.exclusive_topo boolean Exclusive topology access required
partitions.exclusive_user boolean Exclusive user access required
partitions.priority_tier integer Priority tier for scheduling and preemption
partitions.qos string Quality of Service (QOS) name
partitions.req_resv boolean Require reservation for job allocation
roles array of objects
roles.uuid string (uuid)
roles.name string
roles.url string (uri)
customer string (uri)
customer_uuid string (uuid)
customer_name string
project string (uri)
project_uuid string (uuid)
project_name string
category string (uri)
category_uuid string (uuid)
category_title string
attributes object (free-form)
options any
resource_options 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
plugin_options any
secret_options any
service_attributes object (free-form)
state any
vendor_details string
getting_started string
integration_guide string
thumbnail string (uri)
order_count 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)
screenshots array of objects
screenshots.name string
screenshots.uuid string (uuid)
screenshots.description string
screenshots.image string (uri)
screenshots.thumbnail string (uri)
screenshots.created string (date-time)
type string
shared boolean Accessible to all customers.
billable boolean Purchase and usage is invoiced.
scope string
scope_uuid string (uuid)
scope_name string (uuid)
scope_state any
scope_error_message string
files array of objects
files.name string
files.created string (date-time)
files.file string (uri)
quotas array of objects
quotas.name string
quotas.usage integer
quotas.limit integer
paused_reason string
datacite_doi string
citation_count integer Number of citations of a DOI
latitude number (double)
longitude number (double)
country any
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
image string (uri)
total_customers integer
total_cost integer
total_cost_estimated integer
parent_description string
parent_uuid string (uuid)
parent_name string
backend_metadata any
has_compliance_requirements boolean
billing_type_classification string Classify offering components by billing type. Returns 'limit_only', 'usage_only', or 'mixed'.
compliance_checklist string (uri)
integration_status array of objects
integration_status.agent_type any
integration_status.status string
integration_status.last_request_timestamp string (date-time)
integration_status.service_name string
google_calendar_is_public boolean
google_calendar_link string Get the Google Calendar link for an offering.

Retrieve a provider offering

Returns details of a specific provider offering.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/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_offerings import marketplace_provider_offerings_retrieve # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsRetrieve({
  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
field array

200 -

Field Type Description
url string (uri)
uuid string (uuid)
created string (date-time)
name string
slug string
description string
full_description string
privacy_policy_link string (uri)
access_url string (uri) Publicly accessible offering access URL
endpoints array of objects
endpoints.uuid string (uuid)
endpoints.name string
endpoints.url string
software_catalogs array of objects
software_catalogs.uuid string (uuid)
software_catalogs.catalog object
software_catalogs.catalog.uuid string
software_catalogs.catalog.name string
software_catalogs.catalog.version string
software_catalogs.catalog.description string
software_catalogs.enabled_cpu_family any List of enabled CPU families: ['x86_64', 'aarch64']
software_catalogs.enabled_cpu_microarchitectures any List of enabled CPU microarchitectures: ['generic', 'zen3']
software_catalogs.package_count integer
software_catalogs.partition object
software_catalogs.partition.uuid string
software_catalogs.partition.partition_name string
software_catalogs.partition.priority_tier integer
software_catalogs.partition.qos string
partitions array of objects
partitions.uuid string (uuid)
partitions.partition_name string Name of the SLURM partition
partitions.cpu_bind integer Default task binding policy (SLURM cpu_bind)
partitions.def_cpu_per_gpu integer Default CPUs allocated per GPU
partitions.max_cpus_per_node integer Maximum allocated CPUs per node
partitions.max_cpus_per_socket integer Maximum allocated CPUs per socket
partitions.def_mem_per_cpu integer (int64) Default memory per CPU in MB
partitions.def_mem_per_gpu integer (int64) Default memory per GPU in MB
partitions.def_mem_per_node integer (int64) Default memory per node in MB
partitions.max_mem_per_cpu integer (int64) Maximum memory per CPU in MB
partitions.max_mem_per_node integer (int64) Maximum memory per node in MB
partitions.default_time integer Default time limit in minutes
partitions.max_time integer Maximum time limit in minutes
partitions.grace_time integer Preemption grace time in seconds
partitions.max_nodes integer Maximum nodes per job
partitions.min_nodes integer Minimum nodes per job
partitions.exclusive_topo boolean Exclusive topology access required
partitions.exclusive_user boolean Exclusive user access required
partitions.priority_tier integer Priority tier for scheduling and preemption
partitions.qos string Quality of Service (QOS) name
partitions.req_resv boolean Require reservation for job allocation
roles array of objects
roles.uuid string (uuid)
roles.name string
roles.url string (uri)
customer string (uri)
customer_uuid string (uuid)
customer_name string
project string (uri)
project_uuid string (uuid)
project_name string
category string (uri)
category_uuid string (uuid)
category_title string
attributes object (free-form)
options any
resource_options 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
plugin_options any
secret_options any
service_attributes object (free-form)
state any
vendor_details string
getting_started string
integration_guide string
thumbnail string (uri)
order_count 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)
screenshots array of objects
screenshots.name string
screenshots.uuid string (uuid)
screenshots.description string
screenshots.image string (uri)
screenshots.thumbnail string (uri)
screenshots.created string (date-time)
type string
shared boolean Accessible to all customers.
billable boolean Purchase and usage is invoiced.
scope string
scope_uuid string (uuid)
scope_name string (uuid)
scope_state any
scope_error_message string
files array of objects
files.name string
files.created string (date-time)
files.file string (uri)
quotas array of objects
quotas.name string
quotas.usage integer
quotas.limit integer
paused_reason string
datacite_doi string
citation_count integer Number of citations of a DOI
latitude number (double)
longitude number (double)
country any
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
image string (uri)
total_customers integer
total_cost integer
total_cost_estimated integer
parent_description string
parent_uuid string (uuid)
parent_name string
backend_metadata any
has_compliance_requirements boolean
billing_type_classification string Classify offering components by billing type. Returns 'limit_only', 'usage_only', or 'mixed'.
compliance_checklist string (uri)
integration_status array of objects
integration_status.agent_type any
integration_status.status string
integration_status.last_request_timestamp string (date-time)
integration_status.service_name string
google_calendar_is_public boolean
google_calendar_link string Get the Google Calendar link for an offering.

Create a provider offering

Creates a new provider offering.

1
2
3
4
5
6
7
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/ \
  Authorization:"Token YOUR_API_TOKEN" \
  name="my-awesome-marketplace-provider-offering" \
  category="https://api.example.com/api/category/a1b2c3d4-e5f6-7890-abcd-ef1234567890/" \
  type="string-value"
 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.offering_create_request import OfferingCreateRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_create # (2)

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

body_data = OfferingCreateRequest(
    name="my-awesome-marketplace-provider-offering",
    category="https://api.example.com/api/category/a1b2c3d4-e5f6-7890-abcd-ef1234567890/",
    type="string-value"
)
response = marketplace_provider_offerings_create.sync(
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsCreate({
  auth: "Token YOUR_API_TOKEN",
  body: {
    "name": "my-awesome-marketplace-provider-offering",
    "category": "https://api.example.com/api/category/a1b2c3d4-e5f6-7890-abcd-ef1234567890/",
    "type": "string-value"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required Description
name string
slug string
description string
full_description string
privacy_policy_link string (uri)
access_url string (uri) Publicly accessible offering access URL
customer string (uri)
category string (uri)
attributes any
options object
options.order array of strings
options.options object (free-form)
resource_options object
resource_options.order array of strings
resource_options.options object (free-form)
components array of objects
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.is_prepaid boolean
components.overage_component string (uuid)
components.min_prepaid_duration integer
components.max_prepaid_duration integer
vendor_details string
getting_started string
integration_guide string
thumbnail string (binary)
plans array of objects
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.unit_price string (decimal)
plans.unit string
Enum: month, quarter, half_month, day, hour, quantity
plans.backend_id string
type string
shared boolean Accessible to all customers.
billable boolean Purchase and usage is invoiced.
datacite_doi string
latitude number (double)
longitude number (double)
country any
backend_id string
image string (binary)
backend_metadata any
compliance_checklist string (uri)
limits object (free-form)
Constraints: write-only

201 -

Field Type Description
url string (uri)
uuid string (uuid)
created string (date-time)
name string
slug string
description string
full_description string
privacy_policy_link string (uri)
access_url string (uri) Publicly accessible offering access URL
endpoints array of objects
endpoints.uuid string (uuid)
endpoints.name string
endpoints.url string
software_catalogs array of objects
software_catalogs.uuid string (uuid)
software_catalogs.catalog object
software_catalogs.catalog.uuid string
software_catalogs.catalog.name string
software_catalogs.catalog.version string
software_catalogs.catalog.description string
software_catalogs.enabled_cpu_family any List of enabled CPU families: ['x86_64', 'aarch64']
software_catalogs.enabled_cpu_microarchitectures any List of enabled CPU microarchitectures: ['generic', 'zen3']
software_catalogs.package_count integer
software_catalogs.partition object
software_catalogs.partition.uuid string
software_catalogs.partition.partition_name string
software_catalogs.partition.priority_tier integer
software_catalogs.partition.qos string
partitions array of objects
partitions.uuid string (uuid)
partitions.partition_name string Name of the SLURM partition
partitions.cpu_bind integer Default task binding policy (SLURM cpu_bind)
partitions.def_cpu_per_gpu integer Default CPUs allocated per GPU
partitions.max_cpus_per_node integer Maximum allocated CPUs per node
partitions.max_cpus_per_socket integer Maximum allocated CPUs per socket
partitions.def_mem_per_cpu integer (int64) Default memory per CPU in MB
partitions.def_mem_per_gpu integer (int64) Default memory per GPU in MB
partitions.def_mem_per_node integer (int64) Default memory per node in MB
partitions.max_mem_per_cpu integer (int64) Maximum memory per CPU in MB
partitions.max_mem_per_node integer (int64) Maximum memory per node in MB
partitions.default_time integer Default time limit in minutes
partitions.max_time integer Maximum time limit in minutes
partitions.grace_time integer Preemption grace time in seconds
partitions.max_nodes integer Maximum nodes per job
partitions.min_nodes integer Minimum nodes per job
partitions.exclusive_topo boolean Exclusive topology access required
partitions.exclusive_user boolean Exclusive user access required
partitions.priority_tier integer Priority tier for scheduling and preemption
partitions.qos string Quality of Service (QOS) name
partitions.req_resv boolean Require reservation for job allocation
roles array of objects
roles.uuid string (uuid)
roles.name string
roles.url string (uri)
customer string (uri)
customer_uuid string (uuid)
customer_name string
project string (uri)
project_uuid string (uuid)
project_name string
category string (uri)
category_uuid string (uuid)
category_title string
attributes object (free-form)
options any
resource_options 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
plugin_options any
secret_options any
service_attributes object (free-form)
state any
vendor_details string
getting_started string
integration_guide string
thumbnail string (uri)
order_count 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)
screenshots array of objects
screenshots.name string
screenshots.uuid string (uuid)
screenshots.description string
screenshots.image string (uri)
screenshots.thumbnail string (uri)
screenshots.created string (date-time)
type string
shared boolean Accessible to all customers.
billable boolean Purchase and usage is invoiced.
scope string
scope_uuid string (uuid)
scope_name string (uuid)
scope_state any
scope_error_message string
files array of objects
files.name string
files.created string (date-time)
files.file string (uri)
quotas array of objects
quotas.name string
quotas.usage integer
quotas.limit integer
paused_reason string
datacite_doi string
citation_count integer Number of citations of a DOI
latitude number (double)
longitude number (double)
country any
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
image string (uri)
total_customers integer
total_cost integer
total_cost_estimated integer
parent_description string
parent_uuid string (uuid)
parent_name string
backend_metadata any
has_compliance_requirements boolean
billing_type_classification string Classify offering components by billing type. Returns 'limit_only', 'usage_only', or 'mixed'.
compliance_checklist string (uri)
integration_status array of objects
integration_status.agent_type any
integration_status.status string
integration_status.last_request_timestamp string (date-time)
integration_status.service_name string
google_calendar_is_public boolean
google_calendar_link string Get the Google Calendar link for an offering.

Delete a provider offering

Deletes a provider offering. Only possible for offerings in a Draft state with no associated resources.

1
2
3
4
http \
  DELETE \
  https://api.example.com/api/marketplace-provider-offerings/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_offerings import marketplace_provider_offerings_destroy # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsDestroy({
  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)

204 - No response body


State Management

Activate an offering

Activates a draft or paused offering, making it available for ordering.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/activate/ \
  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_offerings import marketplace_provider_offerings_activate # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsActivate({
  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
detail string
state string

Archive an offering

Archives an offering, making it permanently unavailable for new orders.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/archive/ \
  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_offerings import marketplace_provider_offerings_archive # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsArchive({
  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
detail string
state string

Move an offering to draft

Moves an active or paused offering back to the draft state for editing.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/draft/ \
  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_offerings import marketplace_provider_offerings_draft # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsDraft({
  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
detail string
state string

Pause an offering

Pauses an active offering, preventing new orders from being created.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/pause/ \
  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.offering_pause_request import OfferingPauseRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_pause # (2)

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

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

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

try {
  const response = await marketplaceProviderOfferingsPause({
  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
paused_reason string

200 -

Field Type
detail string
state string

Unpause an offering

Resumes a paused offering, making it available for ordering again.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/unpause/ \
  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_offerings import marketplace_provider_offerings_unpause # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsUnpause({
  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
detail string
state string

Users and Accounts

Get GLauth user configuration

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
    This endpoint provides a configuration file for GLauth.
    It is intended to be used by an external agent to synchronize user data from Waldur to GLauth.

    Example output format:
    ```
    [[users]]
      name = "johndoe"
      givenname="John"
      sn="Doe"
      mail = "john.doe@example.com"
      ...
    [[groups]]
      name = "group1"
      gidnumber = 1001
    ```
1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/glauth_users_config/ \
  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_offerings import marketplace_provider_offerings_glauth_users_config_retrieve # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsGlauthUsersConfigRetrieve({
  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 -


List course accounts for an offering

Returns a paginated list of course accounts for projects that have resources of this offering.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/list_course_accounts/ \
  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_provider_offerings import marketplace_provider_offerings_list_course_accounts_list # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsListCourseAccountsList({
  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
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
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
url string (uri)
uuid string (uuid)
created string (date-time)
modified string (date-time)
project string (uuid)
project_uuid string (uuid)
project_name string
project_slug string
project_start_date string (date)
project_end_date string (date)
user_uuid string (uuid)
username string
customer_uuid string (uuid)
customer_name string
state any
email string (email)
description string
error_message string
error_traceback string

List customer service accounts for an offering

Returns a paginated list of customer-level service accounts for customers who have resources of this offering.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/list_customer_service_accounts/ \
  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_provider_offerings import marketplace_provider_offerings_list_customer_service_accounts_list # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsListCustomerServiceAccountsList({
  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
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
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
url string (uri)
uuid string (uuid)
created string (date-time)
modified string (date-time)
username string
description string
error_message string
error_traceback string
state any
token string
email string (email)
expires_at string
preferred_identifier string
customer string (uuid)
customer_uuid string (uuid)
customer_name string

List customer users for an offering

Returns a paginated list of users who have access to resources of this offering.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/list_customer_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_provider_offerings import marketplace_provider_offerings_list_customer_users_list # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsListCustomerUsersList({
  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
page integer A page number within the paginated result set.
page_size integer Number of results to return per page.

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)
username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
slug string
full_name string
native_name string
job_title string
email string (email)
phone_number string
organization string
civil_number string
description string
is_staff boolean Designates whether the user can log into this admin site.
is_active boolean Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
is_support boolean Designates whether the user is a global support user.
token string
token_lifetime integer Token lifetime in seconds.
token_expires_at string (date-time)
registration_method string Indicates what registration method was used.
date_joined string (date-time)
agreement_date string (date-time) Indicates when the user has agreed with the policy.
notifications_enabled boolean Designates whether the user is allowed to receive email notifications.
preferred_language string
permissions array of objects
permissions.user_uuid string (uuid)
permissions.user_name string
permissions.user_slug string
permissions.created string (date-time)
permissions.expiration_time string (date-time)
permissions.created_by_full_name string
permissions.created_by_username string
permissions.role_name string
permissions.role_description string
permissions.role_uuid string (uuid)
permissions.scope_type string
permissions.scope_uuid string (uuid)
permissions.scope_name string
permissions.customer_uuid string (uuid)
permissions.customer_name string
requested_email string
affiliations any Person's affiliation within organization such as student, faculty, staff.
first_name string
last_name string
birth_date string (date)
identity_provider_name string
identity_provider_label string
identity_provider_management_url string
identity_provider_fields array of strings
image string (uri)
identity_source string Indicates what identity provider was used.
has_active_session boolean
ip_address string

List project service accounts for an offering

Returns a paginated list of project-level service accounts for projects that have resources of this offering.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/list_project_service_accounts/ \
  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_provider_offerings import marketplace_provider_offerings_list_project_service_accounts_list # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsListProjectServiceAccountsList({
  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
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
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
url string (uri)
uuid string (uuid)
created string (date-time)
modified string (date-time)
username string
description string
error_message string
error_traceback string
state any
token string
email string (email)
expires_at string
preferred_identifier string
project string (uuid)
project_uuid string (uuid)
project_name string
customer_uuid string (uuid)
customer_name string
customer_abbreviation string

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-offerings/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
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_list_users_list # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsListUsersList({
  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)

Check user access to offering resources

Checks if a specified user has access to any non-terminated resource of this offering.

1
2
3
4
5
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/user_has_resource_access/ \
  Authorization:"Token YOUR_API_TOKEN" \
  username=="alice"
 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_provider_offerings import marketplace_provider_offerings_user_has_resource_access_retrieve # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsUserHasResourceAccessRetrieve({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  query: {
    "username": "alice"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Name Type Required Description
field array
username string Username of the user to check.

200 -

Field Type Description
url string (uri)
uuid string (uuid)
created string (date-time)
name string
slug string
description string
full_description string
privacy_policy_link string (uri)
access_url string (uri) Publicly accessible offering access URL
endpoints array of objects
endpoints.uuid string (uuid)
endpoints.name string
endpoints.url string
software_catalogs array of objects
software_catalogs.uuid string (uuid)
software_catalogs.catalog object
software_catalogs.catalog.uuid string
software_catalogs.catalog.name string
software_catalogs.catalog.version string
software_catalogs.catalog.description string
software_catalogs.enabled_cpu_family any List of enabled CPU families: ['x86_64', 'aarch64']
software_catalogs.enabled_cpu_microarchitectures any List of enabled CPU microarchitectures: ['generic', 'zen3']
software_catalogs.package_count integer
software_catalogs.partition object
software_catalogs.partition.uuid string
software_catalogs.partition.partition_name string
software_catalogs.partition.priority_tier integer
software_catalogs.partition.qos string
partitions array of objects
partitions.uuid string (uuid)
partitions.partition_name string Name of the SLURM partition
partitions.cpu_bind integer Default task binding policy (SLURM cpu_bind)
partitions.def_cpu_per_gpu integer Default CPUs allocated per GPU
partitions.max_cpus_per_node integer Maximum allocated CPUs per node
partitions.max_cpus_per_socket integer Maximum allocated CPUs per socket
partitions.def_mem_per_cpu integer (int64) Default memory per CPU in MB
partitions.def_mem_per_gpu integer (int64) Default memory per GPU in MB
partitions.def_mem_per_node integer (int64) Default memory per node in MB
partitions.max_mem_per_cpu integer (int64) Maximum memory per CPU in MB
partitions.max_mem_per_node integer (int64) Maximum memory per node in MB
partitions.default_time integer Default time limit in minutes
partitions.max_time integer Maximum time limit in minutes
partitions.grace_time integer Preemption grace time in seconds
partitions.max_nodes integer Maximum nodes per job
partitions.min_nodes integer Minimum nodes per job
partitions.exclusive_topo boolean Exclusive topology access required
partitions.exclusive_user boolean Exclusive user access required
partitions.priority_tier integer Priority tier for scheduling and preemption
partitions.qos string Quality of Service (QOS) name
partitions.req_resv boolean Require reservation for job allocation
roles array of objects
roles.uuid string (uuid)
roles.name string
roles.url string (uri)
customer string (uri)
customer_uuid string (uuid)
customer_name string
project string (uri)
project_uuid string (uuid)
project_name string
category string (uri)
category_uuid string (uuid)
category_title string
attributes object (free-form)
options any
resource_options 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
plugin_options any
secret_options any
service_attributes object (free-form)
state any
vendor_details string
getting_started string
integration_guide string
thumbnail string (uri)
order_count 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)
screenshots array of objects
screenshots.name string
screenshots.uuid string (uuid)
screenshots.description string
screenshots.image string (uri)
screenshots.thumbnail string (uri)
screenshots.created string (date-time)
type string
shared boolean Accessible to all customers.
billable boolean Purchase and usage is invoiced.
scope string
scope_uuid string (uuid)
scope_name string (uuid)
scope_state any
scope_error_message string
files array of objects
files.name string
files.created string (date-time)
files.file string (uri)
quotas array of objects
quotas.name string
quotas.usage integer
quotas.limit integer
paused_reason string
datacite_doi string
citation_count integer Number of citations of a DOI
latitude number (double)
longitude number (double)
country any
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
image string (uri)
total_customers integer
total_cost integer
total_cost_estimated integer
parent_description string
parent_uuid string (uuid)
parent_name string
backend_metadata any
has_compliance_requirements boolean
billing_type_classification string Classify offering components by billing type. Returns 'limit_only', 'usage_only', or 'mixed'.
compliance_checklist string (uri)
integration_status array of objects
integration_status.agent_type any
integration_status.status string
integration_status.last_request_timestamp string (date-time)
integration_status.service_name string
google_calendar_is_public boolean
google_calendar_link string Get the Google Calendar link for an offering.

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-offerings/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_offerings import marketplace_provider_offerings_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_offerings_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_offerings_add_user
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import { marketplaceProviderOfferingsAddUser } from 'waldur-js-client';

try {
  const response = await marketplaceProviderOfferingsAddUser({
  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-offerings/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_offerings import marketplace_provider_offerings_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_offerings_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_offerings_delete_user
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import { marketplaceProviderOfferingsDeleteUser } from 'waldur-js-client';

try {
  const response = await marketplaceProviderOfferingsDeleteUser({
  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.


Refresh offering user usernames

Triggers a refresh of usernames for all non-restricted users associated with this offering, based on the current username generation policy.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/refresh_offering_usernames/ \
  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_offerings import marketplace_provider_offerings_refresh_offering_usernames # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsRefreshOfferingUsernames({
  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

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-offerings/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_offerings import marketplace_provider_offerings_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_offerings_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_offerings_update_user
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import { marketplaceProviderOfferingsUpdateUser } from 'waldur-js-client';

try {
  const response = await marketplaceProviderOfferingsUpdateUser({
  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)

Offering Components

Create an offering component

Adds a new custom component to an offering.

1
2
3
4
5
6
7
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/create_offering_component/ \
  Authorization:"Token YOUR_API_TOKEN" \
  billing_type="fixed" \
  type="string-value" \
  name="my-awesome-marketplace-provider-offering"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.offering_component_request import OfferingComponentRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_create_offering_component # (2)

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

body_data = OfferingComponentRequest(
    billing_type="fixed",
    type="string-value",
    name="my-awesome-marketplace-provider-offering"
)
response = marketplace_provider_offerings_create_offering_component.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsCreateOfferingComponent({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "billing_type": "fixed",
    "type": "string-value",
    "name": "my-awesome-marketplace-provider-offering"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required Description
billing_type string
Enum: fixed, usage, limit, one, few
type string Unique internal name of the measured unit, for example floating_ip.
name string Display name for the measured unit, for example, Floating IP.
description string
measured_unit string Unit of measurement, for example, GB.
unit_factor integer The conversion factor from backend units to measured_unit
limit_period any
limit_amount integer
article_code string
max_value integer
min_value integer
max_available_limit integer
is_boolean boolean
default_limit integer
is_prepaid boolean
overage_component string (uuid)
min_prepaid_duration integer
max_prepaid_duration integer

201 - No response body


Remove an offering component

Removes a custom component from an offering. Built-in components cannot be removed.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/remove_offering_component/ \
  Authorization:"Token YOUR_API_TOKEN" \
  uuid="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.remove_offering_component_request import RemoveOfferingComponentRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_remove_offering_component # (2)

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

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

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

try {
  const response = await marketplaceProviderOfferingsRemoveOfferingComponent({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "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
uuid string (uuid)

200 - No response body


Update an offering component

Updates the properties of a specific component within an offering.

1
2
3
4
5
6
7
8
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_offering_component/ \
  Authorization:"Token YOUR_API_TOKEN" \
  uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
  billing_type="fixed" \
  type="string-value" \
  name="my-awesome-marketplace-provider-offering"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.update_offering_component_request import UpdateOfferingComponentRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_update_offering_component # (2)

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

body_data = UpdateOfferingComponentRequest(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    billing_type="fixed",
    type="string-value",
    name="my-awesome-marketplace-provider-offering"
)
response = marketplace_provider_offerings_update_offering_component.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsUpdateOfferingComponent({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "billing_type": "fixed",
    "type": "string-value",
    "name": "my-awesome-marketplace-provider-offering"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required Description
uuid string (uuid)
billing_type string
Enum: fixed, usage, limit, one, few
type string Unique internal name of the measured unit, for example floating_ip.
name string Display name for the measured unit, for example, Floating IP.
description string
measured_unit string Unit of measurement, for example, GB.
unit_factor integer The conversion factor from backend units to measured_unit
limit_period any
limit_amount integer
article_code string
max_value integer
min_value integer
max_available_limit integer
is_boolean boolean
default_limit integer
is_prepaid boolean
overage_component string (uuid)
min_prepaid_duration integer
max_prepaid_duration integer

200 - No response body


Software Catalogs and Partitions

Add a partition to an offering

Adds a new partition configuration to an offering.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/add_partition/ \
  Authorization:"Token YOUR_API_TOKEN" \
  offering="a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
  partition_name="string-value"
 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.offering_partition_request import OfferingPartitionRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_add_partition # (2)

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

body_data = OfferingPartitionRequest(
    offering="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    partition_name="string-value"
)
response = marketplace_provider_offerings_add_partition.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsAddPartition({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "offering": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "partition_name": "string-value"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required Description
offering string (uuid)
partition_name string Name of the SLURM partition
cpu_bind integer Default task binding policy (SLURM cpu_bind)
def_cpu_per_gpu integer Default CPUs allocated per GPU
max_cpus_per_node integer Maximum allocated CPUs per node
max_cpus_per_socket integer Maximum allocated CPUs per socket
def_mem_per_cpu integer (int64) Default memory per CPU in MB
def_mem_per_gpu integer (int64) Default memory per GPU in MB
def_mem_per_node integer (int64) Default memory per node in MB
max_mem_per_cpu integer (int64) Maximum memory per CPU in MB
max_mem_per_node integer (int64) Maximum memory per node in MB
default_time integer Default time limit in minutes
max_time integer Maximum time limit in minutes
grace_time integer Preemption grace time in seconds
max_nodes integer Maximum nodes per job
min_nodes integer Minimum nodes per job
exclusive_topo boolean Exclusive topology access required
exclusive_user boolean Exclusive user access required
priority_tier integer Priority tier for scheduling and preemption
qos string Quality of Service (QOS) name
req_resv boolean Require reservation for job allocation

201 -

Field Type Description
uuid string (uuid)
created string (date-time)
modified string (date-time)
offering string (uuid)
offering_name string
partition_name string Name of the SLURM partition
cpu_bind integer Default task binding policy (SLURM cpu_bind)
def_cpu_per_gpu integer Default CPUs allocated per GPU
max_cpus_per_node integer Maximum allocated CPUs per node
max_cpus_per_socket integer Maximum allocated CPUs per socket
def_mem_per_cpu integer (int64) Default memory per CPU in MB
def_mem_per_gpu integer (int64) Default memory per GPU in MB
def_mem_per_node integer (int64) Default memory per node in MB
max_mem_per_cpu integer (int64) Maximum memory per CPU in MB
max_mem_per_node integer (int64) Maximum memory per node in MB
default_time integer Default time limit in minutes
max_time integer Maximum time limit in minutes
grace_time integer Preemption grace time in seconds
max_nodes integer Maximum nodes per job
min_nodes integer Minimum nodes per job
exclusive_topo boolean Exclusive topology access required
exclusive_user boolean Exclusive user access required
priority_tier integer Priority tier for scheduling and preemption
qos string Quality of Service (QOS) name
req_resv boolean Require reservation for job allocation

Add a software catalog to an offering

Associates a software catalog with an offering and configures enabled CPU architectures.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/add_software_catalog/ \
  Authorization:"Token YOUR_API_TOKEN" \
  offering="a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
  catalog="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.offering_software_catalog_request import OfferingSoftwareCatalogRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_add_software_catalog # (2)

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

body_data = OfferingSoftwareCatalogRequest(
    offering="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    catalog="a1b2c3d4-e5f6-7890-abcd-ef1234567890"
)
response = marketplace_provider_offerings_add_software_catalog.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsAddSoftwareCatalog({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "offering": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "catalog": "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
offering string (uuid)
catalog string (uuid)
enabled_cpu_family any List of enabled CPU families: ['x86_64', 'aarch64']
enabled_cpu_microarchitectures any List of enabled CPU microarchitectures: ['generic', 'zen3']
partition string (uuid)

201 -

Field Type
uuid string (uuid)

Remove a partition from an offering

Removes a partition configuration from an offering.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/remove_partition/ \
  Authorization:"Token YOUR_API_TOKEN" \
  partition_uuid="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.remove_partition_request import RemovePartitionRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_remove_partition # (2)

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

body_data = RemovePartitionRequest(
    partition_uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890"
)
response = marketplace_provider_offerings_remove_partition.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsRemovePartition({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "partition_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
partition_uuid string (uuid)

204 - No response body


Remove a software catalog from an offering

Disassociates a software catalog from an offering.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/remove_software_catalog/ \
  Authorization:"Token YOUR_API_TOKEN" \
  offering_catalog_uuid="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.remove_software_catalog_request import RemoveSoftwareCatalogRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_remove_software_catalog # (2)

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

body_data = RemoveSoftwareCatalogRequest(
    offering_catalog_uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890"
)
response = marketplace_provider_offerings_remove_software_catalog.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsRemoveSoftwareCatalog({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "offering_catalog_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
offering_catalog_uuid string (uuid)

204 - No response body


Update a partition of an offering

Updates the configuration of an existing partition associated with an offering.

1
2
3
4
http \
  PATCH \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_partition/ \
  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_offering_partition_update_request import PatchedOfferingPartitionUpdateRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_update_partition_partial_update # (2)

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

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

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

try {
  const response = await marketplaceProviderOfferingsUpdatePartitionPartialUpdate({
  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
partition_uuid string (uuid)
Constraints: write-only
partition_name string Name of the SLURM partition
cpu_bind integer Default task binding policy (SLURM cpu_bind)
def_cpu_per_gpu integer Default CPUs allocated per GPU
max_cpus_per_node integer Maximum allocated CPUs per node
max_cpus_per_socket integer Maximum allocated CPUs per socket
def_mem_per_cpu integer (int64) Default memory per CPU in MB
def_mem_per_gpu integer (int64) Default memory per GPU in MB
def_mem_per_node integer (int64) Default memory per node in MB
max_mem_per_cpu integer (int64) Maximum memory per CPU in MB
max_mem_per_node integer (int64) Maximum memory per node in MB
default_time integer Default time limit in minutes
max_time integer Maximum time limit in minutes
grace_time integer Preemption grace time in seconds
max_nodes integer Maximum nodes per job
min_nodes integer Minimum nodes per job
exclusive_topo boolean Exclusive topology access required
exclusive_user boolean Exclusive user access required
priority_tier integer Priority tier for scheduling and preemption
qos string Quality of Service (QOS) name
req_resv boolean Require reservation for job allocation

200 -

Field Type Description
uuid string (uuid)
created string (date-time)
modified string (date-time)
offering string (uuid)
offering_name string
partition_name string Name of the SLURM partition
cpu_bind integer Default task binding policy (SLURM cpu_bind)
def_cpu_per_gpu integer Default CPUs allocated per GPU
max_cpus_per_node integer Maximum allocated CPUs per node
max_cpus_per_socket integer Maximum allocated CPUs per socket
def_mem_per_cpu integer (int64) Default memory per CPU in MB
def_mem_per_gpu integer (int64) Default memory per GPU in MB
def_mem_per_node integer (int64) Default memory per node in MB
max_mem_per_cpu integer (int64) Maximum memory per CPU in MB
max_mem_per_node integer (int64) Maximum memory per node in MB
default_time integer Default time limit in minutes
max_time integer Maximum time limit in minutes
grace_time integer Preemption grace time in seconds
max_nodes integer Maximum nodes per job
min_nodes integer Minimum nodes per job
exclusive_topo boolean Exclusive topology access required
exclusive_user boolean Exclusive user access required
priority_tier integer Priority tier for scheduling and preemption
qos string Quality of Service (QOS) name
req_resv boolean Require reservation for job allocation

Update software catalog configuration

Updates the configuration of a software catalog associated with an offering, such as enabled architectures or partition.

1
2
3
4
http \
  PATCH \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_software_catalog/ \
  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_offering_software_catalog_update_request import PatchedOfferingSoftwareCatalogUpdateRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_update_software_catalog_partial_update # (2)

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

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

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

try {
  const response = await marketplaceProviderOfferingsUpdateSoftwareCatalogPartialUpdate({
  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
offering_catalog_uuid string (uuid)
Constraints: write-only
catalog string (uuid)
enabled_cpu_family any List of enabled CPU families: ['x86_64', 'aarch64']
enabled_cpu_microarchitectures any List of enabled CPU microarchitectures: ['generic', 'zen3']
partition string (uuid)

200 -

Field Type Description
uuid string (uuid)
created string (date-time)
modified string (date-time)
offering string (uuid)
catalog string (uuid)
offering_name string
catalog_name string
catalog_version string
enabled_cpu_family any List of enabled CPU families: ['x86_64', 'aarch64']
enabled_cpu_microarchitectures any List of enabled CPU microarchitectures: ['generic', 'zen3']
partition string (uuid)
partition_name string

Endpoints

Add an access endpoint to an offering

Adds a new access endpoint (URL) to an offering.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/add_endpoint/ \
  Authorization:"Token YOUR_API_TOKEN" \
  name="my-awesome-marketplace-provider-offering" \
  url="string-value"
 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.nested_endpoint_request import NestedEndpointRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_add_endpoint # (2)

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

body_data = NestedEndpointRequest(
    name="my-awesome-marketplace-provider-offering",
    url="string-value"
)
response = marketplace_provider_offerings_add_endpoint.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsAddEndpoint({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "name": "my-awesome-marketplace-provider-offering",
    "url": "string-value"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required
name string
url string

201 -

Field Type
uuid string (uuid)

Delete an access endpoint from an offering

Deletes an existing access endpoint from an offering by its UUID.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/delete_endpoint/ \
  Authorization:"Token YOUR_API_TOKEN" \
  uuid="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.endpoint_uuid_request import EndpointUUIDRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_delete_endpoint # (2)

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

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

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

try {
  const response = await marketplaceProviderOfferingsDeleteEndpoint({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "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
uuid string (uuid)

204 - No response body


Attachments and Images

Delete offering image

Deletes the main image of an offering.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/delete_image/ \
  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_offerings import marketplace_provider_offerings_delete_image # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsDeleteImage({
  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)

204 - No response body


Delete offering thumbnail

Deletes the thumbnail image of an offering.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/delete_thumbnail/ \
  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_offerings import marketplace_provider_offerings_delete_thumbnail # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsDeleteThumbnail({
  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)

204 - No response body


Update offering image

Uploads or replaces the main image for an offering.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_image/ \
  Authorization:"Token YOUR_API_TOKEN" \
  image="string-value"
 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.offering_image_request import OfferingImageRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_update_image # (2)

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

body_data = OfferingImageRequest(
    image="string-value"
)
response = marketplace_provider_offerings_update_image.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

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

200 - No response body


Update offering thumbnail

Uploads or replaces the thumbnail image for an offering.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_thumbnail/ \
  Authorization:"Token YOUR_API_TOKEN" \
  thumbnail="string-value"
 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.offering_thumbnail_request import OfferingThumbnailRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_update_thumbnail # (2)

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

body_data = OfferingThumbnailRequest(
    thumbnail="string-value"
)
response = marketplace_provider_offerings_update_thumbnail.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

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

200 - No response body


Configuration & Updates

Delete organization groups for offering

Removes all organization group associations from this offering, making it accessible to all.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/delete_organization_groups/ \
  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_offerings import marketplace_provider_offerings_delete_organization_groups # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsDeleteOrganizationGroups({
  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)

204 - No response body


Move an offering

Moves an offering to a different service provider. Requires staff permissions.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/move_offering/ \
  Authorization:"Token YOUR_API_TOKEN" \
  customer="https://api.example.com/api/customer/a1b2c3d4-e5f6-7890-abcd-ef1234567890/" \
  preserve_permissions=true
 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.move_offering_request import MoveOfferingRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_move_offering # (2)

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

body_data = MoveOfferingRequest(
    customer="https://api.example.com/api/customer/a1b2c3d4-e5f6-7890-abcd-ef1234567890/",
    preserve_permissions=true
)
response = marketplace_provider_offerings_move_offering.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsMoveOffering({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "customer": "https://api.example.com/api/customer/a1b2c3d4-e5f6-7890-abcd-ef1234567890/",
    "preserve_permissions": true
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required
customer string (uri)
preserve_permissions boolean

200 -

Field Type Description
url string (uri)
uuid string (uuid)
created string (date-time)
name string
slug string
description string
full_description string
privacy_policy_link string (uri)
access_url string (uri) Publicly accessible offering access URL
endpoints array of objects
endpoints.uuid string (uuid)
endpoints.name string
endpoints.url string
software_catalogs array of objects
software_catalogs.uuid string (uuid)
software_catalogs.catalog object
software_catalogs.catalog.uuid string
software_catalogs.catalog.name string
software_catalogs.catalog.version string
software_catalogs.catalog.description string
software_catalogs.enabled_cpu_family any List of enabled CPU families: ['x86_64', 'aarch64']
software_catalogs.enabled_cpu_microarchitectures any List of enabled CPU microarchitectures: ['generic', 'zen3']
software_catalogs.package_count integer
software_catalogs.partition object
software_catalogs.partition.uuid string
software_catalogs.partition.partition_name string
software_catalogs.partition.priority_tier integer
software_catalogs.partition.qos string
partitions array of objects
partitions.uuid string (uuid)
partitions.partition_name string Name of the SLURM partition
partitions.cpu_bind integer Default task binding policy (SLURM cpu_bind)
partitions.def_cpu_per_gpu integer Default CPUs allocated per GPU
partitions.max_cpus_per_node integer Maximum allocated CPUs per node
partitions.max_cpus_per_socket integer Maximum allocated CPUs per socket
partitions.def_mem_per_cpu integer (int64) Default memory per CPU in MB
partitions.def_mem_per_gpu integer (int64) Default memory per GPU in MB
partitions.def_mem_per_node integer (int64) Default memory per node in MB
partitions.max_mem_per_cpu integer (int64) Maximum memory per CPU in MB
partitions.max_mem_per_node integer (int64) Maximum memory per node in MB
partitions.default_time integer Default time limit in minutes
partitions.max_time integer Maximum time limit in minutes
partitions.grace_time integer Preemption grace time in seconds
partitions.max_nodes integer Maximum nodes per job
partitions.min_nodes integer Minimum nodes per job
partitions.exclusive_topo boolean Exclusive topology access required
partitions.exclusive_user boolean Exclusive user access required
partitions.priority_tier integer Priority tier for scheduling and preemption
partitions.qos string Quality of Service (QOS) name
partitions.req_resv boolean Require reservation for job allocation
roles array of objects
roles.uuid string (uuid)
roles.name string
roles.url string (uri)
customer string (uri)
customer_uuid string (uuid)
customer_name string
project string (uri)
project_uuid string (uuid)
project_name string
category string (uri)
category_uuid string (uuid)
category_title string
attributes object (free-form)
options any
resource_options 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
plugin_options any
state any
vendor_details string
getting_started string
integration_guide string
thumbnail string (uri)
order_count 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)
screenshots array of objects
screenshots.name string
screenshots.uuid string (uuid)
screenshots.description string
screenshots.image string (uri)
screenshots.thumbnail string (uri)
screenshots.created string (date-time)
type string
shared boolean Accessible to all customers.
billable boolean Purchase and usage is invoiced.
scope string
scope_uuid string (uuid)
scope_name string (uuid)
scope_state any
scope_error_message string
files array of objects
files.name string
files.created string (date-time)
files.file string (uri)
quotas array of objects
quotas.name string
quotas.usage integer
quotas.limit integer
paused_reason string
datacite_doi string
citation_count integer Number of citations of a DOI
latitude number (double)
longitude number (double)
country any
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
image string (uri)
total_customers integer
total_cost integer
total_cost_estimated integer
parent_description string
parent_uuid string (uuid)
parent_name string
backend_metadata any
has_compliance_requirements boolean
billing_type_classification string Classify offering components by billing type. Returns 'limit_only', 'usage_only', or 'mixed'.
compliance_checklist string (uri)
user_has_consent boolean
google_calendar_is_public boolean
google_calendar_link string Get the Google Calendar link for an offering.
promotion_campaigns array of objects
promotion_campaigns.uuid string (uuid)
promotion_campaigns.name string
promotion_campaigns.start_date string (date) Starting from this date, the campaign is active.
promotion_campaigns.end_date string (date) The last day the campaign is active.
promotion_campaigns.discount_type string
Enum: discount, special_price
promotion_campaigns.discount integer
promotion_campaigns.stock integer
promotion_campaigns.description string
promotion_campaigns.months integer How many months in a row should the related service (when activated) get special deal (0 for indefinitely until active)
promotion_campaigns.service_provider string (uri)

Set offering backend metadata

Updates the backend-specific metadata for an offering.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/set_backend_metadata/ \
  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.offering_backend_metadata_request import OfferingBackendMetadataRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_set_backend_metadata # (2)

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

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

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

try {
  const response = await marketplaceProviderOfferingsSetBackendMetadata({
  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
backend_metadata any

200 - No response body


Update offering attributes

Updates the attributes of an offering.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_attributes/ \
  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_offerings import marketplace_provider_offerings_update_attributes # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsUpdateAttributes({
  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 - No response body


Update offering compliance checklist

Associates a compliance checklist with an offering.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_compliance_checklist/ \
  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.offering_compliance_checklist_update_request import OfferingComplianceChecklistUpdateRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_update_compliance_checklist # (2)

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

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

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

try {
  const response = await marketplaceProviderOfferingsUpdateComplianceChecklist({
  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
compliance_checklist string (uuid)

200 - No response body


Update offering category

Updates the category of an offering.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_description/ \
  Authorization:"Token YOUR_API_TOKEN" \
  category="https://api.example.com/api/category/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.offering_description_update_request import OfferingDescriptionUpdateRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_update_description # (2)

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

body_data = OfferingDescriptionUpdateRequest(
    category="https://api.example.com/api/category/a1b2c3d4-e5f6-7890-abcd-ef1234567890/"
)
response = marketplace_provider_offerings_update_description.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsUpdateDescription({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "category": "https://api.example.com/api/category/a1b2c3d4-e5f6-7890-abcd-ef1234567890/"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required
category string (uri)

200 - No response body


Update offering integration settings

Updates the backend integration settings for an offering, including plugin options, secret options, and service attributes.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_integration/ \
  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.offering_integration_update_request import OfferingIntegrationUpdateRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_update_integration # (2)

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

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

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

try {
  const response = await marketplaceProviderOfferingsUpdateIntegration({
  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
secret_options object
secret_options.heappe_cluster_password string HEAppE cluster password
secret_options.heappe_password string HEAppE password
secret_options.ipv4_external_ip_mapping array of objects OpenStack IPv4 external IP mapping
secret_options.ipv4_external_ip_mapping.floating_ip string Floating IP
secret_options.ipv4_external_ip_mapping.external_ip string External IP
secret_options.openstack_api_tls_certificate string
secret_options.dns_nameservers array of strings Default value for new subnets DNS name servers. Should be defined as list.
secret_options.shared_user_password string GLAuth shared user password
secret_options.template_confirmation_comment string Template confirmation comment
secret_options.language string Script language: Python or Bash
secret_options.environ any Script environment variables
secret_options.create string Script for resource creation
secret_options.terminate string Script for resource termination
secret_options.update string Script for resource update
secret_options.pull string Script for regular resource pull
secret_options.api_url string API URL
secret_options.token string Waldur access token
secret_options.customer_uuid string Organization UUID
secret_options.backend_url string
secret_options.username string
secret_options.password string
secret_options.cloud_init_template string
secret_options.managed_rancher_load_balancer_cloud_init_template string
secret_options.vault_host string Host of the Vault server
secret_options.vault_port integer Port of the Vault server
secret_options.vault_token string Token for the Vault server
secret_options.vault_tls_verify boolean Whether to verify the Vault server certificate
secret_options.keycloak_url string URL of the Keycloak server
secret_options.keycloak_realm string Keycloak realm for Rancher
secret_options.keycloak_user_realm string Keycloak user realm for auth
secret_options.keycloak_username string Username of the Keycloak integration user
secret_options.keycloak_password string Password of the Keycloak integration user
secret_options.keycloak_sync_frequency integer Frequency in minutes for syncing Keycloak users
secret_options.keycloak_ssl_verify boolean Indicates whether verify SSL certificates
secret_options.argocd_k8s_namespace string Namespace where ArgoCD is deployed
secret_options.argocd_k8s_kubeconfig string Kubeconfig with access to namespace where ArgoCD is deployed
secret_options.base_image_name string Base image name
secret_options.private_registry_url string URL of a private registry for a cluster
secret_options.private_registry_user string Username for accessing a private registry
secret_options.private_registry_password string Password for accessing a private registry
secret_options.k8s_version string Kubernetes version
secret_options.node_disk_driver any OpenStack disk driver for Rancher nodes
plugin_options object
plugin_options.auto_approve_remote_orders boolean If set to True, an order can be processed without approval
plugin_options.service_provider_can_create_offering_user boolean Service provider can create offering user
plugin_options.max_resource_termination_offset_in_days integer Maximum resource termination offset in days
plugin_options.default_resource_termination_offset_in_days integer If set, it will be used as a default resource termination offset in days
plugin_options.is_resource_termination_date_required boolean If set to True, resource termination date is required
plugin_options.latest_date_for_resource_termination string (date) If set, it will be used as a latest date for resource termination
plugin_options.auto_approve_in_service_provider_projects boolean Skip approval of public offering belonging to the same organization under which the request is done
plugin_options.supports_downscaling boolean If set to True, it will be possible to downscale resources
plugin_options.supports_pausing boolean If set to True, it will be possible to pause resources
plugin_options.minimal_team_count_for_provisioning integer Minimal team count required for provisioning of resources
plugin_options.maximal_resource_count_per_project integer Maximal number of offering resources allowed per project
plugin_options.required_team_role_for_provisioning string Required user role in a project for provisioning of resources
plugin_options.enable_purchase_order_upload boolean If set to True, users will be able to upload purchase orders.
plugin_options.require_purchase_order_upload boolean If set to True, users will be required to upload purchase orders.
plugin_options.conceal_billing_data boolean If set to True, pricing and components tab would be concealed.
plugin_options.create_orders_on_resource_option_change boolean If set to True, create orders when options of related resources are changed.
plugin_options.can_restore_resource boolean If set to True, resource can be restored.
plugin_options.default_internal_network_mtu integer If set, it will be used as a default MTU for the first network in a tenant
plugin_options.max_instances integer Default limit for number of instances in OpenStack tenant
plugin_options.max_volumes integer Default limit for number of volumes in OpenStack tenant
plugin_options.max_security_groups integer Default limit for number of security groups in OpenStack tenant
plugin_options.storage_mode any Storage mode for OpenStack offering
plugin_options.snapshot_size_limit_gb integer Default limit for snapshot size in GB
plugin_options.heappe_cluster_id string HEAppE cluster id
plugin_options.heappe_local_base_path string HEAppE local base path
plugin_options.heappe_url string HEAppE url
plugin_options.heappe_username string HEAppE username
plugin_options.homedir_prefix string GLAuth homedir prefix
Constraints: default: /home/
plugin_options.scratch_project_directory string HEAppE scratch project directory
plugin_options.project_permanent_directory string HEAppE project permanent directory
plugin_options.initial_primarygroup_number integer GLAuth initial primary group number
Constraints: default: 5000
plugin_options.initial_uidnumber integer GLAuth initial uidnumber
Constraints: default: 5000
plugin_options.initial_usergroup_number integer GLAuth initial usergroup number
Constraints: default: 6000
plugin_options.username_anonymized_prefix string GLAuth prefix for anonymized usernames
Constraints: default: waldur_
plugin_options.username_generation_policy any GLAuth username generation policy
Constraints: default: service_provider
plugin_options.enable_issues_for_membership_changes boolean Enable issues for membership changes
plugin_options.deployment_mode any Rancher deployment mode
plugin_options.flavors_regex string Regular expression to limit flavors list
plugin_options.openstack_offering_uuid_list array of strings List of UUID of OpenStack offerings where tenant can be created
plugin_options.managed_rancher_server_flavor_name string
plugin_options.managed_rancher_server_system_volume_size_gb integer
plugin_options.managed_rancher_server_system_volume_type_name string
plugin_options.managed_rancher_server_data_volume_size_gb integer
plugin_options.managed_rancher_server_data_volume_type_name string
plugin_options.managed_rancher_worker_system_volume_size_gb integer
plugin_options.managed_rancher_worker_system_volume_type_name string
plugin_options.managed_rancher_load_balancer_flavor_name string
plugin_options.managed_rancher_load_balancer_system_volume_size_gb integer
plugin_options.managed_rancher_load_balancer_system_volume_type_name string
plugin_options.managed_rancher_load_balancer_data_volume_size_gb integer
plugin_options.managed_rancher_load_balancer_data_volume_type_name string
plugin_options.managed_rancher_tenant_max_cpu integer Max number of vCPUs for tenants
plugin_options.managed_rancher_tenant_max_ram integer Max number of RAM for tenants (GB)
plugin_options.managed_rancher_tenant_max_disk integer Max size of disk space for tenants (GB)
plugin_options.account_name_generation_policy any Slurm account name generation policy
plugin_options.auto_approve_marketplace_script boolean If set to False, an order requires manual provider approval
Constraints: default: True
plugin_options.highlight_backend_id_display boolean Defines if backend_id should be shown more prominently by the UI
Constraints: default: False
plugin_options.backend_id_display_label string Label used by UI for showing value of the backend_id
Constraints: default: Backend ID
service_attributes any
backend_id string

200 - No response body


Update offering location

Updates the geographical location (latitude and longitude) of an offering.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_location/ \
  Authorization:"Token YOUR_API_TOKEN" \
  latitude=123.45 \
  longitude=123.45
 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.offering_location_update_request import OfferingLocationUpdateRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_update_location # (2)

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

body_data = OfferingLocationUpdateRequest(
    latitude=123.45,
    longitude=123.45
)
response = marketplace_provider_offerings_update_location.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

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

200 - No response body


Update offering options

Updates the order form options for an offering.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_options/ \
  Authorization:"Token YOUR_API_TOKEN" \
  options:='{}'
 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.offering_options_update_request import OfferingOptionsUpdateRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_update_options # (2)

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

body_data = OfferingOptionsUpdateRequest(
    options={}
)
response = marketplace_provider_offerings_update_options.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsUpdateOptions({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "options": {}
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required
options object
options.order array of strings
options.options object (free-form)

200 - No response body


Update organization groups for offering

Sets the list of organization groups that can access this offering.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_organization_groups/ \
  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.organization_groups_request import OrganizationGroupsRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_update_organization_groups # (2)

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

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

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

try {
  const response = await marketplaceProviderOfferingsUpdateOrganizationGroups({
  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
organization_groups array of string (uri)s

200 - No response body


Update offering overview

Updates the overview fields of an offering, such as name, description, and getting started guide.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_overview/ \
  Authorization:"Token YOUR_API_TOKEN" \
  name="my-awesome-marketplace-provider-offering"
 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.offering_overview_update_request import OfferingOverviewUpdateRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_update_overview # (2)

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

body_data = OfferingOverviewUpdateRequest(
    name="my-awesome-marketplace-provider-offering"
)
response = marketplace_provider_offerings_update_overview.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsUpdateOverview({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "name": "my-awesome-marketplace-provider-offering"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required Description
name string
description string
full_description string
privacy_policy_link string (uri)
access_url string (uri) Publicly accessible offering access URL
getting_started string
integration_guide string
slug string

200 - No response body


Update offering resource options

Updates the resource report form options for an offering.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_resource_options/ \
  Authorization:"Token YOUR_API_TOKEN" \
  resource_options:='{}'
 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.offering_resource_options_update_request import OfferingResourceOptionsUpdateRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_update_resource_options # (2)

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

body_data = OfferingResourceOptionsUpdateRequest(
    resource_options={}
)
response = marketplace_provider_offerings_update_resource_options.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsUpdateResourceOptions({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "resource_options": {}
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required
resource_options object
resource_options.order array of strings
resource_options.options object (free-form)

200 - No response body


Data & Reporting

Get statistics for offering components

Returns monthly usage statistics for the components of an offering within a specified date range.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/component_stats/ \
  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_provider_offerings import marketplace_provider_offerings_component_stats_list # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsComponentStatsList({
  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
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
end string End date in format YYYY-MM.
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
start string Start date in format YYYY-MM.
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
period string
billing_period string
date string
usage integer
description string
measured_unit string
type string
name string

Get costs for an offering

Returns monthly cost data for an offering within a specified date range.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/costs/ \
  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_provider_offerings import marketplace_provider_offerings_costs_list # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsCostsList({
  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
accessible_via_calls boolean Accessible via calls
accounting_is_running boolean
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
end string End date in format YYYY-MM.
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
start string Start date in format YYYY-MM.
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
period string
price number (double)
tax number (double)
total number (double)

Get customers for an offering

Returns a paginated list of customers who have resources for this offering.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/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_provider_offerings import marketplace_provider_offerings_customers_list # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsCustomersList({
  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
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
uuid string (uuid)
name string
slug string
abbreviation string
phone_number string
email string (email)

List offerings grouped by provider

Returns a paginated list of active, shared offerings grouped by their service provider.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/groups/ \
  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_offerings import marketplace_provider_offerings_groups_list # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsGroupsList({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
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
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
customer_name string
customer_uuid string
offerings array of objects
offerings.offering_name string
offerings.offering_uuid string (uuid)

List customer projects for an offering

Returns a paginated list of projects that have consumed resources of this offering.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/list_customer_projects/ \
  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_provider_offerings import marketplace_provider_offerings_list_customer_projects_list # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsListCustomerProjectsList({
  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
page integer A page number within the paginated result set.
page_size integer Number of results to return per page.

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
slug string
customer string (uri)
customer_uuid string (uuid)
customer_name string
customer_slug string
customer_native_name string
customer_abbreviation string
description string
customer_display_billing_info_in_projects boolean
created string (date-time)
type string (uri)
type_name string
type_uuid string (uuid)
backend_id string
start_date string (date)
end_date string (date)
end_date_requested_by string (uri)
oecd_fos_2007_code any
oecd_fos_2007_label string
is_industry boolean
image string (uri)
resources_count integer
max_service_accounts integer Maximum number of service accounts allowed
kind any
is_removed boolean
termination_metadata any
staff_notes string
grace_period_days integer Number of extra days after project end date before resources are terminated. Overrides customer-level setting.
project_credit number (double)
marketplace_resource_count object (free-form)
billing_price_estimate any

List orders for an offering

Returns a paginated list of orders associated with a specific offering.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/orders/ \
  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_provider_offerings import marketplace_provider_offerings_orders_list # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsOrdersList({
  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
page integer A page number within the paginated result set.
page_size integer Number of results to return per page.

200 -

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

Field Type Description
offering string (uri)
offering_name string
offering_uuid string (uuid)
offering_description string
offering_image string (uri)
offering_thumbnail string (uri)
offering_type string
offering_shared boolean Accessible to all customers.
offering_billable boolean Purchase and usage is invoiced.
offering_plugin_options any Public data used by specific plugin, such as storage mode for OpenStack.
provider_name string
provider_uuid string (uuid)
provider_slug string
category_title string
category_uuid string (uuid)
category_icon string (uri)
plan string (uri)
plan_unit any
plan_name string
plan_uuid string (uuid)
plan_description string
attributes any
limits object (free-form)
uuid string (uuid)
created string (date-time)
modified string (date-time)
resource_uuid string (uuid)
resource_type string
resource_name string
cost string (decimal)
state any
output string
marketplace_resource_uuid string (uuid)
error_message string
error_traceback string
callback_url string (uri)
completed_at string (date-time)
request_comment string
attachment string (uri)
type any
start_date string (date) Enables delayed processing of resource provisioning order.
slug string
url string (uri)
consumer_reviewed_by string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
consumer_reviewed_by_full_name string
consumer_reviewed_by_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
consumer_reviewed_at string (date-time)
provider_reviewed_by string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
provider_reviewed_by_full_name string
provider_reviewed_by_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
provider_reviewed_at string (date-time)
created_by_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
created_by_full_name string
created_by_civil_number string
customer_name string
customer_uuid string (uuid)
customer_slug string
project_name string
project_uuid string (uuid)
project_description string
project_slug string
old_plan_name string
new_plan_name string
old_plan_uuid string (uuid)
new_plan_uuid string (uuid)
old_cost_estimate number (double)
new_cost_estimate string (decimal)
can_terminate boolean
fixed_price number (double)
activation_price number (double)
termination_comment string
backend_id string
order_subtype string
issue any

Retrieve a specific order for an offering

Returns details of a specific order associated with an offering.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/string-value/orders/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
  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_provider_offerings import marketplace_provider_offerings_orders_retrieve # (1)

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

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

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

200 -

Field Type Description
offering string (uri)
offering_name string
offering_uuid string (uuid)
offering_description string
offering_image string (uri)
offering_thumbnail string (uri)
offering_type string
offering_shared boolean Accessible to all customers.
offering_billable boolean Purchase and usage is invoiced.
offering_plugin_options any Public data used by specific plugin, such as storage mode for OpenStack.
provider_name string
provider_uuid string (uuid)
provider_slug string
category_title string
category_uuid string (uuid)
category_icon string (uri)
plan string (uri)
plan_unit any
plan_name string
plan_uuid string (uuid)
plan_description string
attributes any
limits object (free-form)
uuid string (uuid)
created string (date-time)
modified string (date-time)
resource_uuid string (uuid)
resource_type string
resource_name string
cost string (decimal)
state any
output string
marketplace_resource_uuid string (uuid)
error_message string
error_traceback string
callback_url string (uri)
completed_at string (date-time)
request_comment string
attachment string (uri)
type any
start_date string (date) Enables delayed processing of resource provisioning order.
slug string
url string (uri)
consumer_reviewed_by string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
consumer_reviewed_by_full_name string
consumer_reviewed_by_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
consumer_reviewed_at string (date-time)
provider_reviewed_by string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
provider_reviewed_by_full_name string
provider_reviewed_by_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
provider_reviewed_at string (date-time)
created_by_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
created_by_full_name string
created_by_civil_number string
customer_name string
customer_uuid string (uuid)
customer_slug string
project_name string
project_uuid string (uuid)
project_description string
project_slug string
old_plan_name string
new_plan_name string
old_plan_uuid string (uuid)
new_plan_uuid string (uuid)
old_cost_estimate number (double)
new_cost_estimate string (decimal)
can_terminate boolean
fixed_price number (double)
activation_price number (double)
termination_comment string
backend_id string
order_subtype string
issue any

Get offering statistics

Returns basic statistics for an offering, such as the number of active resources and customers.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/stats/ \
  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_offerings import marketplace_provider_offerings_stats_retrieve # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsStatsRetrieve({
  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
resources_count integer
customers_count integer

Returns comprehensive Terms of Service consent statistics for this offering, including user counts, consent rates, and historical data.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/tos_stats/ \
  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_offerings import marketplace_provider_offerings_tos_stats_retrieve # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsTosStatsRetrieve({
  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
active_users_count integer
total_users_count integer
active_users_percentage number (double)
accepted_consents_count integer
revoked_consents_count integer
total_consents_count integer
revoked_consents_over_time array of objects
revoked_consents_over_time.date string (date)
revoked_consents_over_time.count integer
tos_version_adoption array of objects
tos_version_adoption.version string
tos_version_adoption.users_count integer
active_users_over_time array of objects
active_users_over_time.date string (date)
active_users_over_time.count integer

Remote Actions & Sync

List importable resources

Returns a paginated list of resources that can be imported for this offering.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/importable_resources/ \
  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_provider_offerings import marketplace_provider_offerings_importable_resources_list # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsImportableResourcesList({
  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
page integer A page number within the paginated result set.
page_size integer Number of results to return per page.

200 -

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

Field Type
backend_id string
name string
type string
description string

Import a resource

Imports a backend resource into the marketplace.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/import_resource/ \
  Authorization:"Token YOUR_API_TOKEN" \
  backend_id="ext-a1b2c3d4" \
  project="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.import_resource_request import ImportResourceRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_import_resource # (2)

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

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

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

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

200 -

Field Type Description
offering string (uri)
offering_name string
offering_uuid string (uuid)
offering_description string
offering_image string (uri)
offering_thumbnail string (uri)
offering_type string
offering_shared boolean Accessible to all customers.
offering_billable boolean Purchase and usage is invoiced.
offering_plugin_options any Public data used by specific plugin, such as storage mode for OpenStack.
provider_name string
provider_uuid string (uuid)
provider_slug string
category_title string
category_uuid string (uuid)
category_icon string (uri)
plan string (uri)
plan_unit any
plan_name string
plan_uuid string (uuid)
plan_description string
attributes object (free-form)
limits object (free-form)
uuid string (uuid)
created string (date-time)
modified string (date-time)
url string (uri)
scope string
description string
state any
resource_uuid string (uuid)
backend_id string
effective_id string
resource_type string
project string (uri)
project_uuid string (uuid)
project_name string
project_description string
project_end_date string (date) The date is inclusive. Once reached, all project resource will be scheduled for termination.
project_end_date_requested_by string (uri)
customer_uuid string (uuid)
customer_name string
offering_slug string
parent_offering_uuid string (uuid)
parent_offering_name string
parent_offering_slug string
parent_uuid string (uuid)
parent_name string
backend_metadata any
is_usage_based boolean
is_limit_based boolean
name string
slug string
current_usages object (free-form)
can_terminate boolean
report array of objects
report.header string
report.body string
end_date string (date) The date is inclusive. Once reached, a resource will be scheduled for termination.
end_date_requested_by string (uri)
username string
limit_usage object (free-form)
downscaled boolean
restrict_member_access boolean
paused boolean
endpoints array of objects
endpoints.uuid string (uuid)
endpoints.name string
endpoints.url string
error_message string
error_traceback string
options any
available_actions array of strings
last_sync string (date-time)
order_in_progress any
creation_order any
service_settings_uuid string (uuid)
project_slug string
customer_slug string
user_requires_reconsent boolean Check if the current user needs to re-consent for this resource's offering.
renewal_date object (free-form)

Synchronize offering service settings

Schedules a synchronization task to pull the latest data for the offering's service settings from the backend.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/sync/ \
  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_offerings import marketplace_provider_offerings_sync # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsSync({
  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)

202 - No response body


Other Actions

Check if backend_id is unique

Checks if the provided backend_id has been used in resources of this offering or all offerings of the same customer. Returns true if unique, false if already used.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/check_unique_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.check_unique_backend_id_request import CheckUniqueBackendIDRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_check_unique_backend_id # (2)

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

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

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

try {
  const response = await marketplaceProviderOfferingsCheckUniqueBackendId({
  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
check_all_offerings boolean

200 -

Field Type
is_unique boolean

Export offering data

Exports an offering and all its connected parts to YAML format. Allows configuration of which components to include in the export.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/export_offering/ \
  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.offering_export_parameters_request import OfferingExportParametersRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_export_offering # (2)

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

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

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

try {
  const response = await marketplaceProviderOfferingsExportOffering({
  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
include_components boolean Include offering components in export
Constraints: default: True
include_plans boolean Include offering plans in export
Constraints: default: True
include_screenshots boolean Include offering screenshots in export
Constraints: default: True
include_files boolean Include offering files in export
Constraints: default: True
include_endpoints boolean Include offering access endpoints in export
Constraints: default: True
include_organization_groups boolean Include organization groups associations in export
Constraints: default: True
include_terms_of_service boolean Include terms of service configurations in export
Constraints: default: True
include_plugin_options boolean Include plugin options in export
Constraints: default: True
include_secret_options boolean Include secret options in export (WARNING: sensitive data)
Constraints: default: False
include_attributes boolean Include offering attributes in export
Constraints: default: True
include_options boolean Include offering options in export
Constraints: default: True
include_resource_options boolean Include resource options in export
Constraints: default: True

200 -

Field Type Description
offering_uuid string (uuid)
offering_name string
export_data any Complete export data containing the offering structure
exported_components array of strings List of exported component types
export_timestamp string (date-time)

Import offering data

Imports an offering and all its connected parts from YAML format. Allows configuration of which components to import and how to handle conflicts.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/import_offering/ \
  Authorization:"Token YOUR_API_TOKEN" \
  offering_data=null
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.offering_import_parameters_request import OfferingImportParametersRequest # (1)
from waldur_api_client.api.marketplace_provider_offerings import marketplace_provider_offerings_import_offering # (2)

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

body_data = OfferingImportParametersRequest(
    offering_data=null
)
response = marketplace_provider_offerings_import_offering.sync(
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceProviderOfferingsImportOffering({
  auth: "Token YOUR_API_TOKEN",
  body: {
    "offering_data": null
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required Description
customer string (uuid) Target customer for imported offering. If not provided, uses current user's customer
category string Target category name for imported offering. If not provided, uses category from export data
project string (uuid) Target project for imported offering (optional)
import_components boolean Import offering components
Constraints: default: True
import_plans boolean Import offering plans
Constraints: default: True
import_screenshots boolean Import offering screenshots
Constraints: default: True
import_files boolean Import offering files
Constraints: default: True
import_endpoints boolean Import offering access endpoints
Constraints: default: True
import_organization_groups boolean Import organization groups associations (may fail if groups don't exist)
Constraints: default: False
import_terms_of_service boolean Import terms of service configurations
Constraints: default: True
import_plugin_options boolean Import plugin options
Constraints: default: True
import_secret_options boolean Import secret options (WARNING: will overwrite existing secrets)
Constraints: default: False
overwrite_existing boolean Overwrite existing offering if one with the same name exists
Constraints: default: False
preserve_state boolean Preserve offering state from export, otherwise set to 'Draft'
Constraints: default: False
offering_data any The exported offering data to import

200 -

Field Type Description
imported_offering_uuid string (uuid)
imported_offering_name string
imported_components array of strings List of imported component types
warnings array of strings List of warnings encountered during import
import_timestamp string (date-time)

Mark an offering as available

Marks an unavailable offering as available.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/make_available/ \
  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_offerings import marketplace_provider_offerings_make_available # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsMakeAvailable({
  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
detail string
state string

Mark an offering as unavailable

Marks an active offering as unavailable, blocking all operations on its resources.

1
2
3
4
http \
  POST \
  https://api.example.com/api/marketplace-provider-offerings/a1b2c3d4-e5f6-7890-abcd-ef1234567890/make_unavailable/ \
  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_offerings import marketplace_provider_offerings_make_unavailable # (1)

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

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

try {
  const response = await marketplaceProviderOfferingsMakeUnavailable({
  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
detail string
state string