From fce8883872b7ad3cad1def5d50e7a3e0664ec371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Reynard?= Date: Fri, 5 Sep 2025 10:40:21 +0200 Subject: [PATCH 1/4] Upgrade dependencies, enhance dataset parts handling, and update API documentation - Updated dependencies across the project (e.g., `argoClientJavaVersion`, `springDocVersion`, `nettyVersion`, etc.) for compatibility and performance improvements. - Refined version constraints and forced resolutions for specific dependencies (e.g., Netty components). - Improved dataset parts handling in `RunArgoWorkflowService` by introducing placeholders for additional metadata null values. - Streamlined dependencies in `build.gradle.kts` by removing outdated resolution strategy for jmustache and consolidating various versions. - Updated OpenAPI generator version to 7.15.0 --- build.gradle.kts | 74 +++---- doc/.openapi-generator/VERSION | 2 +- doc/README.md | 204 +++++++++--------- run/build.gradle.kts | 8 +- .../workflow/argo/RunArgoWorkflowService.kt | 2 + 5 files changed, 145 insertions(+), 145 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index b9bf10264..6021f9ca1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -24,28 +24,19 @@ import org.springframework.boot.gradle.tasks.run.BootRun // implementations/configurations in a 'buildSrc' included build. // See https://docs.gradle.org/current/userguide/organizing_gradle_projects.html#sec:build_sources -buildscript { - configurations.all { - // Due to bug OpenAPITools/openapi-generator#20375 when we use another - // plugin that also depends on jmustache the newer version ends up being - // used and it breaks the generation of the python client. - resolutionStrategy.force("com.samskivert:jmustache:1.15") - } -} - plugins { val kotlinVersion = "2.0.21" kotlin("jvm") version kotlinVersion kotlin("plugin.spring") version kotlinVersion apply false - id("pl.allegro.tech.build.axion-release") version "1.18.18" - id("com.diffplug.spotless") version "7.0.3" - id("org.springframework.boot") version "3.4.4" apply false + id("pl.allegro.tech.build.axion-release") version "1.20.1" + id("com.diffplug.spotless") version "7.2.1" + id("org.springframework.boot") version "3.5.5" apply false id("project-report") - id("org.owasp.dependencycheck") version "12.1.0" + id("org.owasp.dependencycheck") version "12.1.3" id("com.github.jk1.dependency-license-report") version "2.9" id("org.jetbrains.kotlinx.kover") version "0.9.1" id("io.gitlab.arturbosch.detekt") version "1.23.8" - id("org.openapi.generator") version "7.13.0" apply false + id("org.openapi.generator") version "7.15.0" apply false id("com.google.cloud.tools.jib") version "3.4.5" apply false id("org.cyclonedx.bom") version "2.3.1" } @@ -58,31 +49,31 @@ version = scmVersion.version // Dependencies version val kotlinJvmTarget = 21 -val cosmotechApiCommonVersion = "2.1.1-SNAPSHOT" -val redisOmSpringVersion = "0.9.7" +val cosmotechApiCommonVersion = "2.1.2-upgrades-SNAPSHOT" +val redisOmSpringVersion = "0.9.10" val kotlinCoroutinesVersion = "1.10.2" -val oktaSpringBootVersion = "3.0.7" -val springDocVersion = "2.8.8" -val swaggerParserVersion = "2.1.31" -val commonsCsvVersion = "1.14.0" -val apiValidationVersion = "3.0.2" +val springDocVersion = "2.8.12" +val swaggerParserVersion = "2.1.33" +val commonsCsvVersion = "1.14.1" +val apiValidationVersion = "3.1.1" val kubernetesClientVersion = "22.0.0" -val orgJsonVersion = "20240303" +val orgJsonVersion = "20250517" val jacksonModuleKotlinVersion = "2.18.3" -val testNgVersion = "7.8.0" +val testNgVersion = "7.11.0" val testContainersRedisVersion = "1.6.4" -val testContainersPostgreSQLVersion = "1.20.6" -val testContainersLocalStackVersion = "1.20.6" -val commonCompressVersion = "1.27.1" -val awsSpringVersion = "3.3.0" +val testContainersPostgreSQLVersion = "1.21.3" +val testContainersLocalStackVersion = "1.21.3" +val commonCompressVersion = "1.28.0" +val awsSpringVersion = "3.4.0" +val nettyVersion = "4.2.5.Final" // Checks val detektVersion = "1.23.8" // Tests -val jUnitBomVersion = "5.12.2" -val mockkVersion = "1.14.0" -val awaitilityKVersion = "4.2.0" +val jUnitBomVersion = "5.13.4" +val mockkVersion = "1.14.5" +val awaitilityKVersion = "4.3.0" val springMockkVersion = "4.0.2" val configBuildDir = "${layout.buildDirectory.get()}/config" @@ -125,9 +116,18 @@ allprojects { sourceCompatibility = JavaVersion.VERSION_21 toolchain { languageVersion.set(JavaLanguageVersion.of(kotlinJvmTarget)) } } - configurations { all { resolutionStrategy { force("com.redis.om:redis-om-spring:0.9.10") } } } + configurations { + all { + resolutionStrategy { + force("io.netty:netty-codec:$nettyVersion") + force("io.netty:netty-handler:$nettyVersion") + force("io.netty:netty-codec-http:$nettyVersion") + } + } + } repositories { + mavenLocal() maven { name = "GitHubPackages" url = uri("https://maven.pkg.github.com/Cosmo-Tech/cosmotech-api-common") @@ -280,12 +280,7 @@ subprojects { implementation("org.springframework.boot:spring-boot-starter-web") { exclude(group = "org.springframework.boot", module = "spring-boot-starter-tomcat") } - implementation("org.springframework.boot:spring-boot-starter-undertow") { - constraints { - implementation("org.jboss.xnio:xnio-api:3.8.16.Final") - implementation("io.undertow:undertow-core:2.3.18.Final") - } - } + implementation("org.springframework.boot:spring-boot-starter-undertow") implementation("com.fasterxml.jackson.module:jackson-module-kotlin:$jacksonModuleKotlinVersion") // https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api implementation("jakarta.validation:jakarta.validation-api:$apiValidationVersion") @@ -294,9 +289,10 @@ subprojects { implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:${springDocVersion}") implementation("io.swagger.parser.v3:swagger-parser-v3:${swaggerParserVersion}") implementation("org.springframework.boot:spring-boot-starter-security") - implementation("org.springframework.security:spring-security-oauth2-jose") + implementation("org.springframework.security:spring-security-oauth2-jose") { + constraints { implementation("com.nimbusds:nimbus-jose-jwt:10.4.2") } + } implementation("org.springframework.security:spring-security-oauth2-resource-server") - implementation("com.okta.spring:okta-spring-boot-starter:${oktaSpringBootVersion}") implementation("org.apache.commons:commons-csv:$commonsCsvVersion") implementation("com.redis.om:redis-om-spring:${redisOmSpringVersion}") diff --git a/doc/.openapi-generator/VERSION b/doc/.openapi-generator/VERSION index eb1dc6a51..368fd8fd8 100644 --- a/doc/.openapi-generator/VERSION +++ b/doc/.openapi-generator/VERSION @@ -1 +1 @@ -7.13.0 +7.15.0 diff --git a/doc/README.md b/doc/README.md index 82aaca893..1ef6bf97a 100644 --- a/doc/README.md +++ b/doc/README.md @@ -7,109 +7,109 @@ All URIs are relative to *http://localhost:8080* | Class | Method | HTTP request | Description | |------------ | ------------- | ------------- | -------------| -| *DatasetApi* | [**createDataset**](Apis/DatasetApi.md#createdataset) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/datasets | Create a Dataset | -*DatasetApi* | [**createDatasetAccessControl**](Apis/DatasetApi.md#createdatasetaccesscontrol) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/security/access | Add a control access to the Dataset | -*DatasetApi* | [**createDatasetPart**](Apis/DatasetApi.md#createdatasetpart) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts | Create a data part of a Dataset | -*DatasetApi* | [**deleteDataset**](Apis/DatasetApi.md#deletedataset) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id} | Delete a Dataset | -*DatasetApi* | [**deleteDatasetAccessControl**](Apis/DatasetApi.md#deletedatasetaccesscontrol) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/security/access/{identity_id} | Remove the specified access from the given Dataset | -*DatasetApi* | [**deleteDatasetPart**](Apis/DatasetApi.md#deletedatasetpart) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/{dataset_part_id} | Delete a Dataset part | -*DatasetApi* | [**downloadDatasetPart**](Apis/DatasetApi.md#downloaddatasetpart) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/{dataset_part_id}/download | Download data from a dataset part | -*DatasetApi* | [**getDataset**](Apis/DatasetApi.md#getdataset) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id} | Retrieve a Dataset | -*DatasetApi* | [**getDatasetAccessControl**](Apis/DatasetApi.md#getdatasetaccesscontrol) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/security/access/{identity_id} | Get a control access for the Dataset | -*DatasetApi* | [**getDatasetPart**](Apis/DatasetApi.md#getdatasetpart) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/{dataset_part_id} | Retrieve a data part of a Dataset | -*DatasetApi* | [**listDatasetParts**](Apis/DatasetApi.md#listdatasetparts) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts | Retrieve all dataset parts of a Dataset | -*DatasetApi* | [**listDatasetSecurityUsers**](Apis/DatasetApi.md#listdatasetsecurityusers) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/security/users | Get the Dataset security users list | -*DatasetApi* | [**listDatasets**](Apis/DatasetApi.md#listdatasets) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets | Retrieve a list of defined Dataset | -*DatasetApi* | [**queryData**](Apis/DatasetApi.md#querydata) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/{dataset_part_id}/query | Get data of a Dataset | -*DatasetApi* | [**replaceDatasetPart**](Apis/DatasetApi.md#replacedatasetpart) | **PUT** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/{dataset_part_id} | Replace existing dataset parts of a Dataset | -*DatasetApi* | [**searchDatasetParts**](Apis/DatasetApi.md#searchdatasetparts) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/search | Search Dataset parts by tags | -*DatasetApi* | [**searchDatasets**](Apis/DatasetApi.md#searchdatasets) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/search | Search Datasets by tags | -*DatasetApi* | [**updateDataset**](Apis/DatasetApi.md#updatedataset) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id} | Update a Dataset | -*DatasetApi* | [**updateDatasetAccessControl**](Apis/DatasetApi.md#updatedatasetaccesscontrol) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/security/access/{identity_id} | Update the specified access to User for a Dataset | -*DatasetApi* | [**updateDatasetDefaultSecurity**](Apis/DatasetApi.md#updatedatasetdefaultsecurity) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/security/default | Set the Dataset default security | -*DatasetApi* | [**updateDatasetPart**](Apis/DatasetApi.md#updatedatasetpart) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/{dataset_part_id} | Update existing dataset parts information of a Dataset | +| *DatasetApi* | [**createDataset**](Apis/DatasetApi.md#createDataset) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/datasets | Create a Dataset | +*DatasetApi* | [**createDatasetAccessControl**](Apis/DatasetApi.md#createDatasetAccessControl) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/security/access | Add a control access to the Dataset | +*DatasetApi* | [**createDatasetPart**](Apis/DatasetApi.md#createDatasetPart) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts | Create a data part of a Dataset | +*DatasetApi* | [**deleteDataset**](Apis/DatasetApi.md#deleteDataset) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id} | Delete a Dataset | +*DatasetApi* | [**deleteDatasetAccessControl**](Apis/DatasetApi.md#deleteDatasetAccessControl) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/security/access/{identity_id} | Remove the specified access from the given Dataset | +*DatasetApi* | [**deleteDatasetPart**](Apis/DatasetApi.md#deleteDatasetPart) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/{dataset_part_id} | Delete a Dataset part | +*DatasetApi* | [**downloadDatasetPart**](Apis/DatasetApi.md#downloadDatasetPart) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/{dataset_part_id}/download | Download data from a dataset part | +*DatasetApi* | [**getDataset**](Apis/DatasetApi.md#getDataset) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id} | Retrieve a Dataset | +*DatasetApi* | [**getDatasetAccessControl**](Apis/DatasetApi.md#getDatasetAccessControl) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/security/access/{identity_id} | Get a control access for the Dataset | +*DatasetApi* | [**getDatasetPart**](Apis/DatasetApi.md#getDatasetPart) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/{dataset_part_id} | Retrieve a data part of a Dataset | +*DatasetApi* | [**listDatasetParts**](Apis/DatasetApi.md#listDatasetParts) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts | Retrieve all dataset parts of a Dataset | +*DatasetApi* | [**listDatasetSecurityUsers**](Apis/DatasetApi.md#listDatasetSecurityUsers) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/security/users | Get the Dataset security users list | +*DatasetApi* | [**listDatasets**](Apis/DatasetApi.md#listDatasets) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets | Retrieve a list of defined Dataset | +*DatasetApi* | [**queryData**](Apis/DatasetApi.md#queryData) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/{dataset_part_id}/query | Get data of a Dataset | +*DatasetApi* | [**replaceDatasetPart**](Apis/DatasetApi.md#replaceDatasetPart) | **PUT** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/{dataset_part_id} | Replace existing dataset parts of a Dataset | +*DatasetApi* | [**searchDatasetParts**](Apis/DatasetApi.md#searchDatasetParts) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/search | Search Dataset parts by tags | +*DatasetApi* | [**searchDatasets**](Apis/DatasetApi.md#searchDatasets) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/search | Search Datasets by tags | +*DatasetApi* | [**updateDataset**](Apis/DatasetApi.md#updateDataset) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id} | Update a Dataset | +*DatasetApi* | [**updateDatasetAccessControl**](Apis/DatasetApi.md#updateDatasetAccessControl) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/security/access/{identity_id} | Update the specified access to User for a Dataset | +*DatasetApi* | [**updateDatasetDefaultSecurity**](Apis/DatasetApi.md#updateDatasetDefaultSecurity) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/security/default | Set the Dataset default security | +*DatasetApi* | [**updateDatasetPart**](Apis/DatasetApi.md#updateDatasetPart) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/datasets/{dataset_id}/parts/{dataset_part_id} | Update existing dataset parts information of a Dataset | | *MetaApi* | [**about**](Apis/MetaApi.md#about) | **GET** /about | Get various information about the API | -| *OrganizationApi* | [**createOrganization**](Apis/OrganizationApi.md#createorganization) | **POST** /organizations | Create a new organization | -*OrganizationApi* | [**createOrganizationAccessControl**](Apis/OrganizationApi.md#createorganizationaccesscontrol) | **POST** /organizations/{organization_id}/security/access | Add a control access to the Organization | -*OrganizationApi* | [**deleteOrganization**](Apis/OrganizationApi.md#deleteorganization) | **DELETE** /organizations/{organization_id} | Delete an organization | -*OrganizationApi* | [**deleteOrganizationAccessControl**](Apis/OrganizationApi.md#deleteorganizationaccesscontrol) | **DELETE** /organizations/{organization_id}/security/access/{identity_id} | Remove the specified access from the given Organization | -*OrganizationApi* | [**getOrganization**](Apis/OrganizationApi.md#getorganization) | **GET** /organizations/{organization_id} | Get the details of an Organization | -*OrganizationApi* | [**getOrganizationAccessControl**](Apis/OrganizationApi.md#getorganizationaccesscontrol) | **GET** /organizations/{organization_id}/security/access/{identity_id} | Get a control access for the Organization | -*OrganizationApi* | [**getOrganizationPermissions**](Apis/OrganizationApi.md#getorganizationpermissions) | **GET** /organizations/{organization_id}/permissions/{role} | Get the Organization permissions by given role | -*OrganizationApi* | [**getOrganizationSecurity**](Apis/OrganizationApi.md#getorganizationsecurity) | **GET** /organizations/{organization_id}/security | Get the Organization security information | -*OrganizationApi* | [**listOrganizationSecurityUsers**](Apis/OrganizationApi.md#listorganizationsecurityusers) | **GET** /organizations/{organization_id}/security/users | Get the Organization security users list | -*OrganizationApi* | [**listOrganizations**](Apis/OrganizationApi.md#listorganizations) | **GET** /organizations | List all Organizations | -*OrganizationApi* | [**listPermissions**](Apis/OrganizationApi.md#listpermissions) | **GET** /organizations/permissions | Get all permissions per components | -*OrganizationApi* | [**updateOrganization**](Apis/OrganizationApi.md#updateorganization) | **PATCH** /organizations/{organization_id} | Update an Organization | -*OrganizationApi* | [**updateOrganizationAccessControl**](Apis/OrganizationApi.md#updateorganizationaccesscontrol) | **PATCH** /organizations/{organization_id}/security/access/{identity_id} | Update the specified access to User for an Organization | -*OrganizationApi* | [**updateOrganizationDefaultSecurity**](Apis/OrganizationApi.md#updateorganizationdefaultsecurity) | **PATCH** /organizations/{organization_id}/security/default | Update the Organization default security | -| *RunApi* | [**deleteRun**](Apis/RunApi.md#deleterun) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs/{run_id} | Delete a run | -*RunApi* | [**getRun**](Apis/RunApi.md#getrun) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs/{run_id} | Get the details of a run | -*RunApi* | [**getRunLogs**](Apis/RunApi.md#getrunlogs) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs/{run_id}/logs | get the logs for the Run | -*RunApi* | [**getRunStatus**](Apis/RunApi.md#getrunstatus) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs/{run_id}/status | get the status for the Run | -*RunApi* | [**listRuns**](Apis/RunApi.md#listruns) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs | get the list of Runs for the Runner | -*RunApi* | [**queryRunData**](Apis/RunApi.md#queryrundata) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs/{run_id}/data/query | query the run data | -*RunApi* | [**sendRunData**](Apis/RunApi.md#sendrundata) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs/{run_id}/data/send | Send data associated to a run | -| *RunnerApi* | [**createRunner**](Apis/RunnerApi.md#createrunner) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/runners | Create a new Runner | -*RunnerApi* | [**createRunnerAccessControl**](Apis/RunnerApi.md#createrunneraccesscontrol) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security/access | Add a control access to the Runner | -*RunnerApi* | [**deleteRunner**](Apis/RunnerApi.md#deleterunner) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id} | Delete a runner | -*RunnerApi* | [**deleteRunnerAccessControl**](Apis/RunnerApi.md#deleterunneraccesscontrol) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security/access/{identity_id} | Remove the specified access from the given Runner | -*RunnerApi* | [**getRunner**](Apis/RunnerApi.md#getrunner) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id} | Get the details of a runner | -*RunnerApi* | [**getRunnerAccessControl**](Apis/RunnerApi.md#getrunneraccesscontrol) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security/access/{identity_id} | Get a control access for the Runner | -*RunnerApi* | [**getRunnerSecurity**](Apis/RunnerApi.md#getrunnersecurity) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security | Get the Runner security information | -*RunnerApi* | [**listRunnerPermissions**](Apis/RunnerApi.md#listrunnerpermissions) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/permissions/{role} | Get the Runner permission by given role | -*RunnerApi* | [**listRunnerSecurityUsers**](Apis/RunnerApi.md#listrunnersecurityusers) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security/users | Get the Runner security users list | -*RunnerApi* | [**listRunners**](Apis/RunnerApi.md#listrunners) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners | List all Runners | -*RunnerApi* | [**startRun**](Apis/RunnerApi.md#startrun) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/start | Start a run with runner parameters | -*RunnerApi* | [**stopRun**](Apis/RunnerApi.md#stoprun) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/stop | Stop the last run | -*RunnerApi* | [**updateRunner**](Apis/RunnerApi.md#updaterunner) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id} | Update a runner | -*RunnerApi* | [**updateRunnerAccessControl**](Apis/RunnerApi.md#updaterunneraccesscontrol) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security/access/{identity_id} | Update the specified access to User for a Runner | -*RunnerApi* | [**updateRunnerDefaultSecurity**](Apis/RunnerApi.md#updaterunnerdefaultsecurity) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security/default | Set the Runner default security | -| *SolutionApi* | [**createSolution**](Apis/SolutionApi.md#createsolution) | **POST** /organizations/{organization_id}/solutions | Create a new solution | -*SolutionApi* | [**createSolutionAccessControl**](Apis/SolutionApi.md#createsolutionaccesscontrol) | **POST** /organizations/{organization_id}/solutions/{solution_id}/security/access | Create solution access control | -*SolutionApi* | [**createSolutionParameter**](Apis/SolutionApi.md#createsolutionparameter) | **POST** /organizations/{organization_id}/solutions/{solution_id}/parameters | Create solution parameter for a solution | -*SolutionApi* | [**createSolutionParameterGroup**](Apis/SolutionApi.md#createsolutionparametergroup) | **POST** /organizations/{organization_id}/solutions/{solution_id}/parameterGroups | Create a solution parameter group | -*SolutionApi* | [**createSolutionRunTemplate**](Apis/SolutionApi.md#createsolutionruntemplate) | **POST** /organizations/{organization_id}/solutions/{solution_id}/runTemplates | Create a solution run template | -*SolutionApi* | [**deleteSolution**](Apis/SolutionApi.md#deletesolution) | **DELETE** /organizations/{organization_id}/solutions/{solution_id} | Delete a solution | -*SolutionApi* | [**deleteSolutionAccessControl**](Apis/SolutionApi.md#deletesolutionaccesscontrol) | **DELETE** /organizations/{organization_id}/solutions/{solution_id}/security/access/{identity_id} | Delete solution access control | -*SolutionApi* | [**deleteSolutionParameter**](Apis/SolutionApi.md#deletesolutionparameter) | **DELETE** /organizations/{organization_id}/solutions/{solution_id}/parameters/{parameter_id} | Delete specific parameter from the solution | -*SolutionApi* | [**deleteSolutionParameterGroup**](Apis/SolutionApi.md#deletesolutionparametergroup) | **DELETE** /organizations/{organization_id}/solutions/{solution_id}/parameterGroups/{parameter_group_id} | Delete a parameter group from the solution | -*SolutionApi* | [**deleteSolutionRunTemplate**](Apis/SolutionApi.md#deletesolutionruntemplate) | **DELETE** /organizations/{organization_id}/solutions/{solution_id}/runTemplates/{run_template_id} | Delete a specific run template | -*SolutionApi* | [**getRunTemplate**](Apis/SolutionApi.md#getruntemplate) | **GET** /organizations/{organization_id}/solutions/{solution_id}/runTemplates/{run_template_id} | Retrieve a solution run templates | -*SolutionApi* | [**getSolution**](Apis/SolutionApi.md#getsolution) | **GET** /organizations/{organization_id}/solutions/{solution_id} | Get the details of a solution | -*SolutionApi* | [**getSolutionAccessControl**](Apis/SolutionApi.md#getsolutionaccesscontrol) | **GET** /organizations/{organization_id}/solutions/{solution_id}/security/access/{identity_id} | Get solution access control | -*SolutionApi* | [**getSolutionParameter**](Apis/SolutionApi.md#getsolutionparameter) | **GET** /organizations/{organization_id}/solutions/{solution_id}/parameters/{parameter_id} | Get the details of a solution parameter | -*SolutionApi* | [**getSolutionParameterGroup**](Apis/SolutionApi.md#getsolutionparametergroup) | **GET** /organizations/{organization_id}/solutions/{solution_id}/parameterGroups/{parameter_group_id} | Get details of a solution parameter group | -*SolutionApi* | [**getSolutionSecurity**](Apis/SolutionApi.md#getsolutionsecurity) | **GET** /organizations/{organization_id}/solutions/{solution_id}/security | Get solution security information | -*SolutionApi* | [**listRunTemplates**](Apis/SolutionApi.md#listruntemplates) | **GET** /organizations/{organization_id}/solutions/{solution_id}/runTemplates | List all solution run templates | -*SolutionApi* | [**listSolutionParameterGroups**](Apis/SolutionApi.md#listsolutionparametergroups) | **GET** /organizations/{organization_id}/solutions/{solution_id}/parameterGroups | List all solution parameter groups | -*SolutionApi* | [**listSolutionParameters**](Apis/SolutionApi.md#listsolutionparameters) | **GET** /organizations/{organization_id}/solutions/{solution_id}/parameters | List all solution parameters | -*SolutionApi* | [**listSolutionSecurityUsers**](Apis/SolutionApi.md#listsolutionsecurityusers) | **GET** /organizations/{organization_id}/solutions/{solution_id}/security/users | List solution security users | -*SolutionApi* | [**listSolutions**](Apis/SolutionApi.md#listsolutions) | **GET** /organizations/{organization_id}/solutions | List all Solutions | -*SolutionApi* | [**updateSolution**](Apis/SolutionApi.md#updatesolution) | **PATCH** /organizations/{organization_id}/solutions/{solution_id} | Update a solution | -*SolutionApi* | [**updateSolutionAccessControl**](Apis/SolutionApi.md#updatesolutionaccesscontrol) | **PATCH** /organizations/{organization_id}/solutions/{solution_id}/security/access/{identity_id} | Update solution access control | -*SolutionApi* | [**updateSolutionDefaultSecurity**](Apis/SolutionApi.md#updatesolutiondefaultsecurity) | **PATCH** /organizations/{organization_id}/solutions/{solution_id}/security/default | Update solution default security | -*SolutionApi* | [**updateSolutionParameter**](Apis/SolutionApi.md#updatesolutionparameter) | **PATCH** /organizations/{organization_id}/solutions/{solution_id}/parameters/{parameter_id} | Update solution parameter | -*SolutionApi* | [**updateSolutionParameterGroup**](Apis/SolutionApi.md#updatesolutionparametergroup) | **PATCH** /organizations/{organization_id}/solutions/{solution_id}/parameterGroups/{parameter_group_id} | Update a solution parameter group | -*SolutionApi* | [**updateSolutionRunTemplate**](Apis/SolutionApi.md#updatesolutionruntemplate) | **PATCH** /organizations/{organization_id}/solutions/{solution_id}/runTemplates/{run_template_id} | Update a specific run template | -| *WorkspaceApi* | [**createWorkspace**](Apis/WorkspaceApi.md#createworkspace) | **POST** /organizations/{organization_id}/workspaces | Create a new workspace | -*WorkspaceApi* | [**createWorkspaceAccessControl**](Apis/WorkspaceApi.md#createworkspaceaccesscontrol) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/security/access | Add a control access to the Workspace | -*WorkspaceApi* | [**createWorkspaceFile**](Apis/WorkspaceApi.md#createworkspacefile) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/files | Upload a file for the Workspace | -*WorkspaceApi* | [**deleteWorkspace**](Apis/WorkspaceApi.md#deleteworkspace) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id} | Delete a workspace | -*WorkspaceApi* | [**deleteWorkspaceAccessControl**](Apis/WorkspaceApi.md#deleteworkspaceaccesscontrol) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/security/access/{identity_id} | Remove the specified access from the given Workspace | -*WorkspaceApi* | [**deleteWorkspaceFile**](Apis/WorkspaceApi.md#deleteworkspacefile) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/files/delete | Delete a workspace file | -*WorkspaceApi* | [**deleteWorkspaceFiles**](Apis/WorkspaceApi.md#deleteworkspacefiles) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/files | Delete all Workspace files | -*WorkspaceApi* | [**getWorkspace**](Apis/WorkspaceApi.md#getworkspace) | **GET** /organizations/{organization_id}/workspaces/{workspace_id} | Get the details of a workspace | -*WorkspaceApi* | [**getWorkspaceAccessControl**](Apis/WorkspaceApi.md#getworkspaceaccesscontrol) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/security/access/{identity_id} | Get a control access for the Workspace | -*WorkspaceApi* | [**getWorkspaceFile**](Apis/WorkspaceApi.md#getworkspacefile) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/files/download | Download the Workspace File specified | -*WorkspaceApi* | [**getWorkspaceSecurity**](Apis/WorkspaceApi.md#getworkspacesecurity) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/security | Get the Workspace security information | -*WorkspaceApi* | [**listWorkspaceFiles**](Apis/WorkspaceApi.md#listworkspacefiles) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/files | List all Workspace files | -*WorkspaceApi* | [**listWorkspaceRolePermissions**](Apis/WorkspaceApi.md#listworkspacerolepermissions) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/permissions/{role} | Get the Workspace permission by given role | -*WorkspaceApi* | [**listWorkspaceSecurityUsers**](Apis/WorkspaceApi.md#listworkspacesecurityusers) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/security/users | Get the Workspace security users list | -*WorkspaceApi* | [**listWorkspaces**](Apis/WorkspaceApi.md#listworkspaces) | **GET** /organizations/{organization_id}/workspaces | List all Workspaces | -*WorkspaceApi* | [**updateWorkspace**](Apis/WorkspaceApi.md#updateworkspace) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id} | Update a workspace | -*WorkspaceApi* | [**updateWorkspaceAccessControl**](Apis/WorkspaceApi.md#updateworkspaceaccesscontrol) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/security/access/{identity_id} | Update the specified access to User for a Workspace | -*WorkspaceApi* | [**updateWorkspaceDefaultSecurity**](Apis/WorkspaceApi.md#updateworkspacedefaultsecurity) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/security/default | Update the Workspace default security | +| *OrganizationApi* | [**createOrganization**](Apis/OrganizationApi.md#createOrganization) | **POST** /organizations | Create a new organization | +*OrganizationApi* | [**createOrganizationAccessControl**](Apis/OrganizationApi.md#createOrganizationAccessControl) | **POST** /organizations/{organization_id}/security/access | Add a control access to the Organization | +*OrganizationApi* | [**deleteOrganization**](Apis/OrganizationApi.md#deleteOrganization) | **DELETE** /organizations/{organization_id} | Delete an organization | +*OrganizationApi* | [**deleteOrganizationAccessControl**](Apis/OrganizationApi.md#deleteOrganizationAccessControl) | **DELETE** /organizations/{organization_id}/security/access/{identity_id} | Remove the specified access from the given Organization | +*OrganizationApi* | [**getOrganization**](Apis/OrganizationApi.md#getOrganization) | **GET** /organizations/{organization_id} | Get the details of an Organization | +*OrganizationApi* | [**getOrganizationAccessControl**](Apis/OrganizationApi.md#getOrganizationAccessControl) | **GET** /organizations/{organization_id}/security/access/{identity_id} | Get a control access for the Organization | +*OrganizationApi* | [**getOrganizationPermissions**](Apis/OrganizationApi.md#getOrganizationPermissions) | **GET** /organizations/{organization_id}/permissions/{role} | Get the Organization permissions by given role | +*OrganizationApi* | [**getOrganizationSecurity**](Apis/OrganizationApi.md#getOrganizationSecurity) | **GET** /organizations/{organization_id}/security | Get the Organization security information | +*OrganizationApi* | [**listOrganizationSecurityUsers**](Apis/OrganizationApi.md#listOrganizationSecurityUsers) | **GET** /organizations/{organization_id}/security/users | Get the Organization security users list | +*OrganizationApi* | [**listOrganizations**](Apis/OrganizationApi.md#listOrganizations) | **GET** /organizations | List all Organizations | +*OrganizationApi* | [**listPermissions**](Apis/OrganizationApi.md#listPermissions) | **GET** /organizations/permissions | Get all permissions per components | +*OrganizationApi* | [**updateOrganization**](Apis/OrganizationApi.md#updateOrganization) | **PATCH** /organizations/{organization_id} | Update an Organization | +*OrganizationApi* | [**updateOrganizationAccessControl**](Apis/OrganizationApi.md#updateOrganizationAccessControl) | **PATCH** /organizations/{organization_id}/security/access/{identity_id} | Update the specified access to User for an Organization | +*OrganizationApi* | [**updateOrganizationDefaultSecurity**](Apis/OrganizationApi.md#updateOrganizationDefaultSecurity) | **PATCH** /organizations/{organization_id}/security/default | Update the Organization default security | +| *RunApi* | [**deleteRun**](Apis/RunApi.md#deleteRun) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs/{run_id} | Delete a run | +*RunApi* | [**getRun**](Apis/RunApi.md#getRun) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs/{run_id} | Get the details of a run | +*RunApi* | [**getRunLogs**](Apis/RunApi.md#getRunLogs) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs/{run_id}/logs | get the logs for the Run | +*RunApi* | [**getRunStatus**](Apis/RunApi.md#getRunStatus) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs/{run_id}/status | get the status for the Run | +*RunApi* | [**listRuns**](Apis/RunApi.md#listRuns) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs | get the list of Runs for the Runner | +*RunApi* | [**queryRunData**](Apis/RunApi.md#queryRunData) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs/{run_id}/data/query | query the run data | +*RunApi* | [**sendRunData**](Apis/RunApi.md#sendRunData) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/runs/{run_id}/data/send | Send data associated to a run | +| *RunnerApi* | [**createRunner**](Apis/RunnerApi.md#createRunner) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/runners | Create a new Runner | +*RunnerApi* | [**createRunnerAccessControl**](Apis/RunnerApi.md#createRunnerAccessControl) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security/access | Add a control access to the Runner | +*RunnerApi* | [**deleteRunner**](Apis/RunnerApi.md#deleteRunner) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id} | Delete a runner | +*RunnerApi* | [**deleteRunnerAccessControl**](Apis/RunnerApi.md#deleteRunnerAccessControl) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security/access/{identity_id} | Remove the specified access from the given Runner | +*RunnerApi* | [**getRunner**](Apis/RunnerApi.md#getRunner) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id} | Get the details of a runner | +*RunnerApi* | [**getRunnerAccessControl**](Apis/RunnerApi.md#getRunnerAccessControl) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security/access/{identity_id} | Get a control access for the Runner | +*RunnerApi* | [**getRunnerSecurity**](Apis/RunnerApi.md#getRunnerSecurity) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security | Get the Runner security information | +*RunnerApi* | [**listRunnerPermissions**](Apis/RunnerApi.md#listRunnerPermissions) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/permissions/{role} | Get the Runner permission by given role | +*RunnerApi* | [**listRunnerSecurityUsers**](Apis/RunnerApi.md#listRunnerSecurityUsers) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security/users | Get the Runner security users list | +*RunnerApi* | [**listRunners**](Apis/RunnerApi.md#listRunners) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/runners | List all Runners | +*RunnerApi* | [**startRun**](Apis/RunnerApi.md#startRun) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/start | Start a run with runner parameters | +*RunnerApi* | [**stopRun**](Apis/RunnerApi.md#stopRun) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/stop | Stop the last run | +*RunnerApi* | [**updateRunner**](Apis/RunnerApi.md#updateRunner) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id} | Update a runner | +*RunnerApi* | [**updateRunnerAccessControl**](Apis/RunnerApi.md#updateRunnerAccessControl) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security/access/{identity_id} | Update the specified access to User for a Runner | +*RunnerApi* | [**updateRunnerDefaultSecurity**](Apis/RunnerApi.md#updateRunnerDefaultSecurity) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/runners/{runner_id}/security/default | Set the Runner default security | +| *SolutionApi* | [**createSolution**](Apis/SolutionApi.md#createSolution) | **POST** /organizations/{organization_id}/solutions | Create a new solution | +*SolutionApi* | [**createSolutionAccessControl**](Apis/SolutionApi.md#createSolutionAccessControl) | **POST** /organizations/{organization_id}/solutions/{solution_id}/security/access | Create solution access control | +*SolutionApi* | [**createSolutionParameter**](Apis/SolutionApi.md#createSolutionParameter) | **POST** /organizations/{organization_id}/solutions/{solution_id}/parameters | Create solution parameter for a solution | +*SolutionApi* | [**createSolutionParameterGroup**](Apis/SolutionApi.md#createSolutionParameterGroup) | **POST** /organizations/{organization_id}/solutions/{solution_id}/parameterGroups | Create a solution parameter group | +*SolutionApi* | [**createSolutionRunTemplate**](Apis/SolutionApi.md#createSolutionRunTemplate) | **POST** /organizations/{organization_id}/solutions/{solution_id}/runTemplates | Create a solution run template | +*SolutionApi* | [**deleteSolution**](Apis/SolutionApi.md#deleteSolution) | **DELETE** /organizations/{organization_id}/solutions/{solution_id} | Delete a solution | +*SolutionApi* | [**deleteSolutionAccessControl**](Apis/SolutionApi.md#deleteSolutionAccessControl) | **DELETE** /organizations/{organization_id}/solutions/{solution_id}/security/access/{identity_id} | Delete solution access control | +*SolutionApi* | [**deleteSolutionParameter**](Apis/SolutionApi.md#deleteSolutionParameter) | **DELETE** /organizations/{organization_id}/solutions/{solution_id}/parameters/{parameter_id} | Delete specific parameter from the solution | +*SolutionApi* | [**deleteSolutionParameterGroup**](Apis/SolutionApi.md#deleteSolutionParameterGroup) | **DELETE** /organizations/{organization_id}/solutions/{solution_id}/parameterGroups/{parameter_group_id} | Delete a parameter group from the solution | +*SolutionApi* | [**deleteSolutionRunTemplate**](Apis/SolutionApi.md#deleteSolutionRunTemplate) | **DELETE** /organizations/{organization_id}/solutions/{solution_id}/runTemplates/{run_template_id} | Delete a specific run template | +*SolutionApi* | [**getRunTemplate**](Apis/SolutionApi.md#getRunTemplate) | **GET** /organizations/{organization_id}/solutions/{solution_id}/runTemplates/{run_template_id} | Retrieve a solution run templates | +*SolutionApi* | [**getSolution**](Apis/SolutionApi.md#getSolution) | **GET** /organizations/{organization_id}/solutions/{solution_id} | Get the details of a solution | +*SolutionApi* | [**getSolutionAccessControl**](Apis/SolutionApi.md#getSolutionAccessControl) | **GET** /organizations/{organization_id}/solutions/{solution_id}/security/access/{identity_id} | Get solution access control | +*SolutionApi* | [**getSolutionParameter**](Apis/SolutionApi.md#getSolutionParameter) | **GET** /organizations/{organization_id}/solutions/{solution_id}/parameters/{parameter_id} | Get the details of a solution parameter | +*SolutionApi* | [**getSolutionParameterGroup**](Apis/SolutionApi.md#getSolutionParameterGroup) | **GET** /organizations/{organization_id}/solutions/{solution_id}/parameterGroups/{parameter_group_id} | Get details of a solution parameter group | +*SolutionApi* | [**getSolutionSecurity**](Apis/SolutionApi.md#getSolutionSecurity) | **GET** /organizations/{organization_id}/solutions/{solution_id}/security | Get solution security information | +*SolutionApi* | [**listRunTemplates**](Apis/SolutionApi.md#listRunTemplates) | **GET** /organizations/{organization_id}/solutions/{solution_id}/runTemplates | List all solution run templates | +*SolutionApi* | [**listSolutionParameterGroups**](Apis/SolutionApi.md#listSolutionParameterGroups) | **GET** /organizations/{organization_id}/solutions/{solution_id}/parameterGroups | List all solution parameter groups | +*SolutionApi* | [**listSolutionParameters**](Apis/SolutionApi.md#listSolutionParameters) | **GET** /organizations/{organization_id}/solutions/{solution_id}/parameters | List all solution parameters | +*SolutionApi* | [**listSolutionSecurityUsers**](Apis/SolutionApi.md#listSolutionSecurityUsers) | **GET** /organizations/{organization_id}/solutions/{solution_id}/security/users | List solution security users | +*SolutionApi* | [**listSolutions**](Apis/SolutionApi.md#listSolutions) | **GET** /organizations/{organization_id}/solutions | List all Solutions | +*SolutionApi* | [**updateSolution**](Apis/SolutionApi.md#updateSolution) | **PATCH** /organizations/{organization_id}/solutions/{solution_id} | Update a solution | +*SolutionApi* | [**updateSolutionAccessControl**](Apis/SolutionApi.md#updateSolutionAccessControl) | **PATCH** /organizations/{organization_id}/solutions/{solution_id}/security/access/{identity_id} | Update solution access control | +*SolutionApi* | [**updateSolutionDefaultSecurity**](Apis/SolutionApi.md#updateSolutionDefaultSecurity) | **PATCH** /organizations/{organization_id}/solutions/{solution_id}/security/default | Update solution default security | +*SolutionApi* | [**updateSolutionParameter**](Apis/SolutionApi.md#updateSolutionParameter) | **PATCH** /organizations/{organization_id}/solutions/{solution_id}/parameters/{parameter_id} | Update solution parameter | +*SolutionApi* | [**updateSolutionParameterGroup**](Apis/SolutionApi.md#updateSolutionParameterGroup) | **PATCH** /organizations/{organization_id}/solutions/{solution_id}/parameterGroups/{parameter_group_id} | Update a solution parameter group | +*SolutionApi* | [**updateSolutionRunTemplate**](Apis/SolutionApi.md#updateSolutionRunTemplate) | **PATCH** /organizations/{organization_id}/solutions/{solution_id}/runTemplates/{run_template_id} | Update a specific run template | +| *WorkspaceApi* | [**createWorkspace**](Apis/WorkspaceApi.md#createWorkspace) | **POST** /organizations/{organization_id}/workspaces | Create a new workspace | +*WorkspaceApi* | [**createWorkspaceAccessControl**](Apis/WorkspaceApi.md#createWorkspaceAccessControl) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/security/access | Add a control access to the Workspace | +*WorkspaceApi* | [**createWorkspaceFile**](Apis/WorkspaceApi.md#createWorkspaceFile) | **POST** /organizations/{organization_id}/workspaces/{workspace_id}/files | Upload a file for the Workspace | +*WorkspaceApi* | [**deleteWorkspace**](Apis/WorkspaceApi.md#deleteWorkspace) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id} | Delete a workspace | +*WorkspaceApi* | [**deleteWorkspaceAccessControl**](Apis/WorkspaceApi.md#deleteWorkspaceAccessControl) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/security/access/{identity_id} | Remove the specified access from the given Workspace | +*WorkspaceApi* | [**deleteWorkspaceFile**](Apis/WorkspaceApi.md#deleteWorkspaceFile) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/files/delete | Delete a workspace file | +*WorkspaceApi* | [**deleteWorkspaceFiles**](Apis/WorkspaceApi.md#deleteWorkspaceFiles) | **DELETE** /organizations/{organization_id}/workspaces/{workspace_id}/files | Delete all Workspace files | +*WorkspaceApi* | [**getWorkspace**](Apis/WorkspaceApi.md#getWorkspace) | **GET** /organizations/{organization_id}/workspaces/{workspace_id} | Get the details of a workspace | +*WorkspaceApi* | [**getWorkspaceAccessControl**](Apis/WorkspaceApi.md#getWorkspaceAccessControl) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/security/access/{identity_id} | Get a control access for the Workspace | +*WorkspaceApi* | [**getWorkspaceFile**](Apis/WorkspaceApi.md#getWorkspaceFile) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/files/download | Download the Workspace File specified | +*WorkspaceApi* | [**getWorkspaceSecurity**](Apis/WorkspaceApi.md#getWorkspaceSecurity) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/security | Get the Workspace security information | +*WorkspaceApi* | [**listWorkspaceFiles**](Apis/WorkspaceApi.md#listWorkspaceFiles) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/files | List all Workspace files | +*WorkspaceApi* | [**listWorkspaceRolePermissions**](Apis/WorkspaceApi.md#listWorkspaceRolePermissions) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/permissions/{role} | Get the Workspace permission by given role | +*WorkspaceApi* | [**listWorkspaceSecurityUsers**](Apis/WorkspaceApi.md#listWorkspaceSecurityUsers) | **GET** /organizations/{organization_id}/workspaces/{workspace_id}/security/users | Get the Workspace security users list | +*WorkspaceApi* | [**listWorkspaces**](Apis/WorkspaceApi.md#listWorkspaces) | **GET** /organizations/{organization_id}/workspaces | List all Workspaces | +*WorkspaceApi* | [**updateWorkspace**](Apis/WorkspaceApi.md#updateWorkspace) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id} | Update a workspace | +*WorkspaceApi* | [**updateWorkspaceAccessControl**](Apis/WorkspaceApi.md#updateWorkspaceAccessControl) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/security/access/{identity_id} | Update the specified access to User for a Workspace | +*WorkspaceApi* | [**updateWorkspaceDefaultSecurity**](Apis/WorkspaceApi.md#updateWorkspaceDefaultSecurity) | **PATCH** /organizations/{organization_id}/workspaces/{workspace_id}/security/default | Update the Workspace default security | diff --git a/run/build.gradle.kts b/run/build.gradle.kts index 338aafe9d..ffd5784dc 100644 --- a/run/build.gradle.kts +++ b/run/build.gradle.kts @@ -1,14 +1,16 @@ // Copyright (c) Cosmo Tech. // Licensed under the MIT license. +// no-import + import org.openapitools.generator.gradle.plugin.tasks.GenerateTask plugins { id("org.jetbrains.kotlinx.kover") } -val argoClientJavaVersion = "v3.5.11" +val argoClientJavaVersion = "v3.6.10" val retroFitVersion = "2.11.0" val okHttpBom = "4.12.0" -val testContainersRabbitMQVersion = "1.20.6" -val springRabbitMQTestVersion = "3.2.4" +val testContainersRabbitMQVersion = "1.21.3" +val springRabbitMQTestVersion = "3.2.6" dependencies { implementation(projects.cosmotechDatasetApi) diff --git a/run/src/main/kotlin/com/cosmotech/run/workflow/argo/RunArgoWorkflowService.kt b/run/src/main/kotlin/com/cosmotech/run/workflow/argo/RunArgoWorkflowService.kt index 81b595dc4..067b08de6 100644 --- a/run/src/main/kotlin/com/cosmotech/run/workflow/argo/RunArgoWorkflowService.kt +++ b/run/src/main/kotlin/com/cosmotech/run/workflow/argo/RunArgoWorkflowService.kt @@ -213,6 +213,8 @@ internal class RunArgoWorkflowService( null, null, null, + null, + null, null) .items } From 13d35b7c96a4df7df99fee1559c5697ac01b5925 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Reynard?= Date: Fri, 5 Sep 2025 11:15:03 +0200 Subject: [PATCH 2/4] Upgrade Gradle to version 8.12 and update workflows accordingly --- .github/workflows/build_test_package.yml | 5 +++++ .github/workflows/doc.yml | 1 + .github/workflows/lint.yml | 2 ++ .github/workflows/openapi.yml | 1 + .github/workflows/openapi_clients.yml | 1 + .github/workflows/track_dependencies.yml | 1 + gradle/wrapper/gradle-wrapper.properties | 2 +- 7 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build_test_package.yml b/.github/workflows/build_test_package.yml index d25ef7680..def43b74f 100644 --- a/.github/workflows/build_test_package.yml +++ b/.github/workflows/build_test_package.yml @@ -33,6 +33,7 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 with: + gradle-version: '8.12' cache-disabled: true - name: Build with Gradle @@ -93,6 +94,7 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 with: + gradle-version: '8.12' cache-disabled: true - name: Run ${{ matrix.service.testPrefix }} controller tests @@ -123,6 +125,7 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 with: + gradle-version: '8.12' cache-disabled: true - name: Run unit tests @@ -171,6 +174,7 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 with: + gradle-version: '8.12' cache-disabled: true - name: Run RBAC ${{ matrix.service.packageName }} integration tests @@ -217,6 +221,7 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 with: + gradle-version: '8.12' cache-disabled: true - name: Build local Container Image for scanning diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index a18bbf2bd..00b892a6a 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -31,6 +31,7 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 with: + gradle-version: '8.12' cache-disabled: true - name: Generate Markdown documentation diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 28413d649..724600a09 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -32,6 +32,7 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 with: + gradle-version: '8.12' cache-disabled: true - name: Check with Spotless @@ -59,6 +60,7 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 with: + gradle-version: '8.12' cache-disabled: true - name: Check with Detekt diff --git a/.github/workflows/openapi.yml b/.github/workflows/openapi.yml index a74d28233..81088856b 100644 --- a/.github/workflows/openapi.yml +++ b/.github/workflows/openapi.yml @@ -43,6 +43,7 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 with: + gradle-version: '8.12' cache-disabled: true - name: Validate '${{ matrix.project }}' definition diff --git a/.github/workflows/openapi_clients.yml b/.github/workflows/openapi_clients.yml index 024232f63..3f49ab8bc 100644 --- a/.github/workflows/openapi_clients.yml +++ b/.github/workflows/openapi_clients.yml @@ -46,6 +46,7 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 with: + gradle-version: '8.12' cache-disabled: true - name: Generate Client (${{ matrix.language }}) diff --git a/.github/workflows/track_dependencies.yml b/.github/workflows/track_dependencies.yml index e6034b6ae..6ea197830 100644 --- a/.github/workflows/track_dependencies.yml +++ b/.github/workflows/track_dependencies.yml @@ -19,6 +19,7 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4.4.1 with: + gradle-version: '8.12' cache-disabled: true - name: Track dependencies env: diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e2847c820..cea7a793a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 54a977df15ffae282bbf990572df8aa4b382875c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Reynard?= Date: Fri, 5 Sep 2025 11:46:00 +0200 Subject: [PATCH 3/4] Downgrade `cosmotechApiCommonVersion` to `2.1.1-SNAPSHOT` and remove `mavenLocal` repository from `build.gradle.kts`. --- build.gradle.kts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 6021f9ca1..cc23f4581 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -49,7 +49,7 @@ version = scmVersion.version // Dependencies version val kotlinJvmTarget = 21 -val cosmotechApiCommonVersion = "2.1.2-upgrades-SNAPSHOT" +val cosmotechApiCommonVersion = "2.1.1-SNAPSHOT" val redisOmSpringVersion = "0.9.10" val kotlinCoroutinesVersion = "1.10.2" val springDocVersion = "2.8.12" @@ -127,7 +127,6 @@ allprojects { } repositories { - mavenLocal() maven { name = "GitHubPackages" url = uri("https://maven.pkg.github.com/Cosmo-Tech/cosmotech-api-common") From 288f2672dfed28acbc87549ab96ce76e71b9456b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Reynard?= Date: Mon, 8 Sep 2025 14:58:12 +0200 Subject: [PATCH 4/4] Downgrade `springBootVersion` to `3.5.3` for compatibility reasons - upgrade `redisOmSpringVersion` to `1.0.0` - Add version constraint for `lettucemod` in test dependencies. --- build.gradle.kts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index cc23f4581..c4bb24fb8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -30,7 +30,7 @@ plugins { kotlin("plugin.spring") version kotlinVersion apply false id("pl.allegro.tech.build.axion-release") version "1.20.1" id("com.diffplug.spotless") version "7.2.1" - id("org.springframework.boot") version "3.5.5" apply false + id("org.springframework.boot") version "3.5.3" apply false id("project-report") id("org.owasp.dependencycheck") version "12.1.3" id("com.github.jk1.dependency-license-report") version "2.9" @@ -50,7 +50,7 @@ version = scmVersion.version // Dependencies version val kotlinJvmTarget = 21 val cosmotechApiCommonVersion = "2.1.1-SNAPSHOT" -val redisOmSpringVersion = "0.9.10" +val redisOmSpringVersion = "1.0.0" val kotlinCoroutinesVersion = "1.10.2" val springDocVersion = "2.8.12" val swaggerParserVersion = "2.1.33" @@ -313,7 +313,9 @@ subprojects { testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinCoroutinesVersion") testImplementation("org.testng:testng:$testNgVersion") testImplementation( - "com.redis.testcontainers:testcontainers-redis-junit:$testContainersRedisVersion") + "com.redis.testcontainers:testcontainers-redis-junit:$testContainersRedisVersion") { + constraints { implementation("com.redis:lettucemod:4.4.0") } + } testImplementation("org.testcontainers:postgresql:$testContainersPostgreSQLVersion") testImplementation("org.testcontainers:localstack:$testContainersLocalStackVersion") testImplementation("org.springframework.boot:spring-boot-starter-test")