Skip to content

Marketplace Software Catalogs

Operations Summary

Method Endpoint Description
Core CRUD
GET /api/marketplace-software-catalogs/ List software catalogs
GET /api/marketplace-software-catalogs/{uuid}/ Retrieve a software catalog
POST /api/marketplace-software-catalogs/ Create a software catalog
POST /api/marketplace-software-catalogs/{uuid}/update_catalog/ Trigger async update for an existing catalog
PUT /api/marketplace-software-catalogs/{uuid}/ Update a software catalog
PATCH /api/marketplace-software-catalogs/{uuid}/ Partially update a software catalog
DELETE /api/marketplace-software-catalogs/{uuid}/ Delete a software catalog
Other Actions
GET /api/marketplace-software-catalogs/discover/ Discover available software catalog versions
POST /api/marketplace-software-catalogs/import_catalog/ Import a new software catalog

Core CRUD

List software catalogs

Returns a paginated list of available software catalogs, such as EESSI or Spack.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-software-catalogs/ \
  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.models.catalog_type_enum import CatalogTypeEnum # (1)
from waldur_api_client.models.software_catalog_o_enum import SoftwareCatalogOEnum # (2)
from waldur_api_client.api.marketplace_software_catalogs import marketplace_software_catalogs_list # (3)

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

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

try {
  const response = await marketplaceSoftwareCatalogsList({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Description
auto_update_enabled boolean Filter catalogs by auto-update status
catalog_type string Filter by catalog type (binary_runtime, source_package, package_manager)


Enum: binary_runtime, source_package, package_manager
description string Filter catalogs by description (case-insensitive partial match)
name string
o array Ordering

page integer A page number within the paginated result set.
page_size integer Number of results to return per page.
version string

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)
modified string (date-time)
name string Catalog name (e.g., EESSI, Spack)
version string Catalog version (e.g., 2023.06, 0.21.0)
catalog_type any Type of software catalog
catalog_type_display string
source_url string (uri) Catalog source URL
description string
metadata any Catalog-specific metadata (architecture maps, API endpoints, etc.)
auto_update_enabled boolean Whether to automatically update this catalog via scheduled tasks
last_update_attempt string (date-time)
last_successful_update string (date-time)
update_errors string
package_count integer
version_count integer
target_count integer

Retrieve a software catalog

Returns the details of a specific software catalog, including its name, version, and the number of packages it contains.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-software-catalogs/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_software_catalogs import marketplace_software_catalogs_retrieve # (1)

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

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

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

200 -

Field Type Description
url string (uri)
uuid string (uuid)
created string (date-time)
modified string (date-time)
name string Catalog name (e.g., EESSI, Spack)
version string Catalog version (e.g., 2023.06, 0.21.0)
catalog_type any Type of software catalog
catalog_type_display string
source_url string (uri) Catalog source URL
description string
metadata any Catalog-specific metadata (architecture maps, API endpoints, etc.)
auto_update_enabled boolean Whether to automatically update this catalog via scheduled tasks
last_update_attempt string (date-time)
last_successful_update string (date-time)
update_errors string
package_count integer
version_count integer
target_count integer

Create a software catalog

Creates a new software catalog. Requires staff permissions.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/marketplace-software-catalogs/ \
  Authorization:"Token YOUR_API_TOKEN" \
  name="my-awesome-marketplace-software-catalog" \
  version="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.software_catalog_request import SoftwareCatalogRequest # (1)
from waldur_api_client.api.marketplace_software_catalogs import marketplace_software_catalogs_create # (2)

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

body_data = SoftwareCatalogRequest(
    name="my-awesome-marketplace-software-catalog",
    version="string-value"
)
response = marketplace_software_catalogs_create.sync(
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceSoftwareCatalogsCreate({
  auth: "Token YOUR_API_TOKEN",
  body: {
    "name": "my-awesome-marketplace-software-catalog",
    "version": "string-value"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required Description
name string Catalog name (e.g., EESSI, Spack)
version string Catalog version (e.g., 2023.06, 0.21.0)
catalog_type any Type of software catalog
Constraints: default: binary_runtime
source_url string (uri) Catalog source URL
description string
metadata any Catalog-specific metadata (architecture maps, API endpoints, etc.)
auto_update_enabled boolean Whether to automatically update this catalog via scheduled tasks
update_errors string

201 -

Field Type Description
url string (uri)
uuid string (uuid)
created string (date-time)
modified string (date-time)
name string Catalog name (e.g., EESSI, Spack)
version string Catalog version (e.g., 2023.06, 0.21.0)
catalog_type any Type of software catalog
catalog_type_display string
source_url string (uri) Catalog source URL
description string
metadata any Catalog-specific metadata (architecture maps, API endpoints, etc.)
auto_update_enabled boolean Whether to automatically update this catalog via scheduled tasks
last_update_attempt string (date-time)
last_successful_update string (date-time)
update_errors string
package_count integer
version_count integer
target_count integer

Trigger async update for an existing catalog

Triggers a Celery task to update the given catalog from its upstream source. Returns 202 Accepted immediately. Staff only.

1
2
3
4
5
6
http \
  POST \
  https://api.example.com/api/marketplace-software-catalogs/a1b2c3d4-e5f6-7890-abcd-ef1234567890/update_catalog/ \
  Authorization:"Token YOUR_API_TOKEN" \
  name="my-awesome-marketplace-software-catalog" \
  version="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.software_catalog_request import SoftwareCatalogRequest # (1)
from waldur_api_client.api.marketplace_software_catalogs import marketplace_software_catalogs_update_catalog # (2)

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

body_data = SoftwareCatalogRequest(
    name="my-awesome-marketplace-software-catalog",
    version="string-value"
)
response = marketplace_software_catalogs_update_catalog.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceSoftwareCatalogsUpdateCatalog({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "name": "my-awesome-marketplace-software-catalog",
    "version": "string-value"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required Description
name string Catalog name (e.g., EESSI, Spack)
version string Catalog version (e.g., 2023.06, 0.21.0)
catalog_type any Type of software catalog
Constraints: default: binary_runtime
source_url string (uri) Catalog source URL
description string
metadata any Catalog-specific metadata (architecture maps, API endpoints, etc.)
auto_update_enabled boolean Whether to automatically update this catalog via scheduled tasks
update_errors string

202 - No response body


Update a software catalog

Updates an existing software catalog. Requires staff permissions.

1
2
3
4
5
6
http \
  PUT \
  https://api.example.com/api/marketplace-software-catalogs/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
  Authorization:"Token YOUR_API_TOKEN" \
  name="my-awesome-marketplace-software-catalog" \
  version="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.software_catalog_request import SoftwareCatalogRequest # (1)
from waldur_api_client.api.marketplace_software_catalogs import marketplace_software_catalogs_update # (2)

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

body_data = SoftwareCatalogRequest(
    name="my-awesome-marketplace-software-catalog",
    version="string-value"
)
response = marketplace_software_catalogs_update.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceSoftwareCatalogsUpdate({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "name": "my-awesome-marketplace-software-catalog",
    "version": "string-value"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required Description
name string Catalog name (e.g., EESSI, Spack)
version string Catalog version (e.g., 2023.06, 0.21.0)
catalog_type any Type of software catalog
Constraints: default: binary_runtime
source_url string (uri) Catalog source URL
description string
metadata any Catalog-specific metadata (architecture maps, API endpoints, etc.)
auto_update_enabled boolean Whether to automatically update this catalog via scheduled tasks
update_errors string

200 -

Field Type Description
url string (uri)
uuid string (uuid)
created string (date-time)
modified string (date-time)
name string Catalog name (e.g., EESSI, Spack)
version string Catalog version (e.g., 2023.06, 0.21.0)
catalog_type any Type of software catalog
catalog_type_display string
source_url string (uri) Catalog source URL
description string
metadata any Catalog-specific metadata (architecture maps, API endpoints, etc.)
auto_update_enabled boolean Whether to automatically update this catalog via scheduled tasks
last_update_attempt string (date-time)
last_successful_update string (date-time)
update_errors string
package_count integer
version_count integer
target_count integer

Partially update a software catalog

Partially updates an existing software catalog. Requires staff permissions.

1
2
3
4
http \
  PATCH \
  https://api.example.com/api/marketplace-software-catalogs/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.patched_software_catalog_request import PatchedSoftwareCatalogRequest # (1)
from waldur_api_client.api.marketplace_software_catalogs import marketplace_software_catalogs_partial_update # (2)

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

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

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

try {
  const response = await marketplaceSoftwareCatalogsPartialUpdate({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required Description
name string Catalog name (e.g., EESSI, Spack)
version string Catalog version (e.g., 2023.06, 0.21.0)
catalog_type any Type of software catalog
Constraints: default: binary_runtime
source_url string (uri) Catalog source URL
description string
metadata any Catalog-specific metadata (architecture maps, API endpoints, etc.)
auto_update_enabled boolean Whether to automatically update this catalog via scheduled tasks
update_errors string

200 -

Field Type Description
url string (uri)
uuid string (uuid)
created string (date-time)
modified string (date-time)
name string Catalog name (e.g., EESSI, Spack)
version string Catalog version (e.g., 2023.06, 0.21.0)
catalog_type any Type of software catalog
catalog_type_display string
source_url string (uri) Catalog source URL
description string
metadata any Catalog-specific metadata (architecture maps, API endpoints, etc.)
auto_update_enabled boolean Whether to automatically update this catalog via scheduled tasks
last_update_attempt string (date-time)
last_successful_update string (date-time)
update_errors string
package_count integer
version_count integer
target_count integer

Delete a software catalog

Deletes a software catalog. Requires staff permissions.

1
2
3
4
http \
  DELETE \
  https://api.example.com/api/marketplace-software-catalogs/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_software_catalogs import marketplace_software_catalogs_destroy # (1)

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

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

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


Other Actions

Discover available software catalog versions

Queries upstream sources (EESSI, Spack) for available catalog versions without creating anything. Returns detected versions and whether an update is available compared to existing database records.

1
2
3
4
http \
  GET \
  https://api.example.com/api/marketplace-software-catalogs/discover/ \
  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.models.catalog_type_enum import CatalogTypeEnum # (1)
from waldur_api_client.models.software_catalog_o_enum import SoftwareCatalogOEnum # (2)
from waldur_api_client.api.marketplace_software_catalogs import marketplace_software_catalogs_discover_list # (3)

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

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

try {
  const response = await marketplaceSoftwareCatalogsDiscoverList({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Description
auto_update_enabled boolean Filter catalogs by auto-update status
catalog_type string Filter by catalog type (binary_runtime, source_package, package_manager)


Enum: binary_runtime, source_package, package_manager
description string Filter catalogs by description (case-insensitive partial match)
name string
o array Ordering

page integer A page number within the paginated result set.
page_size integer Number of results to return per page.
version string

200 -

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

Field Type
name string
catalog_type string
latest_version string
existing boolean
existing_version string
update_available boolean

Import a new software catalog

Creates a new catalog record and triggers async data loading via Celery. Returns 202 Accepted immediately. Staff only.

1
2
3
4
5
http \
  POST \
  https://api.example.com/api/marketplace-software-catalogs/import_catalog/ \
  Authorization:"Token YOUR_API_TOKEN" \
  name="EESSI"
 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.software_catalog_import_request import SoftwareCatalogImportRequest # (1)
from waldur_api_client.api.marketplace_software_catalogs import marketplace_software_catalogs_import_catalog # (2)

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

body_data = SoftwareCatalogImportRequest(
    name="EESSI"
)
response = marketplace_software_catalogs_import_catalog.sync(
    client=client,
    body=body_data
)

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

try {
  const response = await marketplaceSoftwareCatalogsImportCatalog({
  auth: "Token YOUR_API_TOKEN",
  body: {
    "name": "EESSI"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required
name string

202 - No response body