feat: add IBM Quantum Platform REST client#326
Open
blankenberg wants to merge 1 commit into
Open
Conversation
Add QuantumPlatformV1 for low-level access to the IBM Quantum Platform / Qiskit Runtime REST API. The client follows the existing platform-services SDK style with BaseService, SDK core authenticators, environment-based new_instance() configuration, and DetailedResponse returns. It supports constructor-level instance CRN and API version defaults, plus per-call overrides for Service-CRN and IBM-API-Version. Also add focused unit tests, example coverage for CRN discovery through ResourceControllerV2, and a README service table entry.
|
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR summary
Adds a new QuantumPlatformV1 client for the IBM Quantum Platform / Qiskit Runtime REST API. The client supports IAM API key and bearer-token authentication through the standard IBM SDK core mechanisms, CRN-scoped Quantum requests via Service-CRN, API version headers, read/write Quantum Platform operations, examples, README registration, and unit coverage.
With this change, users can instantiate QuantumPlatformV1 from normal IBM SDK configuration and call the Quantum Platform REST endpoints through SDK-style methods matching the OpenAPI operation IDs. The examples also show how to discover Quantum service instance CRNs through Global Catalog and Resource Controller.
PR Checklist
Please make sure that your PR fulfills the following requirements:
Current vs new behavior
Currently, this SDK does not provide a native Python service client for quantum.cloud.ibm.com Quantum Platform REST endpoints. Users must call the REST API directly or use other tooling when they need low-level platform endpoints such as instance usage, workloads, backend metadata, jobs, sessions, tags, analytics, or instance configuration.
Does this PR introduce a breaking change?
Other information
Validation performed:
I do not have access to the IBM OpenAPI SDK generator, so the implementation intentionally keeps response bodies as standard SDK dict/raw results and does not add generated model classes in this first pass.
Of note, running IBM OpenAPI validator,
lint-openapi --ruleset default --summary-only quantum-openapi-validator.jsonresults in:Summary:
Top error categories: