Skip to main content

Python SDK for IBM Cloud Code Engine

Project description

Python SDK for IBM Cloud Code Engine 5.0.0

Python client library to interact with the IBM Cloud Code Engine API.

Table of Contents

Overview

The IBM Cloud Code Engine Python SDK allows developers to programmatically interact with the following IBM Cloud services:

Service Name Imported Class Name
IBM Cloud Code Engine V2 CodeEngineV2
IBM Cloud Code Engine V1 IbmCloudCodeEngineV1

Prerequisites

  • An IBM Cloud account.
  • An IAM API key to allow the SDK to access your account. Create one here.
  • Python 3.9 or above.

Breaking Changes (March 2026)

  • Service method renames (pluralization) Update list methods and their operation_ids accordingly:

    # before
    ce.list_allowed_outbound_destination(project_id, limit=100, start=token)
    
    # after
    ce.list_allowed_outbound_destinations(project_id, limit=100, start=token)
    
    # before
    ce.list_persistent_data_store(project_id, limit=100, start=token)
    
    # after
    ce.list_persistent_data_stores(project_id, limit=100, start=token)
    
  • Pager class renames Use the new pluralized pager classes and doc tag strings:

    # before
    pager = ibm_code_engine_sdk.code_engine_v2.AllowedOutboundDestinationPager(ce, project_id, limit=100)
    
    # after
    pager = ibm_code_engine_sdk.code_engine_v2.AllowedOutboundDestinationsPager(ce, project_id, limit=100)
    
    # before
    pager = ibm_code_engine_sdk.code_engine_v2.PersistentDataStorePager(ce, project_id, limit=100)
    
    # after
    pager = ibm_code_engine_sdk.code_engine_v2.PersistentDataStoresPager(ce, project_id, limit=100)
    
  • Allowed outbound destinations: new type & fields; constructor shape changes

    • New type supported: "private_path_service_gateway" (in addition to "cidr_block"). Update any branching/validation on type.
    • New optional fields on AllowedOutboundDestination and subclasses:
      • name, status, status_details
      • Private Path specific: private_path_service_gateway_crn, isolation_policy
    • Base classes AllowedOutboundDestination, AllowedOutboundDestinationPatch, AllowedOutboundDestinationPrototype, AllowedOutboundStatusDetails are now abstract with expanded subclass sets. Instantiate the specific subclass instead, as before, but note the extended list.
  • Creation prototypes changed

    • AllowedOutboundDestinationPrototype now requires name.

    • CIDR prototype constructor order changed:

      from ibm_code_engine_sdk.code_engine_v2 import AllowedOutboundDestinationPrototypeCidrBlockDataPrototype
      # before: (type, cidr_block, name)
      # after:  (type, name, cidr_block)
      cidr_proto = AllowedOutboundDestinationPrototypeCidrBlockDataPrototype(
          type="cidr_block",
          name="allow-egress",
          cidr_block="10.0.0.0/24",
      )
      
    • New prototype for Private Path service:

      from ibm_code_engine_sdk.code_engine_v2 import (
          AllowedOutboundDestinationPrototypePrivatePathServiceGatewayDataPrototype as PPSGProto
      )
      ppsg_proto = PPSGProto(
          type="private_path_service_gateway",
          name="pps-to-service-x",
          private_path_service_gateway_crn="<pps_gateway_crn>",
          isolation_policy="shared",  # optional: "shared" | "dedicated"
      )
      
  • Patch models changed (do not send type)

    • Remove type from CIDR patch payloads; field and serialization removed:

      from ibm_code_engine_sdk.code_engine_v2 import AllowedOutboundDestinationPatchCidrBlockDataPatch
      
      patch = AllowedOutboundDestinationPatchCidrBlockDataPatch(cidr_block="10.0.1.0/24")
      
    • New patch model for Private Path destinations:

      from ibm_code_engine_sdk.code_engine_v2 import AllowedOutboundDestinationPatchPrivatePathServiceGatewayDataPatch
      
      pp_patch = AllowedOutboundDestinationPatchPrivatePathServiceGatewayDataPatch(
          isolation_policy="dedicated"  # "shared" | "dedicated"
      )
      
  • Probe model: type is now required When constructing Probe, set the protocol explicitly:

    from ibm_code_engine_sdk.code_engine_v2 import Probe
    
    # before (omitted `type`)
    # after (required)
    probe = Probe(
        type="http",  # "http" or "tcp"
        initial_delay=5,
        timeout=2,
    )
    
  • Secret model: format is now required If you build Secret instances (e.g., in replace flows), you must set format:

    from ibm_code_engine_sdk.code_engine_v2 import Secret
    
    secret = Secret(
        entity_tag=etag,
        format="generic",  # set the appropriate format value
        name="my-secret",
        data={"key": "value"},
    )
    
  • Previously-optional fields are now required in several response models (affects re-use of response as request) These fields are validated as required in model deserialization; if you reuse response objects to send updates, you must provide them:

    • App: computed_env_variables, run_service_account, run_volume_mounts
    • AppRevision: computed_env_variables, run_service_account, run_volume_mounts
    • Build: run_build_params
    • BuildRun: run_build_params, service_account, source_type, strategy_size, strategy_type
    • Function: computed_env_variables
    • FunctionRuntimeList: function_runtimes
    • Job: computed_env_variables, run_service_account, run_volume_mounts
    • JobRun: computed_env_variables

    Example (BuildRun)

    from ibm_code_engine_sdk.code_engine_v2 import BuildRun, BuildParam
    
    build_run = BuildRun(
        build_name="my-build",
        name="run-1",
        run_build_params=[BuildParam(name="ARG1", value="v")],
        service_account="default",
        source_type="git",
        strategy_size="small",
        strategy_type="buildpacks",
        source_url="https://github.com/org/repo",
    )
    
  • Allowed outbound destination CIDR model loosened & enriched

    • entity_tag and name are no longer required at construction time; they may be absent in incoming JSON.
    • New status fields added (status, status_details). Update your parsing/logic if you inspect readiness.
  • New status details and helper models (if you consume detailed status)

    • AllowedOutboundStatusDetails base plus:
      • AllowedOutboundStatusDetailsPrivatePathServiceGatewayStatusDetails
    • Helper models:
      • EndpointGatewayDetails
      • PrivatePathServiceGatewayDetails If you serialize/deserialize status detail trees, include these types.
  • Volume mount doc clarifications (no code changes)

    • read_only description now explicitly applies to mounts of type 'persistent_data_store'.
    • Name generation references reference (was ref in docstring).
  • Storage data enum expansion & doc update

    • StorageData/StorageDataObjectStorageData now enumerate more bucket_location values (regional/zone shorthands). If you validate these values client-side, include the new options.
    • StorageDataObjectStorageData doc now specifies key/value constraints.

Migration checklist

  • [ ] Rename list_allowed_outbound_destinationlist_allowed_outbound_destinations.
  • [ ] Rename list_persistent_data_storelist_persistent_data_stores.
  • [ ] Switch pagers to pluralized classes.
  • [ ] Update API version upper bound if you set it.
  • [ ] For outbound destination create:
    • [ ] Provide name in prototypes.
    • [ ] For CIDR prototype, adjust constructor order to (type, name, cidr_block).
    • [ ] Use new Private Path prototype when needed.
  • [ ] For outbound destination patch: remove type; use CIDR/Private Path specific patch models.
  • [ ] Set required fields now enforced in models (Probe.type, Secret.format, and the required lists/fields in App, Build, BuildRun, Function, Job, JobRun, etc.).
  • [ ] Include handling for new enum values: private_path_service_gateway, status values (ready|failed|deploying), and isolation_policy (shared|dedicated).

Installation

To install, use pip or easy_install:

pip install --upgrade "ibm_code_engine_sdk>=5.0.0"

or

easy_install --upgrade "ibm_code_engine_sdk>=5.0.0"

Using the SDK

Examples and a demo are available in the examples folder.

For general SDK usage information, please see this link

Questions

If you are having difficulties using this SDK or have a question about the IBM Cloud services, please ask a question Stack Overflow.

Issues

If you encounter an issue with the project, you are welcome to submit a bug report. Before that, please search for similar issues. It's possible that someone has already reported the problem.

Open source @ IBM

Find more open source projects on the IBM Github Page

Contributing

See CONTRIBUTING.md.

License

This SDK is released under the Apache 2.0 license. The license's full text can be found in LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ibm_code_engine_sdk-5.0.0.tar.gz (87.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ibm_code_engine_sdk-5.0.0-py3-none-any.whl (85.9 kB view details)

Uploaded Python 3

File details

Details for the file ibm_code_engine_sdk-5.0.0.tar.gz.

File metadata

  • Download URL: ibm_code_engine_sdk-5.0.0.tar.gz
  • Upload date:
  • Size: 87.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for ibm_code_engine_sdk-5.0.0.tar.gz
Algorithm Hash digest
SHA256 c5207d85f30084280d0ff42fd42d9a27913362152e51347ddd62a9f0db8f13dc
MD5 8a7fda9707dd42a4367c304baa1fccca
BLAKE2b-256 f5b51546db1571081f40dd2e4342d2a5cf0b5ea50d6c02c4552563f3ac2b1c6e

See more details on using hashes here.

File details

Details for the file ibm_code_engine_sdk-5.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ibm_code_engine_sdk-5.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2bf9e6fed3eb89b3c3c16eb479dbe15932ddb6e0613f0d57afc1e6893d9c990f
MD5 a01a96a32897bf55d0c256ed90b6810c
BLAKE2b-256 dd2f7b4eb943dc11979874704e780e02c54b3a72711fae686b5bb34001659d2c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page