Introduction

With the catalog management service, you can define the way users in your account can interact with the IBM Cloud® catalog and the private catalogs that you've created. You can use private catalogs to centrally manage access to products. For more information, see Customizing what's available in your private catalogs.

API endpoint

https://cm.globalcatalog.cloud.ibm.com/api/v1-beta

The code examples on this tab use the client library that is provided for Java.

Maven

<dependency>
	<groupId>com.ibm.cloud</groupId>
	<artifactId>platform-services</artifactId>
	<version>0.8.0</version>
</dependency>

Gradle

'com.ibm.cloud:platform-services:0.8.0'

GitHub

API endpoint

https://cm.globalcatalog.cloud.ibm.com/api/v1-beta

Creating an instance of the Catalog Management service using the Java SDK is shown below.

Authentication can be specified via environment variables.

export CATALOG_MANAGEMENT_AUTH_TYPE=iam
export CATALOG_MANAGEMENT_APIKEY={apikey}
import com.ibm.cloud.platform_services.catalog_management.v1.*;
import com.ibm.cloud.sdk.core.http.Response;
CatalogManagement service = CatalogManagement.newInstance();

The code examples on this tab use the client library that is provided for Node.js.

Installation

npm i @ibm-cloud/platform-services

GitHub

API endpoint

https://cm.globalcatalog.cloud.ibm.com/api/v1-beta

Creating an instance of the Catalog Management service using the Node.js SDK is shown below.

Authentication can be specified via environment variables.

export CATALOG_MANAGEMENT_AUTH_TYPE=iam
export CATALOG_MANAGEMENT_APIKEY={apikey}
const CatalogManagementV1 = require('@ibm-cloud/platform-services/catalog-management/v1');
service = CatalogManagementV1.newInstance({});

The code examples on this tab use the client library that is provided for Python.

Installation

To install, use pip or easy_install:

pip install --upgrade ibm-platform-services

or

easy_install --upgrade ibm-platform-services

GitHub

API endpoint

https://cm.globalcatalog.cloud.ibm.com/api/v1-beta

Creating an instance of the Catalog Management service using the Node.js SDK is shown below.

Authentication can be specified via environment variables.

export CATALOG_MANAGEMENT_AUTH_TYPE=iam
export CATALOG_MANAGEMENT_APIKEY={apikey}
from ibm_platform_services.catalog_management_v1 import *
service = CatalogManagementV1.new_instance()

There are a few different ways to download and install the Platform Services Go SDK project for use by your Go application:

  1. Go get command

Use this command to download and install the Platform Services Go SDK project to allow your Go application to use it:

go get -u github.ibm.com/ibmcloud/platform-services-go-sdk
  1. Go modules

If your application is using Go modules, you can add a suitable import to your Go application, like this:

import (
	"github.ibm.com/ibmcloud/platform-services-go-sdk/catalogmanagementv1"
)

Next, run go mod tidy to download and install the new dependency and update your Go application's go.mod file.

  1. Dep dependency manager

If your application is using the dep dependency management tool, you can add a dependency to your Gopkg.toml file. Here is an example:

[[constraint]]
   name = "github.ibm.com/ibmcloud/platform-services-go-sdk/catalogmanagementv1"
   version = "0.7.0"

then run

dep ensure

GitHub

API endpoint

https://cm.globalcatalog.cloud.ibm.com/api/v1-beta

Creating an instance of the Catalog Management service using the Go SDK is shown below.

Authentication can be specified via environment variables.

export CATALOG_MANAGEMENT_AUTH_TYPE=iam
export CATALOG_MANAGEMENT_APIKEY={apikey}
import (
    "github.com/IBM/go-sdk-core/v3/core"
    "github.com/IBM/platform-services-go-sdk/catalogmanagementv1"
)
service, _ := catalogmanagementv1.NewCatalogManagementV1UsingExternalConfig(
	&catalogmanagementv1.CatalogManagementV1Options{},
)

Endpoint URLs

The Catalog Management API uses the following global endpoint URL for all regions. When you call the API, add the path for each method to form the complete API endpoint for your requests.

https://cm.globalcatalog.cloud.ibm.com

If you enabled service endpoints in your account, you can send API requests over the IBM Cloud® private network at the following base endpoint URLs. For more information, see Enabling VRF and service endpoints.

  • Private endpoint URL for VPC infrastructure: https://cm.private.globalcatalog.cloud.ibm.com
  • Private endpoint URLs for classic infrastructure:
    • Dallas: https://cm.private.us-south.globalcatalog.cloud.ibm.com
    • Washington DC: https://cm.private.us-east.globalcatalog.cloud.ibm.com

Example API request

curl -X {request_method} "https://cm.globalcatalog.cloud.ibm.com/{method_endpoint}"

Replace {request_method} and {method_endpoint} in this example with the values for your particular API call.

Error handling

The Catalog Management API uses standard HTTP response codes to indicate whether a method completed successfully. A 200 type response always indicates success. A 400 type response is a failure, and a 500 type response is an internal system error.

Methods

Get catalog account settings

Get the account level settings for the account for private catalog

GET /catalogaccount

Request

No Request Parameters

This method does not accept any request parameters.

  • getOptions := service.NewGetCatalogAccountOptions()
    _, response, _ := service.GetCatalogAccount(getOptions)
    fmt.Println(response)
  • Response<Account> response = service.getCatalogAccount().execute();
    System.out.println(response.getResult());
  • response = self.service.get_catalog_account()
    print(response)
  • response = await service.getCatalogAccount();
    console.log(response);

Response

Account information

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Update account settings

Update the account level settings for the account for private catalog

PUT /catalogaccount

Request

Account information

  • curl -X "PUT" "https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/catalogaccount" -H "accept: */*" -H "Authorization: {iam-bearer-token}" -d '{"id":"string","hide_IBM_cloud_catalog":true,"account_filters":{"include_all":true,"category_filters":{"additionalProp1":{"include":true,"filter":{"filter_terms":["string"]}},"additionalProp2":{"include":true,"filter":{"filter_terms":["string"]}},"additionalProp3":{"include":true,"filter":{"filter_terms":["string"]}}},"id_filters":{"include":{"filter_terms":["string"]},"exclude":{"filter_terms":["string"]}}}}'

Response

Account information

Status Code

  • Successful update. Your permissions determine if you an update or not

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get catalog account audit logs

Get the audit logs associated with a catalog account.

GET /catalogaccount/audits

Request

Query Parameters

  • Start token for a query

  • number or results to return in the query

    Possible values: value ≤ 1000

    Default: 100

  • Auditlog Lookup Names - by default names are not returned in auditlog.

Response

A collection of audit records

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get a catalog account audit log entry

Get the full audit log entry associated with a catalog account.

GET /catalogaccount/audits/{auditlog_identifier}

Request

Path Parameters

  • Auditlog ID

Query Parameters

  • Auditlog Lookup Names - by default names are not returned in auditlog.

Response

An audit log which describes a change made to a catalog or associated resource.

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get catalog account filters

Get the accumulated filters of the account and of the catalogs you have access to.

GET /catalogaccount/filters

Request

Query Parameters

  • catalog id. Narrow down filters to the account and just the one catalog.

  • getOptions := service.NewGetCatalogAccountFiltersOptions()
    _, response, _ := service.GetCatalogAccountFilters(getOptions)
    fmt.Println(response)
  • Response<AccumulatedFilters> response = service.getCatalogAccountFilters().execute();
    System.out.println(response.getResult());
  • response = self.service.get_catalog_account_filters()
    print(response)
  • response = await service.getCatalogAccountFilters();
    console.log(response);

Response

The accumulated filters for an account. This will return the account filters plus a filter for each catalog the user has access to.

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get catalog account audit log

Get the audit log associated with a catalog account.

GET /catalogaccount/audit

Request

Query Parameters

  • Log identification.

  • curl -X "GET" \ 
    "https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/catalogs/{catalog-id}/audit" -H "accept: application/json" -H "Authorization: {iam-bearer-token}"

Response

A collection of audit records

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get list of catalogs

Retrieves the available catalogs for a given account. This can be used by an unauthenticated user to retrieve the public catalog.

GET /catalogs

Request

No Request Parameters

This method does not accept any request parameters.

  • listOptions := service.NewListCatalogsOptions()
    _, response, _ := service.ListCatalogs(listOptions)
    fmt.Println(response)
  • Response<CatalogSearchResult> response = service.listCatalogs().execute();
    System.out.println(response.getResult());
  • response = self.service.list_catalogs()
    print(response)
  • response = await service.listCatalogs();
    console.log(response);

Response

Paginated catalog search result

Status Code

  • Successful response. Your permissions determine what you can see

No Sample Response

This method does not specify any sample responses.

Create a catalog

Create a catalog for a given account

POST /catalogs

Request

Catalog information

  • label := "{label}"
    shortDesc := "{shortDesc}"
    createOptions := service.NewCreateCatalogOptions()
    createOptions.SetLabel(label)
    createOptions.SetShortDescription(shortDesc)
    _, response, _ := service.CreateCatalog(createOptions)
    fmt.Println(response)
  • String label = "{label}";
    String shortDesc = "{shortDesc}";
    CreateCatalogOptions createOptions = new CreateCatalogOptions.Builder().label(label).shortDescription(shortDesc).build();
    Response<Catalog> response = service.createCatalog(createOptions).execute();
    System.out.println(response.getResult());
  • label = "{label}"
    shortDesc = "{shortDesc}"
    response = self.service.create_catalog(label=label, short_description=shortDesc)
    print(response)
  • label = "{label}";
    shortDesc = "{shortDesc}";
    response = await service.createCatalog({ 'label': label, 'shortDescription': shortDesc });
    console.log(response);

Response

Catalog information

Status Code

  • New catalog created successfully

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get catalog

Get a catalog. This can also be used by an unauthenticated user to get the public catalog.

GET /catalogs/{catalog_identifier}

Request

Path Parameters

  • Catalog identifier

  • id := "{id}"
    getOptions := service.NewGetCatalogOptions(id)
    _, response, _ := service.GetCatalog(getOptions)
    fmt.Println(response)
  • String id = "{id}";
    GetCatalogOptions getOptions = new GetCatalogOptions.Builder().catalogIdentifier(id).build();
    Response<Catalog> response = service.getCatalog(getOptions).execute();
    System.out.println(response.getResult());
  • id = "{id}"
    response = self.service.get_catalog(catalog_identifier=id)
    print(response)
  • id = "{id}";
    response = await service.getCatalog({ 'catalogIdentifier': id });
    console.log(response);

Response

Catalog information

Status Code

  • Successful Result

  • Unauthorized

  • No Permissions

  • No such catalog id

No Sample Response

This method does not specify any sample responses.

Update catalog

Update a catalog

PUT /catalogs/{catalog_identifier}

Request

Path Parameters

  • Catalog identifier

Catalog information

  • curl -X "PUT" "https://cm.globalcatalog.cloud.ibm.com/api/v1-beta/catalogs/{catalog-id}" -H "accept: application/json" -H "Authorization: {iam-bearer-token}" -d '{"id":"string","_rev":"string","label":"string","short_description":"string","catalog_icon_url":"string","tags":["string"],"features":[{"title":"string","description":"string"}],"resource_group_id":"string","catalog_filters":{"include_all":true,"category_filters":{"additionalProp1":{"include":true,"filter":{"filter_terms":["string"]}},"additionalProp2":{"include":true,"filter":{"filter_terms":["string"]}},"additionalProp3":{"include":true,"filter":{"filter_terms":["string"]}}},"id_filters":{"include":{"filter_terms":["string"]},"exclude":{"filter_terms":["string"]}}},"kind":"string"}'

Response

Catalog information

Status Code

  • Successful Result

  • Unauthorized

  • No Permissions

  • No such catalog id

No Sample Response

This method does not specify any sample responses.

Delete catalog

Delete a catalog

DELETE /catalogs/{catalog_identifier}

Request

Path Parameters

  • Catalog identifier

  • id := "{id}"
    deleteOptions := service.NewDeleteCatalogOptions(id)
    response, _ := service.DeleteCatalog(deleteOptions)
    fmt.Println(response)
  • String id = "{id}";
    DeleteCatalogOptions deleteOptions = new DeleteCatalogOptions.Builder().catalogIdentifier(id).build();
    Response<Void> response = service.deleteCatalog(deleteOptions).execute();
    System.out.println(response.getResult());
  • id = "{id}"
    response = self.service.delete_catalog(catalog_identifier=id, id=id)
    print(response)
  • id = "{id}";
    response = await service.deleteCatalog({ 'catalogIdentifier': id, 'id': id });
    console.log(response);

Response

Status Code

  • Successful Result

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get catalog audit logs

Get the audit logs associated with a catalog.

GET /catalogs/{catalog_identifier}/audits

Request

Path Parameters

  • Catalog identifier

Query Parameters

  • Start token for a query

  • number or results to return in the query

    Possible values: value ≤ 1000

    Default: 100

  • Auditlog Lookup Names - by default names are not returned in auditlog.

Response

A collection of audit records

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get a catalog audit log entry

Get the full audit log entry associated with a catalog.

GET /catalogs/{catalog_identifier}/audits/{auditlog_identifier}

Request

Path Parameters

  • Catalog identifier

  • Auditlog ID

Query Parameters

  • Auditlog Lookup Names - by default names are not returned in auditlog.

Response

An audit log which describes a change made to a catalog or associated resource.

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get catalog audit log

Get the audit log associated with a catalog.

GET /catalogs/{catalog_identifier}/audit

Request

Path Parameters

  • Catalog identifier

Query Parameters

  • Log identification.

Response

A collection of audit records

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get enterprise settings

Get the enterprise settings for the specified enterprise ID

GET /enterprises/{enterprise_identifier}

Request

Path Parameters

  • Enterprise ID

  • id := "{id}"
    getOptions := service.NewGetEnterpriseOptions(id)
    _, response, _ := service.GetEnterprise(getOptions)
    fmt.Println(response)
  • String id = "{id}";
    GetEnterpriseOptions getOptions = new GetEnterpriseOptions.Builder().enterpriseId(id).build();
    Response<Enterprise> response = service.getEnterprise(getOptions).execute();
    System.out.println(response.getResult());
  • id = "{id}";
    response = await service.getEnterprise({ 'enterpriseId': id });
    console.log(response);
  • id = "{id}"
    response = self.service.get_enterprise(enterprise_id=id)
    print(response)

Response

Enterprise account information

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Update enterprise settings

Update the settings for an enterprise

PUT /enterprises/{enterprise_identifier}

Request

Path Parameters

  • Enterprise ID

Enterprise account information

  • id = "{id}"
    revision = "{revision}"
    accountFilters = "{accountFilters}"
    accountGroups = "{accountGroups}"
    response = self.service.replace_enterprise(enterprise_id=id, id=id, rev=revision, account_filters= accountFilters, account_groups=accountGroups)
    print(response)
  • id := "{id}"
    revision := "{revision}"
    accountFilters := {accountFilters}
    replaceOptions := {replaceOptions}
    replaceOptions := service.NewReplaceEnterpriseOptions(id)
    replaceOptions.SetID(id)
    replaceOptions.SetRev(revision)
    replaceOptions.SetAccountFilters(accountFilters)
    replaceOptions.SetAccountGroups(accountGroups)
    response, _ := service.ReplaceEnterprise(replaceOptions)
    fmt.Println(response)
  • String id = "{id}";
    String revision = "{revision}";
    String accountFilters = {accountFilters};
    String accountGroups = {accountGroups};
    ReplaceCatalogOptions replaceOptions = new ReplaceEnterpriseOptions.Builder().enterpriseId(id).id(id).rev(revision).accountFilters(accountFilters).accountGroups(accountGroups).build();
    Response<Catalog> response = service.replaceEnterprise(replaceOptions).execute();
    System.out.println(response.getResult());
  • id = "{id}";
    revision = "{revision}";
    accountFilters = {accountFilters};
    accountGroups = {accountGroups};
    response = await service.replaceEnterprise({ 'enterpriseId': id, 'id': id, 'rev': revision, 'accountFilters': accountFilters, 'accountGroups': accountGroups });
    console.log(response);

Response

Status Code

  • Successful update. Your permissions determine if can update or not.

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get enterprise audit logs

Get the audit logs associated with an enterprise.

GET /enterprises/{enterprise_identifier}/audits

Request

Path Parameters

  • Enterprise ID

Query Parameters

  • Start token for a query

  • number or results to return in the query

    Possible values: value ≤ 1000

    Default: 100

  • Auditlog Lookup Names - by default names are not returned in auditlog.

Response

A collection of audit records

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get an enterprise audit log entry

Get the full audit log entry associated with an enterprise.

GET /enterprises/{enterprise_identifier}/audits/{auditlog_identifier}

Request

Path Parameters

  • Enterprise ID

  • Auditlog ID

Query Parameters

  • Auditlog Lookup Names - by default names are not returned in auditlog.

Response

An audit log which describes a change made to a catalog or associated resource.

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get enterprise audit log

Get the audit log associated with an enterprise.

GET /enterprises/{enterprise_identifier}/audit

Request

Path Parameters

  • Enterprise ID

Query Parameters

  • Log identification.

Response

A collection of audit records

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get consumption offerings

Retrieve the available offerings from both public and from the account that currently scoped for consumption. These copies cannot be used for updating. They are not complete and only return what is visible to the caller. This can be used by an unauthenticated user to retreive publicly available offerings.

GET /offerings

Request

Query Parameters

  • true - Strip down the content of what is returned. For example don't return the readme. Makes the result much smaller. Defaults to false.

  • catalog id. Narrow search down to just a particular catalog. It will apply the catalog's public filters to the public catalog offerings on the result.

  • What should be selected. Default is 'all' which will return both public and private offerings. 'public' returns only the public offerings and 'private' returns only the private offerings.

    Allowable values: [all,public,private]

  • true - include offerings which have been marked as hidden. The default is false and hidden offerings are not returned.

  • number or results to return

    Possible values: value ≤ 1000

    Default: 100

  • number of results to skip before returning values

    Default: 0

  • options := service.NewGetConsumptionOfferingsOptions()
    _, response, _ := service.GetConsumptionOfferings(options)
    fmt.Println(response)
  • Response<OfferingSearchResult> response = service.getConsumptionOfferings().execute();
    System.out.println(response.getResult());
  • response = self.service.get_consumption_offerings()
    print(response)
  • response = await service.getConsumptionOfferings();
    console.log(response);

Response

Paginated offering search result

Status Code

  • Successful response. Your permissions determine what you can see

No Sample Response

This method does not specify any sample responses.

Get list of offerings

Retrieve the available offerings in the specified catalog. This can also be used by an unauthenticated user to retreive publicly available offerings.

GET /catalogs/{catalog_identifier}/offerings

Request

Path Parameters

  • Catalog identifier

Query Parameters

  • true - Strip down the content of what is returned. For example don't return the readme. Makes the result much smaller. Defaults to false.

  • The maximum number of results to return

    Possible values: value ≤ 1000

    Default: 100

  • The number of results to skip before returning values

    Default: 0

  • Only return results that contain the specified string

  • The field on which the output is sorted. Sorts by default by label property. Available fields are name, label, created, and updated. By adding - (i.e. -label) in front of the query string, you can specify descending order. Default is ascending order.

  • true - include offerings which have been marked as hidden. The default is true. To not return hidden offerings false must be explicitly set

    Default: true

  • id := "{id}"
    listOptions := service.NewListOfferingsOptions(id)
    _, response, _ := service.ListOfferings(listOptions)
    fmt.Println(response)
  • String id = "{id}";
    ListOfferingsOptions listOptions = new ListOfferingsOptions.Builder().catalogIdentifier(id).build();
    Response<OfferingSearchResult> response = service.listOfferings(listOptions).execute();
    System.out.println(response.getResult());
  • id = "{id}"
    response = self.service.list_offerings(catalog_identifier=id)
    print(response)
  • id = "{id}";
    name = "{name}";
    label = "{label}";
    response = await service.listOfferings({ 'catalogIdentifier': id, 'id': id, 'name': name, 'label': label });
    console.log(response);

Response

Paginated offering search result

Status Code

  • Successful response. Your permissions determine what you can see

No Sample Response

This method does not specify any sample responses.

Create offering

Create an offering

POST /catalogs/{catalog_identifier}/offerings

Request

Path Parameters

  • Catalog identifier

Offering information

  • id := "{id}"
    name := "{name}"
    label := "{label}"
    offeringOptions := service.NewCreateOfferingOptions(id)
    offeringOptions.SetName(name)
    offeringOptions.SetLabel(label)
    _, response, _ := service.CreateOffering(offeringOptions)
    fmt.Println(response)
  • String id = "{id}";
    String name = "{name}";
    String label = "{label}";
    CreateOfferingOptions offeringOptions = new CreateOfferingOptions.Builder().catalogIdentifier(id).name(name).label(label).build();
    Response<Offering> response = service.createOffering(offeringOptions).execute();
    System.out.println(response.getResult());
  • id = "{id}"
    name = "{name}"
    label = "{label}"
    response = self.service.create_offering(catalog_identifier=id, name=name, label=label)
    print(response)
    
  • id = "{id}";
    name = "{name}";
    label = "{label}";
    response = await service.createOffering({ 'catalogIdentifier': id, 'id': id, 'name': name, 'label': label });
    console.log(response);

Response

Offering information

Status Code

  • New offering created successfully

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Import offering version

Import new version to an offering

POST /catalogs/{catalog_identifier}/offerings/{offering_id}/version

Request

Custom Headers

  • Authentication token used to access the specified zip file

Path Parameters

  • Catalog identifier

  • Offering identification

Query Parameters

  • URL path to zip location. If not specified, must provide content in the body of this call.

  • The semver value for this new version, if not found in the zip url package content

  • Add all possible configuration values to this version when importing

  • Indicates that the current terraform template is used to install a virtual server image

  • The type of repository containing this version. Valid values are 'public_git' or 'enterprise_git'

Additional data to be used when importing an offering or version

  • catalogID := "{catalogID}"
    offeringID := "{offeringID}"
    offeringURL := "{offeringURL}"
    importOptions := service.NewImportOfferingVersionOptions(catalogID, offeringID, offeringURL)
    _, response, _ := service.ImportOfferingVersion(importOptions)
    fmt.Println(response)
  • String catalogID = "{catalogID}";
    String offeringID = "{offeringID}";
    String offeringURL = "{offeringURL}";
    ImportOfferingVersionOptions newOfferingOptions = new ImportOfferingVersionOptions.Builder().catalogIdentifier(catalogID).offeringId(offeringID).zipurl(offeringURL).build();
    Response<Offering> response = service.importOfferingVersion(newOfferingOptions).execute();
    System.out.println(response.getResult());
  • catalogID = "{catalogID}"
    offeringID = "{offeringID}"
    offeringURL = "{offeringURL}"
    response = self.service.import_offering_version(catalog_identifier=catalogID, offering_id=offeringID, zipurl=offeringURL)
    print(response)
    
  • catalogID = "{catalogID}";
    offeringID = "{offeringID}";
    offeringURL = "{offeringURL}";
    response = await service.importOfferingVersion({ 'catalogIdentifier': catalogID, 'offeringId': offeringID, 'zipurl': offeringURL });
    console.log(response);

Response

Offering information

Status Code

  • New version created successfully

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Import offering

Import a new offering

POST /catalogs/{catalog_identifier}/import/offerings

Request

Custom Headers

  • Authentication token used to access the specified zip file

Path Parameters

  • Catalog identifier

Query Parameters

  • URL path to zip location. If not specified, must provide content in this post body.

  • Re-use the specified offeringID during import

  • The semver value for this new version

  • Add all possible configuration items when creating this version

  • Indicates that the current terraform template is used to install a virtual server image

  • The type of repository containing this version. Valid values are 'public_git' or 'enterprise_git'

Additional data to be used when importing an offering or version

  • id := "{id}"
    offeringURL := "{offeringURL}"
    offeringOptions := service.NewImportOfferingOptions(id, offeringURL)
    _, response, _ := service.ImportOffering(offeringOptions)
    fmt.Println(response)
  • id = "{id}";
    offeringURL = "{offeringURL}";
    ImportOfferingOptions offeringOptions = new ImportOfferingOptions.Builder().catalogIdentifier(id).zipurl(offeringURL).build();
    Response<Offering> response = service.importOffering(offeringOptions).execute();
    System.out.println(response.getResult());
  • id = "{id}"
    offeringURL = "{offeringURL}"
    response = self.service.import_offering(catalog_identifier=id, zipurl=offeringURL)
    print(response)
    
  • id = "{id}";
    offeringURL = "{offeringURL}";
    response = await service.importOffering({ 'catalogIdentifier': id, 'zipurl': offeringURL });
    console.log(response);

Response

Offering information

Status Code

  • New offering created successfully

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Reload offering

Reload an existing version in offering from a tgz

PUT /catalogs/{catalog_identifier}/offerings/{offering_id}/reload

Request

Path Parameters

  • Catalog identifier

  • Offering identification

Query Parameters

  • The semver value for this new version

  • URL path to zip location. If not specified, must provide content in this post body.

  • The type of repository containing this version. Valid values are 'public_git' or 'enterprise_git'

Additional data to be used when importing an offering or version

  • catalogID := "{catalogID}"
    offeringID := "{offeringID}"
    offeringURL := "{offeringURL}"
    offeringVersion := "{offeringVersion}"
    reloadOptions := service.NewReloadOfferingOptions(catalogID, offeringID, offeringURL, offeringVersion)
    _, response, _ := service.ReloadOffering(reloadOptions)
    fmt.Println(response)
  • String catalogID = "{catalogID}";
    String offeringID = "{offeringID}";
    String version = "{version}";
    ReloadOfferingOptions reloadOfferingOptions = new ReloadOfferingOptions.Builder().catalogIdentifier(catalogID).offeringId(offeringID).zipurl(offeringID).targetVersion(version).build();
    Response<Offering> response = service.reloadOffering(reloadOfferingOptions).execute();
    System.out.println(response.getResult());
  • catalogID = "{catalogID}"
    offeringID = "{offeringID}"
    offeringURL = "{offeringURL}"
    version = "{version}"
    response = self.service.reload_offering(catalog_identifier=catalogID, offering_id=offeringID, zipurl=offeringURL, target_version=version)
    print(response)
  • catalogID = "{catalogID}";
    offeringID = "{offeringID}";
    offeringURL = "{offeringURL}";
    version = "{version}";
    response = await service.reloadOffering({'catalogIdentifier': catalogID, 'offeringId': offeringID, 'zipurl': offeringURL, 'targetVersion': version});
    console.log(response);

Response

Offering information

Status Code

  • New version created successfully

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get offering

Get an offering. This can be used by an unauthenticated user for publicly available offerings.

GET /catalogs/{catalog_identifier}/offerings/{offering_id}

Request

Path Parameters

  • Catalog identifier

  • Offering identification

Query Parameters

  • Offering Parameter Type. Valid values are 'name' or 'id'. Default is 'id'.

  • Return the digest format of the specified offering. Default is false.

  • catalogID := "{catalogID}"
    offeringID := "{offeringID}"
    getOptions := service.NewGetOfferingOptions(catalogID, offeringID)
    _, response, _ := service.GetOffering(getOptions)
    fmt.Println(response)
  • String catalogID = "{catalogID}";
    String offeringID = "{offeringID}";
    GetOfferingOptions getOptions = new GetOfferingOptions.Builder().catalogIdentifier(catalogID).offeringId(offeringID).build();
    Response<Offering> response = service.getOffering(getOptions).execute();
    System.out.println(response.getResult());
  • catalogID = "{catalogID}"
    offeringID = "{offeringID}"
    response = self.service.get_offering(catalog_identifier=catalogID, offering_id=offeringID)
    print(response)
  • catalogID = "{catalogID}";
    offeringID = "{offeringID}";
    response = await service.getOffering({ 'catalogIdentifier': catalogID, 'offeringId': offeringID });
    console.print(response);

Response

Offering information

Status Code

  • Successful Result

  • Unauthorized

  • No Permissions

  • No such catalog/offering

No Sample Response

This method does not specify any sample responses.

Update offering

Update an offering

PUT /catalogs/{catalog_identifier}/offerings/{offering_id}

Request

Path Parameters

  • Catalog identifier

  • Offering identification

Offering information

  • catalogID := "{catalogID}"
    offeringID := "{offeringID}"
    label := "{label}"
    shortDesc := "{shortDesc}"
    revision := "{revision}"
    updateOptions := service.NewReplaceOfferingOptions(catalogID, offeringID)
    updateOptions.SetID(offeringID)
    updateOptions.SetLabel(label)
    updateOptions.SetShortDescription(shortDesc)
    updateOptions.SetRev(revision)
    _, response, _ := service.ReplaceOffering(updateOptions)
    fmt.Println(response)
  • String catalogID = "{catalogID}";
    String offeringID = "{offeringID}";
    String label = "{label}";
    String shortDesc = "{shortDesc}";
    ReplaceOfferingOptions replaceOptions = new ReplaceOfferingOptions.Builder().catalogIdentifier(catalogID).id(offeringID).offeringId(offeringID).label(label).shortDescription(shortDesc).rev(revision.rev()).build();
    Response<Catalog> response = service.replaceOffering(replaceOptions).execute();
    System.out.println(response.getResult());
  • catalogID = "{catalogID}"
    offeringID = "{offeringID}"
    revision = "{revision}"
    shortDesc = "{shortDesc}"
    response = self.service.replace_offering(catalog_identifier=catalogID, offering_id=offeringID, id=offeringID, rev=revision, label=label, short_description=shortDesc)
    print(response)
  • catalogID = "{catalogID}";
    offeringID = "{offeringID}";
    revision = "{revision}";
    label = "{label}";
    shortDesc = "{shortDesc}";
    response = await service.replaceOffering({'catalogIdentifier': catalogID, 'offeringId': offeringID, 'id': offeringID, 'rev': revision, 'label': label, 'shortDescription': shortDesc});
    console.log(response);

Response

Offering information

Status Code

  • Offering was updated successfully

  • Unauthorized

  • No Permissions

  • No such catalog/offering

No Sample Response

This method does not specify any sample responses.

Update offering

Update an offering

PATCH /catalogs/{catalog_identifier}/offerings/{offering_id}

Request

Custom Headers

  • Offering etag contained in quotes.

Path Parameters

  • Catalog identifier

  • Offering identification

A JSONPatch document as defined by RFC 6902.

Response

Offering information

Status Code

  • Offering was updated successfully

  • Unauthorized

  • No Permissions

  • No such catalog/offering

No Sample Response

This method does not specify any sample responses.

Delete offering

Delete an offering

DELETE /catalogs/{catalog_identifier}/offerings/{offering_id}

Request

Path Parameters

  • Catalog identifier

  • Offering identification

  • catalogID := "{catalogID}"
    offeringID := "{offeringID}"
    deleteOptions := service.NewDeleteOfferingOptions(catalogID, offeringID)
    response, _ := service.DeleteOffering(deleteOptions)
    fmt.Println(response)
  • String catalogID = "{catalogID}";
    String offeringID = "{offeringID}";
    DeleteOfferingOptions deleteOfferingOptions = new DeleteOfferingOptions.Builder().catalogIdentifier(catalogID).offeringId(offeringID).build();
    Response<Void> response = service.deleteOffering(deleteOfferingOptions).execute();
    System.out.println(response.getResult());
  • catalogID = "{catalogID}"
    offeringID = "{offeringID}"
    response = self.service.delete_offering(catalog_identifier=catalogID, offering_id=offeringID)
    print(response)
  • catalogID = "{catalogID}";
    offeringID = "{offeringID}";
    response = await service.deleteOffering({ 'catalogIdentifier': catalogID, 'offeringId': offeringID });
    console.log(response);

Response

Status Code

  • Offering was deleted successfully

  • Unauthorized

  • No Permissions

  • No such catalogg

No Sample Response

This method does not specify any sample responses.

Get offering audit logs

Get the audit logs associated with an offering.

GET /catalogs/{catalog_identifier}/offerings/{offering_id}/audits

Request

Path Parameters

  • Catalog identifier

  • Offering identification

Query Parameters

  • Start token for a query

  • number or results to return in the query

    Possible values: value ≤ 1000

    Default: 100

  • Auditlog Lookup Names - by default names are not returned in auditlog.

Response

A collection of audit records

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get an offering audit log entry

Get the full audit log entry associated with an offering.

GET /catalogs/{catalog_identifier}/offerings/{offering_id}/audits/{auditlog_identifier}

Request

Path Parameters

  • Catalog identifier

  • Offering identification

  • Auditlog ID

Query Parameters

  • Auditlog Lookup Names - by default names are not returned in auditlog.

Response

An audit log which describes a change made to a catalog or associated resource.

Status Code

  • Successful response. Your permissions determine what you can see

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Set offering publish approval settings

Approve or disapprove the offering to be allowed to publish to the IBM Public Catalog. This is used only by Partner Center. Only users with Approval IAM authority can use this. Approvers should use the catalog and offering id from the public catalog since they wouldn't have access to the private offering.

POST /catalogs/{catalog_identifier}/offerings/{offering_id}/publish/{approval_type}/{approved}

Request

Custom Headers

  • IAM token of partner center. Only needed when Partner Center accessing the private catalog offering. When accessing the public offering Partner Center only needs to use their token in the authorization header.

  • IAM token (Bearer <token>) for authorization. For private offerings must be token for offering owner to approve access by Partner Center. Partner Center would put its token in X-Approver-Token. For access to public offering Partner Center or authorized approvers would use their token here.

Path Parameters

  • Catalog identifier

  • Offering identification

  • Type of approval.

    • pc_managed - Partner Center is managing this offering
    • publish_approved - Publishing approved, offering owners can now set who sees the offering in public catalog
    • allow_request - (deprecated)
    • ibm - (deprecated)
    • public - (deprecated)

    Allowable values: [pc_managed,publish_approved]

  • Approve (true) or disapprove (false)

    Allowable values: [true,false]

Query Parameters

  • Partner Center identifier for this offering

  • Partner Center url for this offering

  • catalogID := "{catalogID}"
    offeringID := "{offeringID}"
    approvalType := "{approvalType}"
    approved := "{approved}"
    updateOptions := service.NewUpdateOfferingIbmOptions(catalogID, offeringID, approvalType, approved)
    _, response, _ := service.UpdateOfferingIbm(updateOptions)
    fmt.Println(response)
  • String catalogID = "{catalogID}";
    String offeringID = "{offeringID}";
    String approvalType = "{approvalType}";
    String approved = "{approved}";
    UpdateOfferingIbmOptions updateOptions = new UpdateOfferingIbmOptions.Builder().catalogIdentifier(catalogID).offeringId(offeringID).approvalType(approvalType).approved(approved).build();
    Response<ApprovalResult> response = service.updateOfferingIbm(updateOptions).execute();
    System.out.println(response.getResult());
  • catalogID = "{catalogID}";
    offeringID = "{offeringID}";
    approvalType = "{approvalType}";
    approved = "{approved}";
    response = await service.updateOfferingIbm({ 'catalogIdentifier': catalogID, 'offeringId': offeringID, 'approvalType': approvalType, 'approved': approved });
    console.log(response);
  • catalogID = "{catalogID}"
    offeringID = "{offeringID}"
    approvalType = "{approvalType}"
    approved = "{approved}"
    response = self.service.update_offering_ibm(catalog_identifier=catalogID, offering_id=offeringID, approval_type=approvalType, approved=approved)
    print(response)

Response

Result of approval

Status Code

  • Successful Result

  • Unauthorized

  • No Permissions

  • No such catalog/offering

No Sample Response

This method does not specify any sample responses.

Allows offering to be deprecated

Approve or disapprove the offering to be deprecated.

POST /catalogs/{catalog_identifier}/offerings/{offering_id}/deprecate/{setting}

Request

Path Parameters

  • Catalog identifier

  • Offering identification

  • Set deprecation (true) or cancel deprecation (false)

    Allowable values: [true,false]

Information for deprecation request

Response

Status Code

  • Request accepted.

  • Bad request

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Allows offering to be shared

Set the share options on an offering.

POST /catalogs/{catalog_identifier}/offerings/{offering_id}/share

Request

Path Parameters

  • Catalog identifier

  • Offering identification

Share setting information

Response

Share setting information

Status Code

  • Successful response. Your permissions determine what you can see

  • Bad request

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Check for account ID in offering access list

Determine if an account ID is in an offering's access list

GET /catalogs/{catalog_identifier}/offerings/{offering_id}/access/{access_identifier}

Request

Path Parameters

  • Catalog identifier

  • Offering identification

  • Identifier for access. Use 'accountId' for an account, '-ent-enterpriseid' for an enterprise, and '-entgroup-enterprisegroupid' for an enterprise group.

Response

access

Status Code

  • Successful response

  • Bad request

  • Unauthorized

  • No Permissions

  • The specified account ID was not found in the offering's access list.

No Sample Response

This method does not specify any sample responses.

Get offering access list

Get the access list associated with the specified offering

GET /catalogs/{catalog_identifier}/offerings/{offering_id}/access

Request

Path Parameters

  • Catalog identifier

  • Offering identification

Query Parameters

  • Start token for a query

  • number or results to return in the query

    Possible values: value ≤ 1000

    Default: 100

Response

Paginated Offering search result

Status Code

  • Successful response

  • Bad request

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Delete accesses from offering access list

Delete all or a set of accesses from an offering's access list.

DELETE /catalogs/{catalog_identifier}/offerings/{offering_id}/access

Request

Path Parameters

  • Catalog identifier

  • Offering identification

A list of accesses to delete. An entry with star["*"] will remove all accesses

Response

Access List Add/Remove result

Status Code

  • Successful response, still need to look for errors for specific accesses

  • Bad request

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Add accesses to offering access list

Add one or more accesses to the specified offering's access list.

POST /catalogs/{catalog_identifier}/offerings/{offering_id}/access

Request

Path Parameters

  • Catalog identifier

  • Offering identification

A list of accesses to add.

Response

Paginated Offering search result

Status Code

  • Successful response, still need to look for errors for specific accesses

  • Bad request

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get version updates

Get available updates for the specified version

GET /catalogs/{catalog_identifier}/offerings/{offering_id}/updates

Request

Custom Headers

  • IAM Refresh token

Path Parameters

  • Catalog identifier

  • Offering identification

Query Parameters

  • The kind of offering (e.g, helm, ova, terraform ...)

  • The target kind of the currently installed version (e.g. iks, roks, etc)

  • optionaly provide an existing version to check updates for if one is not given, all version will be returned.

  • The id of the cluster where this version was installed

  • The region of the cluster where this version was installed

  • The resource group id of the cluster where this version was installed

  • The namespace of the cluster where this version was installed

  • The sha value of the currently installed version

  • Optionally provide the channel value of the currently installed version

  • Optionally provide a list of namespaces used for the currently installed version

  • Optionally indicate that the current version was installed in all namespaces

  • versionLocator := "{versionLocator}"
    getOptions := service.NewGetVersionUpdatesOptions(versionLocator)
    _, response, _ := service.GetVersionUpdates(getOptions)
    fmt.Println(response)
  • String versionLocator = "{versionLocator}";
    GetVersionUpdatesOptions getOptions = new GetVersionUpdatesOptions.Builder().versionLocId(versionLocator).build();
    Response<List<VersionUpdateDescriptor>> response = service.getVersionUpdates(getOptions).execute();
    System.out.println(response.getResult());
  • versionLocator = "{versionLocator}"
    response = self.service.get_offering_updates(version_loc_id=versionLocator)
    print(response)
    
  • versionLocator = "{versionLocator}";
    response = await service.getVersionUpdates({ 'versionLocId': versionLocator});
    console.log(response);

Response

Indicates if the current version can be upgraded to the version identified by the descriptor

Status Code

  • Version Descriptors, sorted newest first

  • Bad request

  • Unauthorized

  • No Permissions

No Sample Response

This method does not specify any sample responses.

Get offering source

Get an offering's source. This request requires authorization, even for public offerings.

GET /offering/source

Request

Custom Headers

  • Allowable values: [application/yaml,application/json,application/x-gzip]

Query Parameters

  • The version being requested

  • Catalog ID. If not specified, this value will default to the public catalog.

  • Offering name. An offering name or ID must be specified.

  • Offering id. An offering name or ID must be specified.

  • The kind of offering (e.g. helm, ova, terraform...)

  • The channel value of the specified version

  • If false (the default), the root folder from the original onboarded tgz file is removed. If true, the root folder is returned.

Response

Status Code

  • Successful Result

  • Unauthorized

  • No Permissions

  • No such offering

No Sample Response

This method does not specify any sample responses.

Get offering source URL

Get an offering's private source image.

GET /offering/source/url/{key_identifier}

Request

Custom Headers

  • Allowable values: [application/yaml,application/json,application/x-gzip]

Path Parameters

  • Unique key identifying an image

Query Parameters

  • Catalog ID. If not specified, this value will default to the public catalog.

  • Offering name. An offering name or ID must be specified.

  • Offering id. An offering name or ID must be specified.

Response

Status Code

  • Successful Result

  • Unauthorized

  • No Permissions

  • No such offering

No Sample Response

This method does not specify any sample responses.

Get offering audit log

Get the audit log associated with an offering.

GET /catalogs/{catalog_identifier}/offerings/{offering_id}/audit