Skip to content

Illumina/ica-sdk-python

Repository files navigation

ica-sdk-python

This API can be used to interact with Illumina Connected Analytics.

Authentication

Authentication to the API can be done in multiple ways:

  • For the entire API, except for the POST /tokens endpoint: API-key + JWT
  • Only for the POST /tokens endpoint: API-key + Basic Authentication

API-key

API keys are managed within the Illumina portal where you can manage your profile after you have logged on. The API-key has to be provided in the X-API-Key header parameter when executing API calls to ICA. In the background, a JWT will be requested at the IDP of Illumina to create a session. A good practice is to not use the API-key for every API call, but to first generate a JWT and to use that for authentication in subsequent calls.

JWT

To avoid using an API-key for each call, we recommend to request a JWT via the POST /tokens endpoint using this API-key. The JWT will expire after a pre-configured period specified by a tenant administrator through the IAM console in the Illumina portal. The JWT is the preferred way for authentication.
A not yet expired, still valid JWT could be refreshed using the POST /tokens:refresh endpoint.
Refreshing the JWT is not possible if the JWT was generated by using an API-key.

Basic Authentication

Basic authentication is only supported by the POST /tokens endpoint for generating a JWT. Use \"Basic base64encoded(emailaddress:password)\" in the \"Authorization\" header parameter for this authentication method. In case having access to multiple tenants using the same email-address, also provide the \"tenant\" request parameter to indicate what tenant you would like to request a JWT for.

Compression

If the API client provides request header 'Accept-Encoding' with value 'gzip', then the API applies GZIP compression on the JSON response. This significantly reduces the size and thus the download time of the response, which results in faster end-to-end API calls. In case of compression, the API also provides response header 'Content-Encoding' with value 'gzip', as indication for the client that decompression is required.

Testing

Tests created by Illumina are in the tests/test_integration/ folder, they are run using pytest, but modification will be required to update domain specific parameters. This is an active area of change in the repository and will be updated over time.

Code Generation

This Python package is automatically generated by the OpenAPI Generator project:

  • API version: 3
  • Package version: 1.0.0
  • Build package: org.openapitools.codegen.languages.PythonClientCodegen

This is the command used to generate this SDK:

openapi-generator-cli generate \
    -i openapi_public.yaml \
    -g python \
    -t template \
    --additional-properties packageName=icasdk,packageVersion=1.0.0,projectName=ica-sdk-python \
    --global-property skipFormModel=false &> generate.log

After code generation, a few manual corrections are made:

  • input_part.py and input_part.pyi type for additionalProperties

Requirements.

Python >=3.7

Migration from other generators like python and python-legacy

Changes

  1. This generator uses spec case for all (object) property names and parameter names.
    • So if the spec has a property name like camelCase, it will use camelCase rather than camel_case
    • So you will need to update how you input and read properties to use spec case
  2. Endpoint parameters are stored in dictionaries to prevent collisions (explanation below)
    • So you will need to update how you pass data in to endpoints
  3. Endpoint responses now include the original response, the deserialized response body, and (todo)the deserialized headers
    • So you will need to update your code to use response.body to access deserialized data
  4. All validated data is instantiated in an instance that subclasses all validated Schema classes and Decimal/str/list/tuple/frozendict/NoneClass/BoolClass/bytes/io.FileIO
    • This means that you can use isinstance to check if a payload validated against a schema class
    • This means that no data will be of type None/True/False
      • ingested None will subclass NoneClass
      • ingested True will subclass BoolClass
      • ingested False will subclass BoolClass
      • So if you need to check is True/False/None, instead use instance.is_true_oapg()/.is_false_oapg()/.is_none_oapg()
  5. All validated class instances are immutable except for ones based on io.File
    • This is because if properties were changed after validation, that validation would no longer apply
    • So no changing values or property values after a class has been instantiated
  6. String + Number types with formats
    • String type data is stored as a string and if you need to access types based on its format like date, date-time, uuid, number etc then you will need to use accessor functions on the instance
    • type string + format: See .as_date_oapg, .as_datetime_oapg, .as_decimal_oapg, .as_uuid_oapg
    • type number + format: See .as_float_oapg, .as_int_oapg
    • this was done because openapi/json-schema defines constraints. string data may be type string with no format keyword in one schema, and include a format constraint in another schema
    • So if you need to access a string format based type, use as_date_oapg/as_datetime_oapg/as_decimal_oapg/as_uuid_oapg
    • So if you need to access a number format based type, use as_int_oapg/as_float_oapg
  7. Property access on AnyType(type unset) or object(dict) schemas
    • Only required keys with valid python names are properties like .someProp and have type hints
    • All optional keys may not exist, so properties are not defined for them
    • One can access optional values with dict_instance['optionalProp'] and KeyError will be raised if it does not exist
    • Use get_item_oapg if you need a way to always get a value whether or not the key exists
      • If the key does not exist, schemas.unset is returned from calling dict_instance.get_item_oapg('optionalProp')
      • All required and optional keys have type hints for this method, and @typing.overload is used
      • A type hint is also generated for additionalProperties accessed using this method
    • So you will need to update you code to use some_instance['optionalProp'] to access optional property and additionalProperty values
  8. The location of the api classes has changed
    • Api classes are located in your_package.apis.tags.some_api
    • This change was made to eliminate redundant code generation
    • Legacy generators generated the same endpoint twice if it had > 1 tag on it
    • This generator defines an endpoint in one class, then inherits that class to generate apis by tags and by paths
    • This change reduces code and allows quicker run time if you use the path apis
      • path apis are at your_package.apis.paths.some_path
    • Those apis will only load their needed models, which is less to load than all of the resources needed in a tag api
    • So you will need to update your import paths to the api classes

Why are Oapg and _oapg used in class and method names?

Classes can have arbitrarily named properties set on them Endpoints can have arbitrary operationId method names set For those reasons, I use the prefix Oapg and _oapg to greatly reduce the likelihood of collisions on protected + public classes/methods. oapg stands for OpenApi Python Generator.

Object property spec case

This was done because when payloads are ingested, they can be validated against N number of schemas. If the input signature used a different property name then that has mutated the payload. So SchemaA and SchemaB must both see the camelCase spec named variable. Also, it is possible to send in two properties, named camelCase and camel_case in the same payload. That use case should be supported so spec case is used.

Parameter spec case

Parameters can be included in different locations including:

  • query
  • path
  • header
  • cookie

Any of those parameters could use the same parameter names, so if every parameter was included as an endpoint parameter in a function signature, they would collide. For that reason, each of those inputs have been separated out into separate typed dictionaries:

  • query_params
  • path_params
  • header_params
  • cookie_params

So when updating your code, you will need to pass endpoint parameters in using those dictionaries.

Endpoint responses

Endpoint responses have been enriched to now include more information. Any response reom an endpoint will now include the following properties: response: urllib3.HTTPResponse body: typing.Union[Unset, Schema] headers: typing.Union[Unset, TODO] Note: response header deserialization has not yet been added

Installation & Usage

pip install

If the python package is hosted on a repository, you can install directly using:

pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git

(you may need to run pip with root permission: sudo pip install git+https://github.com/GIT_USER_ID/GIT_REPO_ID.git)

Then import the package:

import icasdk

Setuptools

Install via Setuptools.

python setup.py install --user

(or sudo python setup.py install to install the package for all users)

Then import the package:

import icasdk

Getting Started

Please follow the installation procedure and then see the following sample.py:

Documentation for API Endpoints

All URIs are relative to /ica/rest

Class Method HTTP request Description
AnalysisStorageApi get_analysis_storage_options get /api/analysisStorages Retrieve the list of analysis storage options.
BundleApi accept_terms_of_use_bundle post /api/bundles/{bundleId}/termsOfUse:accept accept terms of use for a bundle
BundleApi create_bundle post /api/bundles Create a new bundle
BundleApi deprecate_bundle post /api/bundles/{bundleId}:deprecate deprecate a bundle
BundleApi get_bundle get /api/bundles/{bundleId} Retrieve a bundle.
BundleApi get_bundle_terms_of_use get /api/bundles/{bundleId}/termsOfUse Retrieve the last version of terms of use for a bundle.
BundleApi get_bundles get /api/bundles Retrieve a list of bundles.
BundleApi get_terms_of_use_acceptance get /api/bundles/{bundleId}/termsOfUse/userAcceptance/currentUser Retrieve the acceptance record for a bundle for the current user.
BundleApi insert_bundle_terms_of_use post /api/bundles/{bundleId}/termsOfUse:new Insert a new version of the terms of use for a bundle
BundleApi release_bundle post /api/bundles/{bundleId}:release release a bundle
BundleDataApi get_bundle_data get /api/bundles/{bundleId}/data Retrieve the list of bundle data.
BundleDataApi link_data_to_bundle post /api/bundles/{bundleId}/data/{dataId} Link data to this bundle.
BundleDataApi unlink_data_from_bundle delete /api/bundles/{bundleId}/data/{dataId} Unlink data from this bundle.
BundlePipelineApi get_bundle_pipelines get /api/bundles/{bundleId}/pipelines Retrieve a list of bundle pipelines.
BundlePipelineApi link_pipeline_to_bundle post /api/bundles/{bundleId}/pipelines/{pipelineId} Link a pipeline to a bundle.
BundlePipelineApi unlink_pipeline_from_bundle delete /api/bundles/{bundleId}/pipelines/{pipelineId} Unlink a pipeline from a bundle.
BundleSampleApi get_bundle_samples get /api/bundles/{bundleId}/samples Retrieve a list of bundle samples.
BundleSampleApi link_sample_to_bundle post /api/bundles/{bundleId}/samples/{sampleId} Link a sample to a bundle.
BundleSampleApi unlink_sample_from_bundle delete /api/bundles/{bundleId}/samples/{sampleId} Unlink a sample from a bundle.
BundleToolApi get_bundle_tools get /api/bundles/{bundleId}/tools Retrieve a list of bundle tools.
BundleToolApi get_tools_eligible_for_linking_to_bundle get /api/bundles/{bundleId}/tools/eligibleForLinking Retrieve a list of tools eligible for linking to the bundle.
BundleToolApi link_tool_to_bundle post /api/bundles/{bundleId}/tools/{toolId} Link a tool to a bundle
BundleToolApi unlink_tool_from_bundle delete /api/bundles/{bundleId}/tools/{toolId} Unlink a tool from this bundle.
ConnectorApi cancel_connector post /api/connectors/{connectorId}:cancel Cancel a connector.
ConnectorApi create_connector post /api/connectors Create a connector.
ConnectorApi create_download_rule post /api/connectors/{connectorId}/downloadRules Create a download rule.
ConnectorApi create_upload_rule post /api/connectors/{connectorId}/uploadRules Create an upload rule.
ConnectorApi delete_download_rule delete /api/connectors/{connectorId}/downloadRules/{downloadRuleId} Delete a download rule.
ConnectorApi delete_upload_rule delete /api/connectors/{connectorId}/uploadRules/{uploadRuleId} Delete an upload rule.
ConnectorApi disable_connector post /api/connectors/{connectorId}:disable Disable a connector.
ConnectorApi enable_connector post /api/connectors/{connectorId}:enable Enable a connector.
ConnectorApi get_connector get /api/connectors/{connectorId} Retrieve a connector.
ConnectorApi get_connectors get /api/connectors Retrieve a list of connectors.
ConnectorApi get_download_rule get /api/connectors/{connectorId}/downloadRules/{downloadRuleId} Retrieve a download rule.
ConnectorApi get_download_rules get /api/connectors/{connectorId}/downloadRules Retrieve a list of download rules.
ConnectorApi get_upload_rule get /api/connectors/{connectorId}/uploadRules/{uploadRuleId} Retrieve an upload rule.
ConnectorApi get_upload_rules get /api/connectors/{connectorId}/uploadRules Retrieve a list of upload rules.
ConnectorApi update_download_rule put /api/connectors/{connectorId}/downloadRules/{downloadRuleId} Update a download rule.
ConnectorApi update_upload_rule put /api/connectors/{connectorId}/uploadRules/{uploadRuleId} Update an upload rule.
DataApi create_download_url_for_data_without_project_context post /api/data/{dataUrn}:createDownloadUrl Retrieve a download URL for this data.
DataApi create_inline_view_url_for_data_without_project_context post /api/data/{dataUrn}:createInlineViewUrl Retrieve an URL for this data to use for inline view in a browser.
DataApi get_data get /api/data/{dataUrn} Retrieve a data.
DataFormatApi get_data_formats get /api/dataFormats Retrieve a list of data formats.
EntitledBundleApi get_entitled_bundle get /api/entitledbundles/{entitledBundleId} Retrieve an entitled bundle.
EntitledBundleApi get_entitled_bundles get /api/entitledbundles Retrieve a list of entitled bundles.
EntitlementDetailApi find_all_matching_activation_codes_for_cwl post /api/activationCodes:findAllMatchingForCwl Search all matching activation code details for a Cwl pipeline.
EntitlementDetailApi find_all_matching_activation_codes_for_nextflow post /api/activationCodes:findAllMatchingForNextflow Search all matching activation code details for a Nextflow pipeline.
EntitlementDetailApi find_best_matching_activation_code_for_cwl post /api/activationCodes:findBestMatchingForCwl Search the best matching activation code detail for Cwl pipeline.
EntitlementDetailApi find_best_matching_activation_codes_for_nextflow post /api/activationCodes:findBestMatchingForNextflow Search the best matching activation code details for Nextflow pipeline.
EventCodeApi get_event_codes get /api/eventCodes Retrieve event codes
EventLogApi get_event_logs get /api/eventLog Retrieve a list of event logs.
JobApi get_job get /api/jobs/{jobId} Retrieve a job.
JobApi get_jobs get /api/jobs Retrieve a list of jobs.
MetadataModelApi get_metadata_model get /api/metadataModels/{metadataModelId} Retrieve a metadata model. Only metadata models that the user has access to can be retrieved.
MetadataModelApi get_metadata_model_fields get /api/metadataModels/{metadataModelId}/fields Retrieve the fields of a metadata model. Only metadata models that the user has access to can be retrieved.
MetadataModelApi get_metadata_models get /api/metadataModels Retrieve the metadata models for the tenant associated to the security context.
MetadataModelApi get_tenant_model get /api/metadataModels/tenantModel Retrieve the tenant model for the tenant associated to the security context.
NotificationChannelApi create_notification_channel post /api/notificationChannels Create a notification channel
NotificationChannelApi delete_notification_channel delete /api/notificationChannels/{channelId} Delete a notification channel
NotificationChannelApi get_notification_channel get /api/notificationChannels/{channelId} Retrieve a notification channel
NotificationChannelApi get_notification_channels get /api/notificationChannels Retrieve notification channels
NotificationChannelApi update_notification_channel put /api/notificationChannels/{channelId} Update a notification channel
PipelineApi download_pipeline_file_content get /api/pipelines/{pipelineId}/files/{fileId}/content Download the contents of a pipeline file.
PipelineApi get_pipeline get /api/pipelines/{pipelineId} Retrieve a pipeline.
PipelineApi get_pipeline_configuration_parameters get /api/pipelines/{pipelineId}/configurationParameters Retrieve configuration parameters for a pipeline.
PipelineApi get_pipeline_files get /api/pipelines/{pipelineId}/files Retrieve files for a pipeline.
PipelineApi get_pipeline_html_documentation get /api/pipelines/{pipelineId}/documentation/HTML Retrieve HTML documentation for a project pipeline.
PipelineApi get_pipeline_input_parameters get /api/pipelines/{pipelineId}/inputParameters Retrieve input parameters for a pipeline.
PipelineApi get_pipeline_reference_sets get /api/pipelines/{pipelineId}/referenceSets Retrieve the reference sets of a pipeline.
PipelineApi get_pipelines get /api/pipelines Retrieve a list of pipelines.
PipelineLanguageApi get_nextflow_versions get /api/pipelineLanguages/nextflow/versions Retrieve a list of nextflow versions.
ProjectApi create_project post /api/projects Create a new project.
ProjectApi get_project get /api/projects/{projectId} Retrieve a project.
ProjectApi get_project_bundle get /api/projects/{projectId}/bundles/{bundleId} Retrieve a project bundle.
ProjectApi get_project_bundles get /api/projects/{projectId}/bundles Retrieve project bundles.
ProjectApi get_projects get /api/projects Retrieve a list of projects.
ProjectApi hide_project post /api/projects/{projectId}:hide Hide a project.
ProjectApi link_project_bundle post /api/projects/{projectId}/bundles/{bundleId} Link a bundle to a project.
ProjectApi unlink_project_bundle delete /api/projects/{projectId}/bundles/{bundleId} Unlink a bundle from a project.
ProjectApi update_project put /api/projects/{projectId} Update a project.
ProjectAnalysisApi abort_analysis post /api/projects/{projectId}/analyses/{analysisId}:abort Abort an analysis.
ProjectAnalysisApi create_cwl_analysis post /api/projects/{projectId}/analysis:cwl Create and start an analysis for a CWL pipeline.
ProjectAnalysisApi create_nextflow_analysis post /api/projects/{projectId}/analysis:nextflow Create and start an analysis for a Nextflow pipeline.
ProjectAnalysisApi get_analyses get /api/projects/{projectId}/analyses Retrieve the list of analyses.
ProjectAnalysisApi get_analysis get /api/projects/{projectId}/analyses/{analysisId} Retrieve an analysis.
ProjectAnalysisApi get_analysis_configurations get /api/projects/{projectId}/analyses/{analysisId}/configurations Retrieve the configurations of an analysis.
ProjectAnalysisApi get_analysis_inputs get /api/projects/{projectId}/analyses/{analysisId}/inputs Retrieve the inputs of an analysis.
ProjectAnalysisApi get_analysis_outputs get /api/projects/{projectId}/analyses/{analysisId}/outputs Retrieve the outputs of an analysis. The list might be incomplete if a folder contains too many output files, but all the data can always be retrieved through the GET data endpoint.
ProjectAnalysisApi get_analysis_steps get /api/projects/{projectId}/analyses/{analysisId}/steps Retrieve the individual steps of an analysis.
ProjectAnalysisApi get_cwl_input_json get /api/projects/{projectId}/analyses/{analysisId}/cwl/inputJson Retrieve the input json of a CWL analysis.
ProjectAnalysisApi get_cwl_output_json get /api/projects/{projectId}/analyses/{analysisId}/cwl/outputJson Retrieve the output json of a CWL analysis.
ProjectAnalysisApi get_raw_analysis_output get /api/projects/{projectId}/analyses/{analysisId}/rawOutput Retrieve the raw output of an analysis.
ProjectAnalysisApi update_analysis put /api/projects/{projectId}/analyses/{analysisId} Update an analysis.
ProjectAnalysisCreationBatchApi create_analysis_creation_batch post /api/projects/{projectId}/analysisCreationBatch Create and start multiple analyses in batch.
ProjectAnalysisCreationBatchApi get_analysis_creation_batch get /api/projects/{projectId}/analysisCreationBatch/{batchId} Retrieve a analysis creation batch.
ProjectAnalysisCreationBatchApi get_analysis_creation_batch_item get /api/projects/{projectId}/analysisCreationBatch/{batchId}/items Retrieve a list of analysis creation batch items.
ProjectAnalysisCreationBatchApi get_analysis_creation_batch_item1 get /api/projects/{projectId}/analysisCreationBatch/{batchId}/items/{itemId} Retrieve a analysis creation batch item.
ProjectBaseApi create_base_connection_details post /api/projects/{projectId}/base:connectionDetails Creates the connection details to snowflake instance.
ProjectBaseApi get_base_job get /api/projects/{projectId}/base/jobs/{baseJobId} Retrieve a base job.
ProjectBaseApi get_base_jobs get /api/projects/{projectId}/base/jobs Retrieve a list of base jobs
ProjectBaseApi get_base_tables get /api/projects/{projectId}/base/tables Retrieve a list of base tables.
ProjectBaseApi load_data post /api/projects/{projectId}/base/tables/{tableId}:loadData Load data in a base table.
ProjectCustomEventsApi create_custom_event post /api/projects/{projectId}/customEvents Create a new custom event.
ProjectCustomNotificationSubscriptionsApi create_notification_subscription post /api/projects/{projectId}/customNotificationSubscriptions Create a custom notification subscription
ProjectCustomNotificationSubscriptionsApi delete_notification_subscription delete /api/projects/{projectId}/customNotificationSubscriptions/{subscriptionId} Delete a custom notification subscription
ProjectCustomNotificationSubscriptionsApi get_notification_subscription get /api/projects/{projectId}/customNotificationSubscriptions/{subscriptionId} Retrieve a notification subscription
ProjectCustomNotificationSubscriptionsApi get_notification_subscriptions get /api/projects/{projectId}/customNotificationSubscriptions Retrieve notification subscriptions
ProjectCustomNotificationSubscriptionsApi update_notification_subscription put /api/projects/{projectId}/customNotificationSubscriptions/{subscriptionId} Update a notification subscription
ProjectDataApi add_secondary_data post /api/projects/{projectId}/data/{dataId}/secondaryData/{secondaryDataId} Add secondary data to data.
ProjectDataApi archive_data post /api/projects/{projectId}/data/{dataId}:archive Schedule this data for archival.
ProjectDataApi complete_folder_upload_session post /api/projects/{projectId}/data/{dataId}/folderUploadSessions/{folderUploadSessionId}:complete Complete a trackable folder upload session.
ProjectDataApi create_data_in_project post /api/projects/{projectId}/data Create data in this project.
ProjectDataApi create_download_url_for_data post /api/projects/{projectId}/data/{dataId}:createDownloadUrl Retrieve a download URL for this data.
ProjectDataApi create_download_urls_for_data post /api/projects/{projectId}/data:createDownloadUrls Retrieve download URLs for the data.
ProjectDataApi create_folder_upload_session post /api/projects/{projectId}/data/{dataId}/folderUploadSessions Create a trackable folder upload session.
ProjectDataApi create_inline_view_url_for_data post /api/projects/{projectId}/data/{dataId}:createInlineViewUrl Retrieve an URL for this data to use for inline view in a browser.
ProjectDataApi create_temporary_credentials_for_data post /api/projects/{projectId}/data/{dataId}:createTemporaryCredentials Retrieve temporary credentials for this data.
ProjectDataApi create_upload_url_for_data post /api/projects/{projectId}/data/{dataId}:createUploadUrl Retrieve an upload URL for this data.
ProjectDataApi delete_data post /api/projects/{projectId}/data/{dataId}:delete Schedule this data for deletion.
ProjectDataApi get_data_eligible_for_linking get /api/projects/{projectId}/data/eligibleForLinking Retrieve a list of data eligible for linking to the current project.
ProjectDataApi get_folder_upload_session get /api/projects/{projectId}/data/{dataId}/folderUploadSessions/{folderUploadSessionId} Retrieve folder upload session details.
ProjectDataApi get_non_sample_project_data get /api/projects/{projectId}/data/nonSampleData Retrieve a list of project data not linked to a sample.
ProjectDataApi get_project_data get /api/projects/{projectId}/data/{dataId} Retrieve a project data.
ProjectDataApi get_project_data_children get /api/projects/{projectId}/data/{dataId}/children Retrieve the children of this data.
ProjectDataApi get_project_data_list get /api/projects/{projectId}/data Retrieve the list of project data.
ProjectDataApi get_projects_linked_to_data get /api/projects/{projectId}/data/{dataId}/linkedProjects Retrieve a list of projects to which this data is linked.
ProjectDataApi get_secondary_data get /api/projects/{projectId}/data/{dataId}/secondaryData Retrieve a list of secondary data for data.
ProjectDataApi link_data_to_project post /api/projects/{projectId}/data/{dataId} Link data to this project.
ProjectDataApi remove_secondary_data delete /api/projects/{projectId}/data/{dataId}/secondaryData/{secondaryDataId} Remove secondary data from data.
ProjectDataApi schedule_download_for_data post /api/projects/{projectId}/data/{dataId}:scheduleDownload Schedule a download.
ProjectDataApi unarchive_data post /api/projects/{projectId}/data/{dataId}:unarchive Schedule this data for unarchival.
ProjectDataApi unlink_data_from_project post /api/projects/{projectId}/data/{dataId}:unlink Unlink data from this project.
ProjectDataApi update_project_data put /api/projects/{projectId}/data/{dataId} Update this project data.
ProjectDataLinkingBatchApi create_project_data_linking_batch post /api/projects/{projectId}/dataLinkingBatch Create a project data linking batch.
ProjectDataLinkingBatchApi get_project_data_linking_batch get /api/projects/{projectId}/dataLinkingBatch/{batchId} Retrieve a project data linking batch.
ProjectDataLinkingBatchApi get_project_data_linking_batch_item get /api/projects/{projectId}/dataLinkingBatch/{batchId}/items/{itemId} Retrieve a project data linking batch item.
ProjectDataLinkingBatchApi get_project_data_linking_batch_items get /api/projects/{projectId}/dataLinkingBatch/{batchId}/items Retrieve a list of project data linking batch items.
ProjectDataTransferApi abort_data_transfer post /api/projects/{projectId}/dataTransfers/{dataTransferId}:abort Abort a data transfer.
ProjectDataTransferApi get_data_transfer get /api/projects/{projectId}/dataTransfers/{dataTransferId} Retrieve a data transfer.
ProjectDataTransferApi get_data_transfers get /api/projects/{projectId}/dataTransfers Retrieve a list of data transfers.
ProjectDataUpdateBatchApi create_project_data_update_batch post /api/projects/{projectId}/dataUpdateBatch Create a project data update batch.
ProjectDataUpdateBatchApi get_project_data_update_batch get /api/projects/{projectId}/dataUpdateBatch/{batchId} Retrieve a project data update batch.
ProjectDataUpdateBatchApi get_project_data_update_batch_item get /api/projects/{projectId}/dataUpdateBatch/{batchId}/items/{itemId} Retrieve a project data update batch item.
ProjectDataUpdateBatchApi get_project_data_update_batch_items get /api/projects/{projectId}/dataUpdateBatch/{batchId}/items Retrieve a list of project data update batch items.
ProjectNotificationSubscriptionsApi create_notification_subscription1 post /api/projects/{projectId}/notificationSubscriptions Create a notification subscription
ProjectNotificationSubscriptionsApi delete_notification_subscription1 delete /api/projects/{projectId}/notificationSubscriptions/{subscriptionId} Delete a notification subscription
ProjectNotificationSubscriptionsApi get_notification_subscription1 get /api/projects/{projectId}/notificationSubscriptions/{subscriptionId} Retrieve a notification subscription
ProjectNotificationSubscriptionsApi get_notification_subscriptions1 get /api/projects/{projectId}/notificationSubscriptions Retrieve notification subscriptions
ProjectNotificationSubscriptionsApi update_notification_subscription1 put /api/projects/{projectId}/notificationSubscriptions/{subscriptionId} Update a notification subscription
ProjectPermissionApi create_project_permission post /api/projects/{projectId}/permissions Create a project permission.
ProjectPermissionApi get_project_permission get /api/projects/{projectId}/permissions/{permissionId} Retrieve a project permission.
ProjectPermissionApi get_project_permissions get /api/projects/{projectId}/permissions Retrieve a list of project permissions.
ProjectPermissionApi update_project_permission put /api/projects/{projectId}/permissions/{permissionId} Update a project permission.
ProjectPipelineApi create_cwl_pipeline post /api/projects/{projectId}/pipelines:createCwlPipeline Create a CWL pipeline within a project.
ProjectPipelineApi create_nextflow_pipeline post /api/projects/{projectId}/pipelines:createNextflowPipeline Create a Nextflow pipeline within a project.
ProjectPipelineApi create_pipeline_file post /api/projects/{projectId}/pipelines/{pipelineId}/files Create a file for a pipeline.
ProjectPipelineApi delete_pipeline_file delete /api/projects/{projectId}/pipelines/{pipelineId}/files/{fileId} Delete a file for a pipeline.
ProjectPipelineApi download_pipeline_file_content1 get /api/projects/{projectId}/pipelines/{pipelineId}/files/{fileId}/content Download the contents of a pipeline file.
ProjectPipelineApi get_pipeline_files1 get /api/projects/{projectId}/pipelines/{pipelineId}/files Retrieve files for a project pipeline.
ProjectPipelineApi get_project_pipeline get /api/projects/{projectId}/pipelines/{pipelineId} Retrieve a project pipeline.
ProjectPipelineApi get_project_pipeline_configuration_parameters get /api/projects/{projectId}/pipelines/{pipelineId}/configurationParameters Retrieve configuration parameters for a project pipeline.
ProjectPipelineApi get_project_pipeline_html_documentation get /api/projects/{projectId}/pipelines/{pipelineId}/documentation/HTML Retrieve HTML documentation for a project pipeline.
ProjectPipelineApi get_project_pipeline_input_parameters get /api/projects/{projectId}/pipelines/{pipelineId}/inputParameters Retrieve input parameters for a project pipeline.
ProjectPipelineApi get_project_pipeline_reference_sets get /api/projects/{projectId}/pipelines/{pipelineId}/referenceSets Retrieve the reference sets of a project pipeline.
ProjectPipelineApi get_project_pipelines get /api/projects/{projectId}/pipelines Retrieve a list of project pipelines.
ProjectPipelineApi link_pipeline_to_project post /api/projects/{projectId}/pipelines/{pipelineId} Link a pipeline to a project.
ProjectPipelineApi release_pipeline post /api/projects/{projectId}/pipelines/{pipelineId}:release Release a pipeline.
ProjectPipelineApi unlink_pipeline_from_project delete /api/projects/{projectId}/pipelines/{pipelineId} Unlink a pipeline from a project.
ProjectPipelineApi update_pipeline_file put /api/projects/{projectId}/pipelines/{pipelineId}/files/{fileId}/content Update the contents of a file for a pipeline.
ProjectSampleApi add_metadata_model_to_sample post /api/projects/{projectId}/samples/{sampleId}/metadata/{metadataModelId} Add a metadata model to a sample.
ProjectSampleApi complete_project_sample post /api/projects/{projectId}/samples/{sampleId}:complete Completes the sample after data has been linked to it.
ProjectSampleApi create_sample_in_project post /api/projects/{projectId}/samples Create a new sample in this project
ProjectSampleApi deep_delete_sample post /api/projects/{projectId}/samples/{sampleId}:deleteDeep Delete a sample together with all of its data.
ProjectSampleApi delete_and_unlink_sample post /api/projects/{projectId}/samples/{sampleId}:deleteUnlink Delete a sample and unlink its data.
ProjectSampleApi delete_sample_with_input post /api/projects/{projectId}/samples/{sampleId}:deleteWithInput Delete a sample as well as its input data.
ProjectSampleApi get_project_sample get /api/projects/{projectId}/samples/{sampleId} Retrieve a project sample.
ProjectSampleApi get_project_sample_analyses get /api/projects/{projectId}/samples/{sampleId}/analyses Retrieve the list of analyses.
ProjectSampleApi get_project_samples post /api/projects/{projectId}/samples:search Retrieve project samples.
ProjectSampleApi get_projects_for_sample get /api/projects/{projectId}/samples/{sampleId}/projects Retrieve a list of projects for this sample.
ProjectSampleApi get_sample_data_list get /api/projects/{projectId}/samples/{sampleId}/data Retrieve the list of sample data.
ProjectSampleApi get_sample_history get /api/projects/{projectId}/samples/{sampleId}/history Retrieve sample history.
ProjectSampleApi get_sample_metadata_field get /api/projects/{projectId}/samples/{sampleId}/metadata/field/{fieldId} Retrieve a metadata field.
ProjectSampleApi get_sample_metadata_field_count get /api/projects/{projectId}/samples/{sampleId}/metadata/{fieldId}/fieldCount Retrieves the number of occurrences of a given field.
ProjectSampleApi link_data_to_sample post /api/projects/{projectId}/samples/{sampleId}/data/{dataId} Link data to a sample.
ProjectSampleApi link_sample_to_project post /api/projects/{projectId}/samples/{sampleId} Link a sample to a project.
ProjectSampleApi mark_sample_deleted post /api/projects/{projectId}/samples/{sampleId}:deleteMark Mark a sample deleted.
ProjectSampleApi unlink_data_from_sample post /api/projects/{projectId}/samples/{sampleId}/data/{dataId}:unlink Unlink data from a sample.
ProjectSampleApi unlink_sample_from_project post /api/projects/{projectId}/samples/{sampleId}:unlink Unlink a sample from a project.
ProjectSampleApi update_project_sample put /api/projects/{projectId}/samples/{sampleId} Update a project sample.
ProjectSampleApi update_sample_metadata_fields post /api/projects/{projectId}/samples/{sampleId}/metadata:updateFields Update metadata fields.
ProjectSampleBatchApi create_sample_creation_batch post /api/projects/{projectId}/sampleCreationBatch Create a sample creation batch.
ProjectSampleBatchApi get_sample_creation_batch get /api/projects/{projectId}/sampleCreationBatch/{batchId} Retrieve a sample creation batch.
ProjectSampleBatchApi get_sample_creation_batch_item get /api/projects/{projectId}/sampleCreationBatch/{batchId}/items/{itemId} Retrieve a sample creation batch item.
ProjectSampleBatchApi get_sample_creation_batch_items get /api/projects/{projectId}/sampleCreationBatch/{batchId}/items Retrieve a list of sample creation batch items.
ReferenceSetApi get_reference_sets get /api/referenceSets Retrieve a list of of reference sets.
ReferenceSetApi get_species get /api/referenceSets/{referenceSetId}/species Retrieve a list of species linked to the reference set.
RegionApi get_region get /api/regions/{regionId} Retrieve a region. Only the regions the user has access to through his/her entitlements can be retrieved.
RegionApi get_regions get /api/regions Retrieve a list of regions. Only the regions the user has access to through his/her entitlements are returned.
SampleApi get_samples get /api/samples Retrieve a list of samples.
SequencingRunApi get_sequencing_run get /api/sequencingRuns/{sequencingRunId} Retrieve a sequencing run.
StorageBundleApi get_storage_bundles get /api/storageBundles Retrieve a list of storage bundles.
StorageConfigurationApi create_storage_configuration post /api/storageConfigurations Create a new storage configuration
StorageConfigurationApi get_storage_configuration get /api/storageConfigurations/{storageConfigurationId} Retrieve a storage configuration.
StorageConfigurationApi get_storage_configuration_details get /api/storageConfigurations/{storageConfigurationId}/details Retrieve a storage configuration detail.
StorageConfigurationApi get_storage_configurations get /api/storageConfigurations Retrieve a list of storage configurations.
StorageConfigurationApi share_storage_configuration post /api/storageConfigurations/{storageConfigurationId}:share Share your own storage configuration with tenant.
StorageCredentialsApi create_storage_credential post /api/storageCredentials Create a new storage credential
StorageCredentialsApi get_storage_credential get /api/storageCredentials/{storageCredentialId} Retrieve a storage credential.
StorageCredentialsApi get_storage_credentials get /api/storageCredentials Retrieve a list of storage credentials.
StorageCredentialsApi share_storage_credential post /api/storageCredentials/{storageCredentialId}:share Share your own storage credentials with tenant.
StorageCredentialsApi update_storage_credential_secrets post /api/storageCredentials/{storageCredentialId}:updateSecrets Update a storage credential's secrets.
SystemApi get_system_info get /api/system/info Retrieve system information.
TokenApi create_jwt_token post /api/tokens Generate a JWT using an API-key, Basic Authentication or a psToken.
TokenApi refresh_jwt_token post /api/tokens:refresh Refresh a JWT using a not yet expired, still valid JWT.
UserApi approve_user post /api/users/{userId}:approve Approve a user.
UserApi assign_tenant_admin_rights_to_user post /api/users/{userId}:assignTenantAdministratorRights Assign tenant administrator rights to a user.
UserApi get_user get /api/users/{userId} Retrieve a user.
UserApi get_users get /api/users Retrieve a list of users.
UserApi revoke_tenant_admin_rights_to_user post /api/users/{userId}:revokeTenantAdministratorRights Revoke tenant administrator rights to a user.
UserApi update_user put /api/users/{userId} Update a user.
WorkgroupApi get_workgroup get /api/workgroups/{workgroupId} Retrieve a workgroup.
WorkgroupApi get_workgroups get /api/workgroups Retrieve a list of workgroups.

Documentation For Models

Documentation For Authorization

JwtAuth

  • Type: Bearer authentication (JWT)

PsTokenAuth

  • Type: Bearer authentication (psToken)

ApiKeyAuth

  • Type: API key
  • API key parameter name: X-API-Key
  • Location: HTTP header

Authentication schemes defined for the API:

BasicAuth

  • Type: HTTP basic authentication

Author

Notes for Large OpenAPI documents

If the OpenAPI document is large, imports in icasdk.apis and icasdk.models may fail with a RecursionError indicating the maximum recursion limit has been exceeded. In that case, there are a couple of solutions:

Solution 1: Use specific imports for apis and models like:

  • from icasdk.apis.default_api import DefaultApi
  • from icasdk.model.pet import Pet

Solution 1: Before importing the package, adjust the maximum recursion limit as shown below:

import sys
sys.setrecursionlimit(1500)
import icasdk
from icasdk.apis import *
from icasdk.models import *