diff --git a/.github/workflows/check-junit-test.yml b/.github/workflows/check-junit-test.yml index f953642c9eb..4331f156cf5 100644 --- a/.github/workflows/check-junit-test.yml +++ b/.github/workflows/check-junit-test.yml @@ -51,6 +51,5 @@ jobs: uses: ./.github/workflows/test-analysis.yml with: test_profile: ${{ needs.get_profiles.outputs.profiles }} - report_context: development mvn_opts: ${{ inputs.mvn_opts }} secrets: inherit \ No newline at end of file diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml index a6d37f1e39c..50c396dd7cc 100644 --- a/.github/workflows/develop.yml +++ b/.github/workflows/develop.yml @@ -9,34 +9,26 @@ on: jobs: build: - uses: opencb/java-common-libs/.github/workflows/build-java-app-workflow.yml@release-4.8.x + uses: opencb/java-common-libs/.github/workflows/build-java-app-workflow.yml@develop with: maven_opts: -P storage-hadoop,hdp3.1,RClient,opencga-storage-hadoop-deps -Dopencga.war.name=opencga -Dcheckstyle.skip -pl '!:opencga-storage-hadoop-deps-emr6.1,!:opencga-storage-hadoop-deps-hdp2.6' - deploy-docker-ext-tools: - uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@release-4.8.x - needs: build - with: - cli: python3 ./build/cloud/docker/docker-build.py push --images ext-tools --tag ${{ needs.build.outputs.version }} - secrets: inherit - test: uses: ./.github/workflows/test-analysis.yml - needs: deploy-docker-ext-tools - secrets: inherit + needs: build with: test_profile: runShortTests,runMediumTests - report_context: development + secrets: inherit deploy-maven: - uses: opencb/java-common-libs/.github/workflows/deploy-maven-repository-workflow.yml@release-4.8.x + uses: opencb/java-common-libs/.github/workflows/deploy-maven-repository-workflow.yml@develop needs: test with: maven_opts: -P storage-hadoop,hdp3.1 -Dopencga.war.name=opencga secrets: inherit deploy-docker: - uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@release-4.8.x + uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@develop needs: test with: cli: python3 ./build/cloud/docker/docker-build.py push --images base,init diff --git a/.github/workflows/docker-aws-emr.yml b/.github/workflows/docker-aws-emr.yml index 98157167216..b44a777134d 100644 --- a/.github/workflows/docker-aws-emr.yml +++ b/.github/workflows/docker-aws-emr.yml @@ -8,15 +8,13 @@ on: jobs: build: - uses: opencb/java-common-libs/.github/workflows/build-java-app-workflow.yml@release-4.8.x + uses: opencb/java-common-libs/.github/workflows/build-java-app-workflow.yml@develop with: maven_opts: -P storage-hadoop,emr6.1 -Dopencga.war.name=opencga deploy-docker: - uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@release-4.8.x + uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@develop needs: build with: cli: python3 ./build/cloud/docker/docker-build.py push --images base,init secrets: inherit -# DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }} -# DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }} diff --git a/.github/workflows/docker-tools.yml b/.github/workflows/docker-ext-tools.yml similarity index 74% rename from .github/workflows/docker-tools.yml rename to .github/workflows/docker-ext-tools.yml index 32e938c5a2d..6ded6d96fbe 100644 --- a/.github/workflows/docker-tools.yml +++ b/.github/workflows/docker-ext-tools.yml @@ -1,4 +1,4 @@ -name: Deploy Docker Tools +name: Deploy Docker Ext-Tools on: push: @@ -8,17 +8,14 @@ on: - TASK-* paths: - opencga-app/app/cloud/docker/opencga-ext-tools/Dockerfile - workflow_dispatch: jobs: build: - uses: opencb/java-common-libs/.github/workflows/build-java-app-workflow.yml@release-4.8.x - with: - maven_opts: + uses: opencb/java-common-libs/.github/workflows/build-java-app-workflow.yml@develop deploy-docker-ext-tools: - uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@release-4.8.x + uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@develop needs: build with: cli: python3 ./build/cloud/docker/docker-build.py push --images ext-tools --tag ${{ needs.build.outputs.version }} - secrets: inherit + secrets: inherit \ No newline at end of file diff --git a/.github/workflows/long-test-analysis.yml b/.github/workflows/long-test-analysis.yml index f516eb25029..c898c4dfa0b 100644 --- a/.github/workflows/long-test-analysis.yml +++ b/.github/workflows/long-test-analysis.yml @@ -1,15 +1,17 @@ name: Long test for run only on weekend -#Every Saturday at 01:10 + +## Every Saturday at 01:10 on: schedule: - cron: '10 1 * * 6' + workflow_dispatch: jobs: test: uses: ./.github/workflows/test-analysis.yml secrets: inherit with: - test_profile: runLongTests,runMediumTests,runShortTests - report_context: development + test_profile: runShortTests,runMediumTests,runLongTests, + diff --git a/.github/workflows/manual-deploy-docker.yml b/.github/workflows/manual-deploy-docker.yml new file mode 100644 index 00000000000..3c9660bbb2c --- /dev/null +++ b/.github/workflows/manual-deploy-docker.yml @@ -0,0 +1,50 @@ +name: Manual deploy Docker base +on: + workflow_dispatch: + inputs: + branch: + description: "The branch, tag or SHA of the source code to build docker." + type: string + required: true + tag: + description: "The tag for the new docker." + type: string + required: true + +jobs: + build: + name: Build Java app + runs-on: ubuntu-22.04 + outputs: + version: ${{ steps.get_project_version.outputs.version }} + steps: + - uses: actions/checkout@v3 + with: + fetch-depth: '10' + ref: "${{ inputs.branch }}" + - name: Set up JDK 8 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '8' + cache: 'maven' + - name: Install dependencies branches + run: | + if [ -f "./.github/workflows/scripts/get_same_branch.sh" ]; then + chmod +x ./.github/workflows/scripts/get_same_branch.sh + ./.github/workflows/scripts/get_same_branch.sh ${{ github.ref_name }} + fi + - name: Maven Build (skip tests) + run: mvn -T 2 clean install -DskipTests + - uses: actions/upload-artifact@v3 + with: + name: build-folder + path: build + + + deploy-docker: + uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@develop + needs: build + with: + cli: python3 ./build/cloud/docker/docker-build.py push --images base,init --tag ${{ inputs.tag }} + secrets: inherit \ No newline at end of file diff --git a/.github/workflows/manual-deploy-ext-tools.yml b/.github/workflows/manual-deploy-ext-tools.yml index a683d4320af..5a10146128a 100644 --- a/.github/workflows/manual-deploy-ext-tools.yml +++ b/.github/workflows/manual-deploy-ext-tools.yml @@ -48,3 +48,4 @@ jobs: with: cli: python3 ./build/cloud/docker/docker-build.py push --images ext-tools --tag ${{ inputs.tag }} secrets: inherit + diff --git a/.github/workflows/pull-request-merge.yml b/.github/workflows/pull-request-merge.yml index 31b98d5afc1..faedd27bebc 100644 --- a/.github/workflows/pull-request-merge.yml +++ b/.github/workflows/pull-request-merge.yml @@ -7,12 +7,18 @@ on: - "release-*" types: - closed + workflow_dispatch: jobs: - docker-delete: - name: Delete TASK Docker image - runs-on: ubuntu-22.04 - steps: - - name: "Checkout opencga" - uses: actions/checkout@v3 - - run: python3 ./opencga-app/app/cloud/docker/docker-build.py delete --images base --tag ${{ github.ref_name }} --username ${{ secrets.DOCKER_HUB_USER }} --password ${{ secrets.DOCKER_HUB_PASSWORD }} + build: + uses: opencb/java-common-libs/.github/workflows/build-java-app-workflow.yml@develop + with: + maven_opts: -P storage-hadoop,hdp3.1,RClient,opencga-storage-hadoop-deps -Dopencga.war.name=opencga -Dcheckstyle.skip -pl '!:opencga-storage-hadoop-deps-emr6.1,!:opencga-storage-hadoop-deps-hdp2.6' + + delete-docker: + uses: opencb/java-common-libs/.github/workflows/delete-docker-hub-workflow.yml@develop + needs: build + with: + cli: python3 ./build/cloud/docker/docker-build.py delete --images base --tag ${{ github.head_ref }} + secrets: inherit + diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9c69bdad248..b7fccc7fa3f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,54 +8,38 @@ on: jobs: build: - uses: opencb/java-common-libs/.github/workflows/build-java-app-workflow.yml@release-4.8.x + uses: opencb/java-common-libs/.github/workflows/build-java-app-workflow.yml@develop with: maven_opts: -P storage-hadoop,hdp3.1,RClient,opencga-storage-hadoop-deps -Dopencga.war.name=opencga -Dcheckstyle.skip -pl '!:opencga-storage-hadoop-deps-emr6.1,!:opencga-storage-hadoop-deps-hdp2.6' - deploy-docker-ext-tools: - uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@release-4.8.x - needs: build - with: - cli: python3 ./build/cloud/docker/docker-build.py push --images ext-tools --tag ${{ needs.build.outputs.version }} - secrets: inherit - - test: - uses: ./.github/workflows/test-analysis.yml - needs: deploy-docker-ext-tools - secrets: inherit - with: - test_profile: runShortTests,runMediumTests - report_context: xetabase - deploy-maven: - uses: opencb/java-common-libs/.github/workflows/deploy-maven-repository-workflow.yml@release-4.8.x - needs: test + uses: opencb/java-common-libs/.github/workflows/deploy-maven-repository-workflow.yml@develop + needs: build with: maven_opts: -P storage-hadoop,hdp3.1 -Dopencga.war.name=opencga secrets: inherit deploy-docker: - uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@release-4.8.x - needs: test + uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@develop + needs: build with: cli: python3 ./build/cloud/docker/docker-build.py push --images base,init secrets: inherit - - deploy-python: - uses: opencb/java-common-libs/.github/workflows/deploy-python-workflow.yml@release-4.8.x - needs: test + uses: opencb/java-common-libs/.github/workflows/deploy-python-workflow.yml@develop + needs: build with: cli: ./clients/python/python-build.sh push artifact: build-folder secrets: inherit release: - uses: opencb/java-common-libs/.github/workflows/release-github-workflow.yml@release-4.8.x - needs: [ build,test ] + uses: opencb/java-common-libs/.github/workflows/release-github-workflow.yml@develop + needs: [ build, deploy-maven, deploy-docker, deploy-python ] with: artifact: build-folder file: | opencga-client-${{ needs.build.outputs.version }}.tar.gz clients/R/opencgaR_${{ needs.build.outputs.version }}.tar.gz + diff --git a/.github/workflows/scripts/get_same_branch.sh b/.github/workflows/scripts/get_same_branch.sh new file mode 100644 index 00000000000..f217d21e70c --- /dev/null +++ b/.github/workflows/scripts/get_same_branch.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +BRANCH_NAME=$1 + +if [[ -z $BRANCH_NAME ]]; then + echo "The first parameter is mandatory and must be a valid branch name." + exit 1 +fi + +if [[ $BRANCH_NAME != "TASK-"* ]]; then + echo "No need to check dependencies." + exit 0 +fi + +function install(){ + local REPO=$1 + cd /home/runner/work/ || exit 2 + git clone https://github.com/opencb/"$REPO".git -b "$BRANCH_NAME" + if [ -d "./$REPO" ]; then + cd "$REPO" || exit 2 + echo "Branch name $BRANCH_NAME already exists." + mvn clean install -DskipTests + else + echo "$CURRENT Branch is NOT EQUALS $BRANCH_NAME " + fi +} + +install "java-common-libs" +install "biodata" +install "cellbase" diff --git a/.github/workflows/task.yml b/.github/workflows/task.yml index 1b522b40511..51888a9179d 100644 --- a/.github/workflows/task.yml +++ b/.github/workflows/task.yml @@ -6,9 +6,11 @@ on: - TASK-* workflow_dispatch: +# WARNING Develop branch needed for prod + jobs: build: - uses: opencb/java-common-libs/.github/workflows/build-java-app-workflow.yml@release-4.8.x + uses: opencb/java-common-libs/.github/workflows/build-java-app-workflow.yml@develop with: maven_opts: -P storage-hadoop,hdp3.1,RClient,opencga-storage-hadoop-deps -Dopencga.war.name=opencga -Dcheckstyle.skip -pl '!:opencga-storage-hadoop-deps-emr6.1,!:opencga-storage-hadoop-deps-hdp2.6' @@ -18,37 +20,10 @@ jobs: secrets: inherit with: test_profile: runShortTests - report_context: development - - deploy-maven: - name: Deploy in maven only for renamed versions - uses: opencb/java-common-libs/.github/workflows/deploy-maven-repository-workflow.yml@release-4.8.x - needs: [ build, test ] - if: contains( needs.build.outputs.version ,'TASK') - secrets: inherit deploy-docker: - uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@release-4.8.x + uses: opencb/java-common-libs/.github/workflows/deploy-docker-hub-workflow.yml@develop needs: test with: cli: python3 ./build/cloud/docker/docker-build.py push --images base,init --tag ${{ github.ref_name }} secrets: inherit - - # The following jobs are to see that the previous 'if' doesn't fail and that the maven deploy is executed because it is true - snapshot-version: - name: Check SNAPSHOT version - needs: [ build, test ] - if: contains(needs.build.outputs.version ,'SNAPSHOT') - runs-on: ubuntu-22.04 - steps: - - name: test-version-from-check - run: echo "Project version is " ${{ needs.build.outputs.version }} - - task-version: - name: Check TASK version - needs: [ build, test ] - if: contains(needs.build.outputs.version ,'TASK') - runs-on: ubuntu-22.04 - steps: - - name: test-version-from-check - run: echo "Project version is " ${{ needs.build.outputs.version }} diff --git a/.github/workflows/test-analysis.yml b/.github/workflows/test-analysis.yml index 5e9a7e952a1..b2b5105877b 100644 --- a/.github/workflows/test-analysis.yml +++ b/.github/workflows/test-analysis.yml @@ -1,30 +1,20 @@ name: Build and test the project + on: workflow_call: inputs: test_profile: type: string required: true - report_context: - type: string - required: true mvn_opts: type: string + required: false default: "" secrets: SONAR_TOKEN: required: true - SSH_TESTING_SERVER_HOST: - required: true - SSH_TESTING_SERVER_PORT: - required: true - SSH_TESTING_SERVER_USER: - required: true - SSH_TESTING_SERVER_PASSWORD: - required: true -env: - xb_version: "1.6.4" + jobs: analysis: name: Execute Sonar Analysis @@ -39,11 +29,20 @@ jobs: distribution: 'temurin' java-version: '11' cache: 'maven' + - name: Install dependencies branches + run: | + if [ -f "./.github/workflows/scripts/get_same_branch.sh" ]; then + chmod +x ./.github/workflows/scripts/get_same_branch.sh + ./.github/workflows/scripts/get_same_branch.sh ${{ github.ref_name }} + else + echo "./.github/workflows/scripts/get_same_branch.sh does not exist." + fi - name: Test and Analyze env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: mvn -T 2 clean install -P storage-hadoop,hdp3.1,${{ inputs.test_profile }} -DskipTests -Dcheckstyle.skip org.sonarsource.scanner.maven:sonar-maven-plugin:sonar -Dsonar.projectKey=opencb_opencga + test: name: Execute JUnit and Jacoco tests runs-on: ubuntu-22.04 @@ -57,6 +56,14 @@ jobs: distribution: 'temurin' java-version: '8' cache: 'maven' + - name: Install dependencies branches + run: | + if [ -f "./.github/workflows/scripts/get_same_branch.sh" ]; then + chmod +x ./.github/workflows/scripts/get_same_branch.sh + ./.github/workflows/scripts/get_same_branch.sh ${{ github.ref_name }} + else + echo "./.github/workflows/scripts/get_same_branch.sh does not exist." + fi - name: Install Samtools run: sudo apt-get install samtools python3-deeptools - name: Start MongoDB v6.0 @@ -65,31 +72,18 @@ jobs: mongodb-version: 6.0 mongodb-replica-set: rs-test - name: Run Junit tests - run: mvn -B verify surefire-report:report -P storage-hadoop,hdp3.1,${{ inputs.test_profile }} -Dcheckstyle.skip -Popencga-storage-hadoop-deps -pl '!:opencga-storage-hadoop-deps-emr6.1,!:opencga-storage-hadoop-deps-hdp2.6' ${{ inputs.mvn_opts }} - - name: Upload result dir - uses: actions/upload-artifact@v3 - with: - name: workdir - path: "**/target/site" - publish-test: - name: Publish test results - runs-on: ubuntu-22.04 - needs: test - strategy: - matrix: - module: ["opencga-app", "opencga-catalog", "opencga-client", "opencga-clinical", "opencga-core", "opencga-master", "opencga-server", "opencga-storage", "opencga-storage/opencga-storage-app", "opencga-storage/opencga-storage-benchmark", "opencga-storage/opencga-storage-core", "opencga-storage/opencga-storage-hadoop", "opencga-storage/opencga-storage-server", "opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core", "opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-deps"] - steps: - - name: Download result dir - uses: actions/download-artifact@v3 - with: - name: workdir - - name: Deploy unit tests web recursively to remote - uses: garygrossgarten/github-action-scp@release + run: mvn -B verify surefire-report:report --fail-never -P storage-hadoop,hdp3.1,${{ inputs.test_profile }} -Dcheckstyle.skip -Popencga-storage-hadoop-deps -pl '!:opencga-storage-hadoop-deps-emr6.1,!:opencga-storage-hadoop-deps-hdp2.6' ${{ inputs.mvn_opts }} + - name: Publish Test Report + uses: scacap/action-surefire-report@v1 + env: + NODE_OPTIONS: '--max_old_space_size=4096' + ## Skip cancelled() + ## https://docs.github.com/en/actions/learn-github-actions/expressions#cancelled + if: success() || failure() with: - local: ${{ matrix.module }}/target/site - remote: /var/www/html/reports/${{ inputs.report_context }}/${{ env.xb_version }}/${{ github.ref_name }}/opencga/${{ github.sha }}/unit/${{ matrix.module }} - host: ${{ secrets.SSH_TESTING_SERVER_HOST}} - port: ${{ secrets.SSH_TESTING_SERVER_PORT}} - username: ${{ secrets.SSH_TESTING_SERVER_USER }} - password: ${{ secrets.SSH_TESTING_SERVER_PASSWORD }} - concurrency: 2 + check_name: "Surefire tests report" + report_paths: './**/surefire-reports/TEST-*.xml' + commit: '${{ github.sha }}' + fail_on_test_failures: true + + diff --git a/misc/sync_dependency.sh b/misc/sync_dependency.sh deleted file mode 100755 index 316bbc39d3b..00000000000 --- a/misc/sync_dependency.sh +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/bash - -function yellow (){ - echo "$(tput setaf 3)$1$(tput setaf 7)" -} -function green (){ - echo "$(tput setaf 2)$1$(tput setaf 7)" -} -function cyan (){ - echo "$(tput setaf 6)$1$(tput setaf 7)" -} - -function printUsage(){ - echo "" - yellow "Release an OpenCB project." - echo "" - echo "Usage: $(basename $0) --biodata|-b|--java-common-libs|-j" - echo "" - cyan "Options:" - green " -j --java-common-libs STRING Update java-common-libs dependency" - green " -b --biodata STRING Update biodata dependency" - echo "" -} - -## Check if the repo status is clean. -function check_repo_clean() { - GIT_STATUS=$(git status --short) - if [ -n "$GIT_STATUS" ]; then - yellow "Repository is not clean:" - yellow "$GIT_STATUS" - exit - fi -} - -## This function removes TASK-XXX- if exists, otherwise it adds it. -function toggle_version() { - local BRANCH=$1 - if [[ "$POM_DEPENDENCY_VERSION" == *"$BRANCH"* ]]; then - ## Remove TASK-XXX- from the current version - ## Example: remove 'TASK-1234-' from 2.6.0-TASK-1234-SNAPSHOT - NEW_VERSION=${POM_DEPENDENCY_VERSION/"$BRANCH-"} - else - ## Add 'TASK-XXX-' to the current version - ## Example: 2.6.0-SNAPSHOT --> 2.6.0-TASK-1234-SNAPSHOT - CLEAN_RELEASE_VERSION=$(echo "$POM_DEPENDENCY_VERSION" | cut -d "-" -f 1) - TAG_VERSION=$(echo "$POM_DEPENDENCY_VERSION" | cut -d "-" -f 2) - NEW_VERSION="$CLEAN_RELEASE_VERSION-$BRANCH-$TAG_VERSION" - fi -} - -## Change version in the dependency. -## Usage: update_dependency "$DEPENDENCY_REPO" "$NEW_VERSION" "$BRANCH_NAME" -function update_dependency() { - ## Save current directory - local pwd=$PWD - cd "$1" || exit 2 - check_repo_clean - git checkout "$3" - ## Check branch exists - local BRANCH=$(git branch --show-current) - if [ "$BRANCH" != "$3" ]; then - yellow "Branch '$3' does not exist" - exit - fi - ## Rename and commit new version - mvn versions:set -DnewVersion="$2" -DgenerateBackupPoms=false - git commit -am "Update version to $2" - ## Restore directory - cd "$pwd" || exit 2 -} - -## At least one parameter is required. -if [ -z "$1" ]; then - printUsage - exit 1 -fi - -while [[ $# -gt 0 ]]; do - key="$1" - if [ -n "$2" ]; then - DEPENDENCY_REPO="$2" - fi - case $key in - -h | --help) - printUsage - exit 0 - ;; - -j | --java-common-libs) - LIB="JAVA_COMMONS_LIB" - if [ -z "$DEPENDENCY_REPO" ]; then - DEPENDENCY_REPO="../java-common-libs" - else - shift - fi - shift # past argument - ;; - -b | --biodata) - LIB="BIODATA" - if [ -z "$DEPENDENCY_REPO" ]; then - DEPENDENCY_REPO="../biodata" - else - shift - fi - shift # past argument - ;; - *) # unknown option - echo "Unknown option $key" - printUsage - exit 1 - ;; - esac -done - -SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -CURRENT_DIR=$PWD -cd "$SCRIPT_DIR" || exit 2 -cd .. -BRANCH_NAME=$(git branch --show-current) -if [[ "$BRANCH_NAME" == "TASK-"* ]]; then - check_repo_clean "$BRANCH_NAME" -else - yellow "[$BRANCH_NAME] The branch name must start with TASK-" - yellow "$GIT_STATUS" - exit -fi - -function update_library(){ - local LIBRARY="$1" - POM_DEPENDENCY_VERSION=$(grep -m 1 "$LIBRARY" pom.xml | cut -d ">" -f 2 | cut -d "<" -f 1) - toggle_version "$BRANCH_NAME" - update_dependency "$DEPENDENCY_REPO" "$NEW_VERSION" "$BRANCH_NAME" - mvn versions:set-property -Dproperty=java-common-libs.version -DnewVersion="$NEW_VERSION" -DgenerateBackupPoms=false - git commit -am "Update '$LIBRARY' dependency to $NEW_VERSION" -} - - -if [ "$LIB" = "JAVA_COMMONS_LIB" ];then - update_library java-common-libs.version -fi -if [ "$LIB" = "BIODATA" ];then - update_library biodata.version -fi - -yellow "The new dependency version is $NEW_VERSION" -cd "$CURRENT_DIR" || exit 2 diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/alignment/AlignmentStorageManager.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/alignment/AlignmentStorageManager.java index 38953f5ff7f..fd8a0cebad5 100644 --- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/alignment/AlignmentStorageManager.java +++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/alignment/AlignmentStorageManager.java @@ -230,7 +230,7 @@ public OpenCGAResult coverageStats(String studyIdStr, String String species = projectQueryResult.first().getOrganism().getScientificName(); String assembly = projectQueryResult.first().getOrganism().getAssembly(); String dataRelease = projectQueryResult.first().getCellbase().getDataRelease(); - String cellbaseToken = projectQueryResult.first().getCellbase().getToken(); + String cellbaseToken = projectQueryResult.first().getCellbase().getApiKey(); for (String geneName : geneNames) { @@ -451,7 +451,7 @@ public List mergeRegions(List regions, List genes, boole String species = projectQueryResult.first().getOrganism().getScientificName(); String assembly = projectQueryResult.first().getOrganism().getAssembly(); String dataRelease = projectQueryResult.first().getCellbase().getDataRelease(); - String cellbaseToken = projectQueryResult.first().getCellbase().getToken(); + String cellbaseToken = projectQueryResult.first().getCellbase().getApiKey(); CellBaseClient cellBaseClient = new CellBaseClient(species, assembly, dataRelease, cellbaseToken, projectQueryResult.first().getCellbase().toClientConfiguration()); GeneClient geneClient = cellBaseClient.getGeneClient(); diff --git a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/VariantStorageManager.java b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/VariantStorageManager.java index a6ee4d6aa4e..bf0db6f34eb 100644 --- a/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/VariantStorageManager.java +++ b/opencga-analysis/src/main/java/org/opencb/opencga/analysis/variant/manager/VariantStorageManager.java @@ -1028,8 +1028,9 @@ private void setCellbaseConfiguration(VariantStorageEngine engine, String projec engine.getOptions().put(VariantStorageOptions.ASSEMBLY.key(), organism.getAssembly()); } if (cellbase != null) { - if (StringUtils.isEmpty(cellbase.getToken()) || storageConfiguration.getCellbase() != null) { - cellbase.setToken(storageConfiguration.getCellbase().getToken()); + // To ensure that we use the project API key before using the storage API key + if (StringUtils.isEmpty(cellbase.getApiKey()) && storageConfiguration.getCellbase() != null) { + cellbase.setApiKey(storageConfiguration.getCellbase().getApiKey()); } engine.getConfiguration().setCellbase(cellbase); engine.reloadCellbaseConfiguration(); diff --git a/opencga-app/app/cloud/docker/opencga-base/Dockerfile b/opencga-app/app/cloud/docker/opencga-base/Dockerfile index 3d2c1e4db7c..d3eee2266d2 100644 --- a/opencga-app/app/cloud/docker/opencga-base/Dockerfile +++ b/opencga-app/app/cloud/docker/opencga-base/Dockerfile @@ -1,5 +1,6 @@ -## Based on Debian 11 (bullseye) -FROM openjdk:8-jre +## Based on Ubuntu 22.04 (jammy) +## We are now using OpenJDK 8u372 to support "cgroup v2", see https://developers.redhat.com/articles/2023/04/19/openjdk-8u372-feature-cgroup-v2-support# +FROM eclipse-temurin:8u372-b07-jre-jammy ARG BUILD_PATH="." @@ -7,14 +8,20 @@ ENV OPENCGA_HOME=/opt/opencga ENV OPENCGA_CONFIG_DIR=${OPENCGA_HOME}/conf RUN apt-get update && apt-get -y upgrade && apt-get install -y lsb-release sshpass ca-certificates curl gnupg jq ncurses-bin && \ - # Install Docker repository - curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg && \ - echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \ - $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \ - # Install MongoDB repository - wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | apt-key add - && \ - echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main" | tee /etc/apt/sources.list.d/mongodb-org-4.2.list && \ - apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io mongodb-org-shell && \ + ## Install Docker repository + install -m 0755 -d /etc/apt/keyrings && \ + curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \ + chmod a+r /etc/apt/keyrings/docker.gpg && \ + echo "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu "$(. /etc/os-release && echo "jammy")" stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null && \ + ## Install MongoDB 6.0 repository + curl -fsSL https://pgp.mongodb.com/server-6.0.asc | gpg --dearmor -o /usr/share/keyrings/mongodb-server-6.0.gpg && \ + echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list && \ + ## Install docker and mongodb packages + apt-get update && apt-get install -y docker-ce docker-ce-cli containerd.io mongodb-mongosh && \ + ## Install yq + wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 && \ + chmod +x /usr/local/bin/yq && \ + ## Clean downloaded packages to make images smaller rm -rf /var/lib/apt/lists/* && \ adduser --disabled-password --uid 1001 opencga diff --git a/opencga-app/app/cloud/docker/opencga-ext-tools/Dockerfile b/opencga-app/app/cloud/docker/opencga-ext-tools/Dockerfile index ae19794e7fb..ff1298c64d0 100644 --- a/opencga-app/app/cloud/docker/opencga-ext-tools/Dockerfile +++ b/opencga-app/app/cloud/docker/opencga-ext-tools/Dockerfile @@ -34,4 +34,4 @@ RUN git fetch origin --tags && \ rm -rf /var/lib/apt/lists/* /tmp/* /opt/opencga/signature.tools.lib/.git && \ strip --remove-section=.note.ABI-tag /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 -WORKDIR /opt/opencga \ No newline at end of file +WORKDIR /opt/opencga diff --git a/opencga-app/app/cloud/docker/opencga-init/Dockerfile b/opencga-app/app/cloud/docker/opencga-init/Dockerfile index f7efd322ac9..60b60f278b7 100644 --- a/opencga-app/app/cloud/docker/opencga-init/Dockerfile +++ b/opencga-app/app/cloud/docker/opencga-init/Dockerfile @@ -8,25 +8,22 @@ ARG INIT_PATH=cloud/docker/opencga-init/ COPY ${INIT_PATH} /opt/opencga/init/ COPY ${BUILD_PATH}/conf/* /opt/opencga/init/test/ - -# Mount volume to copy config into +## Mount volume to copy config into VOLUME /opt/volume USER root -# Install local dependencies -RUN apt install python3 && \ - echo "deb http://ftp.de.debian.org/debian bullseye main" | tee -a /etc/apt/sources.list.d/sources.list && \ - apt-get update && apt-get -y upgrade && \ - apt install -y python3-pip && \ + +## Install local dependencies +RUN apt-get update && apt-get -y upgrade && apt-get install -y python3 python3-pip && \ pip3 install --upgrade pip setuptools && \ pip3 install -r /opt/opencga/init/requirements.txt && \ chmod +x /opt/opencga/init/setup.sh /opt/opencga/init/setup-hadoop.sh && \ echo ">Running init container configuration tests" && \ cd /opt/opencga/init/test && python3 test_override_yaml.py -v && rm -r /opt/opencga/init/test - +## Run Docker images as non root USER opencga -# It is the responsibility of the setup.sh -# script to initialise the volume correctly -# and apply any runtime config transforms. -ENTRYPOINT [ "/bin/sh","/opt/opencga/init/setup.sh" ] + +## It is the responsibility of the setup.sh script to initialise the volume correctly +## and apply any runtime config transforms. +ENTRYPOINT [ "/bin/sh", "/opt/opencga/init/setup.sh" ] diff --git a/opencga-app/app/misc/clients/rest_client_generator.py b/opencga-app/app/misc/clients/rest_client_generator.py index 8239fa55709..bfb3b78489f 100644 --- a/opencga-app/app/misc/clients/rest_client_generator.py +++ b/opencga-app/app/misc/clients/rest_client_generator.py @@ -198,6 +198,9 @@ def get_method_name(self, endpoint, category): # /{apiVersion}/analysis/clinical/{clinicalAnalysis}/interpretation/{interpretationId}/merge elif self.all_arg([items[0], items[2]]) and not self.any_arg([items[1], items[3]]): method_name = '_'.join([items[3], items[1]]) + # /{apiVersion}/admin/users/{user}/groups/update + elif self.all_arg([items[1]]) and not self.any_arg([items[0], items[2], items[3]]): + method_name = '_'.join([items[0], items[3], items[2]]) elif len(items) == 5: # e.g. /{apiVersion}/files/{file}/annotationSets/{annotationSet}/annotations/update if self.all_arg([items[0], items[2]]) and not self.any_arg([items[1], items[3], items[4]]): diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpenCgaCompleter.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpenCgaCompleter.java index 81bc80aeb2f..7639ed66faf 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpenCgaCompleter.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpenCgaCompleter.java @@ -1,5 +1,5 @@ /* -* Copyright 2015-2023-10-04 OpenCB +* Copyright 2015-2023-10-20 OpenCB * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -70,7 +70,7 @@ public abstract class OpenCgaCompleter implements Completer { .map(Candidate::new) .collect(toList()); - private List adminList = asList( "audit-group-by","catalog-index-stats","catalog-install","catalog-jwt","users-create","users-import","users-search","users-sync") + private List adminList = asList( "audit-group-by","catalog-index-stats","catalog-install","catalog-jwt","users-create","users-import","users-search","users-sync","update-groups-users") .stream() .map(Candidate::new) .collect(toList()); diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpencgaCliOptionsParser.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpencgaCliOptionsParser.java index 646d8963b89..53be1d6dfbe 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpencgaCliOptionsParser.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpencgaCliOptionsParser.java @@ -1,5 +1,5 @@ /* -* Copyright 2015-2023-10-04 OpenCB +* Copyright 2015-2023-10-20 OpenCB * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -188,6 +188,7 @@ public OpencgaCliOptionsParser() { adminSubCommands.addCommand("users-import", adminCommandOptions.importUsersCommandOptions); adminSubCommands.addCommand("users-search", adminCommandOptions.searchUsersCommandOptions); adminSubCommands.addCommand("users-sync", adminCommandOptions.syncUsersCommandOptions); + adminSubCommands.addCommand("update-groups-users", adminCommandOptions.usersUpdateGroupsCommandOptions); individualsCommandOptions = new IndividualsCommandOptions(commonCommandOptions, jCommander); jCommander.addCommand("individuals", individualsCommandOptions); diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpencgaMain.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpencgaMain.java index 4fa055dde8c..296b1be2d75 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpencgaMain.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/OpencgaMain.java @@ -17,6 +17,7 @@ package org.opencb.opencga.app.cli.main; import org.apache.commons.lang3.ArrayUtils; +import org.opencb.commons.utils.PrintUtils; import org.opencb.opencga.app.cli.CliOptionsParser; import org.opencb.opencga.app.cli.GeneralCliOptions; import org.opencb.opencga.app.cli.main.processors.CommandProcessor; @@ -48,6 +49,7 @@ public static void main(String[] args) { parser.printUsage(); System.exit(0); } + PrintUtils.printSpace(); checkLogLevel(args); checkMode(args); logger.debug(Arrays.toString(args)); diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AdminCommandExecutor.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AdminCommandExecutor.java index 0f049086703..19efed930b2 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AdminCommandExecutor.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/AdminCommandExecutor.java @@ -11,6 +11,7 @@ import org.opencb.opencga.app.cli.main.executors.OpencgaCommandExecutor; import org.opencb.opencga.app.cli.main.options.AdminCommandOptions; import org.opencb.opencga.catalog.exceptions.CatalogAuthenticationException; +import org.opencb.opencga.catalog.utils.ParamUtils.AddRemoveAction; import org.opencb.opencga.client.exceptions.ClientException; import org.opencb.opencga.core.common.JacksonUtils; import org.opencb.opencga.core.models.admin.GroupSyncParams; @@ -18,6 +19,7 @@ import org.opencb.opencga.core.models.admin.JWTParams; import org.opencb.opencga.core.models.admin.UserCreateParams; import org.opencb.opencga.core.models.admin.UserImportParams; +import org.opencb.opencga.core.models.admin.UserUpdateGroup; import org.opencb.opencga.core.models.common.Enums.Resource; import org.opencb.opencga.core.models.sample.Sample; import org.opencb.opencga.core.models.study.Group; @@ -83,6 +85,9 @@ public void execute() throws Exception { case "users-sync": queryResponse = syncUsers(); break; + case "update-groups-users": + queryResponse = usersUpdateGroups(); + break; default: logger.error("Subcommand not valid"); break; @@ -284,4 +289,35 @@ private RestResponse syncUsers() throws Exception { } return openCGAClient.getAdminClient().syncUsers(groupSyncParams); } + + private RestResponse usersUpdateGroups() throws Exception { + logger.debug("Executing usersUpdateGroups in Admin command line"); + + AdminCommandOptions.UsersUpdateGroupsCommandOptions commandOptions = adminCommandOptions.usersUpdateGroupsCommandOptions; + + ObjectMap queryParams = new ObjectMap(); + queryParams.putIfNotNull("action", commandOptions.action); + + + UserUpdateGroup userUpdateGroup = null; + if (commandOptions.jsonDataModel) { + userUpdateGroup = new UserUpdateGroup(); + RestResponse res = new RestResponse<>(); + res.setType(QueryType.VOID); + PrintUtils.println(getObjectAsJSON(userUpdateGroup)); + return res; + } else if (commandOptions.jsonFile != null) { + userUpdateGroup = JacksonUtils.getDefaultObjectMapper() + .readValue(new java.io.File(commandOptions.jsonFile), UserUpdateGroup.class); + } else { + ObjectMap beanParams = new ObjectMap(); + putNestedIfNotNull(beanParams, "studyIds",commandOptions.studyIds, true); + putNestedIfNotNull(beanParams, "groupIds",commandOptions.groupIds, true); + + userUpdateGroup = JacksonUtils.getDefaultObjectMapper().copy() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true) + .readValue(beanParams.toJson(), UserUpdateGroup.class); + } + return openCGAClient.getAdminClient().usersUpdateGroups(commandOptions.user, userUpdateGroup, queryParams); + } } \ No newline at end of file diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/OperationsVariantStorageCommandExecutor.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/OperationsVariantStorageCommandExecutor.java index b9cd3f00190..494067498b1 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/OperationsVariantStorageCommandExecutor.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/OperationsVariantStorageCommandExecutor.java @@ -192,7 +192,7 @@ private RestResponse configureCellbase() throws Exception { putNestedIfNotEmpty(beanParams, "url",commandOptions.url, true); putNestedIfNotEmpty(beanParams, "version",commandOptions.version, true); putNestedIfNotEmpty(beanParams, "dataRelease",commandOptions.dataRelease, true); - putNestedIfNotEmpty(beanParams, "token",commandOptions.token, true); + putNestedIfNotEmpty(beanParams, "apiKey",commandOptions.apiKey, true); cellBaseConfiguration = JacksonUtils.getDefaultObjectMapper().copy() .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, true) diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/ProjectsCommandExecutor.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/ProjectsCommandExecutor.java index fe49490a5f6..e1757e59f09 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/ProjectsCommandExecutor.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/executors/ProjectsCommandExecutor.java @@ -119,7 +119,7 @@ private RestResponse create() throws Exception { putNestedIfNotEmpty(beanParams, "cellbase.url",commandOptions.cellbaseUrl, true); putNestedIfNotEmpty(beanParams, "cellbase.version",commandOptions.cellbaseVersion, true); putNestedIfNotEmpty(beanParams, "cellbase.dataRelease",commandOptions.cellbaseDataRelease, true); - putNestedIfNotEmpty(beanParams, "cellbase.token",commandOptions.cellbaseToken, true); + putNestedIfNotEmpty(beanParams, "cellbase.apiKey",commandOptions.cellbaseApiKey, true); putNestedIfNotNull(beanParams, "attributes",commandOptions.attributes, true); projectCreateParams = JacksonUtils.getDefaultObjectMapper().copy() diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AdminCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AdminCommandOptions.java index ae9c1397750..f246d8a36d8 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AdminCommandOptions.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AdminCommandOptions.java @@ -41,6 +41,7 @@ public class AdminCommandOptions { public ImportUsersCommandOptions importUsersCommandOptions; public SearchUsersCommandOptions searchUsersCommandOptions; public SyncUsersCommandOptions syncUsersCommandOptions; + public UsersUpdateGroupsCommandOptions usersUpdateGroupsCommandOptions; public AdminCommandOptions(CommonCommandOptions commonCommandOptions, JCommander jCommander) { @@ -55,6 +56,7 @@ public AdminCommandOptions(CommonCommandOptions commonCommandOptions, JCommander this.importUsersCommandOptions = new ImportUsersCommandOptions(); this.searchUsersCommandOptions = new SearchUsersCommandOptions(); this.syncUsersCommandOptions = new SyncUsersCommandOptions(); + this.usersUpdateGroupsCommandOptions = new UsersUpdateGroupsCommandOptions(); } @@ -278,4 +280,30 @@ public class SyncUsersCommandOptions { } + @Parameters(commandNames = {"update-groups-users"}, commandDescription ="Add or remove users from existing groups") + public class UsersUpdateGroupsCommandOptions { + + @ParametersDelegate + public CommonCommandOptions commonOptions = commonCommandOptions; + + @Parameter(names = {"--json-file"}, description = "File with the body data in JSON format. Note, that using this parameter will ignore all the other parameters.", required = false, arity = 1) + public String jsonFile; + + @Parameter(names = {"--json-data-model"}, description = "Show example of file structure for body data.", help = true, arity = 0) + public Boolean jsonDataModel = false; + + @Parameter(names = {"--user", "-u"}, description = "User ID", required = true, arity = 1) + public String user; + + @Parameter(names = {"--action"}, description = "Action to be performed: ADD or REMOVE user to/from groups", required = false, arity = 1) + public String action = "ADD"; + + @Parameter(names = {"--study-ids"}, description = "The body web service studyIds parameter", required = false, arity = 1) + public String studyIds; + + @Parameter(names = {"--group-ids"}, description = "The body web service groupIds parameter", required = false, arity = 1) + public String groupIds; + + } + } \ No newline at end of file diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisClinicalCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisClinicalCommandOptions.java index 48261ca8a3c..95636ad4c3f 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisClinicalCommandOptions.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/AnalysisClinicalCommandOptions.java @@ -275,7 +275,7 @@ public class DistinctCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list of Clinical Analysis IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list of Clinical Analysis UUIDs up to a maximum of 100", required = false, arity = 1) @@ -284,7 +284,7 @@ public class DistinctCommandOptions { @Parameter(names = {"--type"}, description = "Clinical Analysis type", required = false, arity = 1) public String type; - @Parameter(names = {"--disorder"}, description = "Clinical Analysis disorder", required = false, arity = 1) + @Parameter(names = {"--disorder"}, description = "Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String disorder; @Parameter(names = {"--files"}, description = "Clinical Analysis files", required = false, arity = 1) @@ -364,7 +364,7 @@ public class DistinctInterpretationCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list of Interpretation IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list of Interpretation UUIDs up to a maximum of 100", required = false, arity = 1) @@ -376,7 +376,7 @@ public class DistinctInterpretationCommandOptions { @Parameter(names = {"--analyst-id"}, description = "Analyst ID", required = false, arity = 1) public String analystId; - @Parameter(names = {"--method-name"}, description = "Interpretation method name", required = false, arity = 1) + @Parameter(names = {"--method-name"}, description = "Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String methodName; @Parameter(names = {"--panels"}, description = "Interpretation panels", required = false, arity = 1) @@ -432,7 +432,7 @@ public class SearchInterpretationCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list of Interpretation IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list of Interpretation UUIDs up to a maximum of 100", required = false, arity = 1) @@ -444,7 +444,7 @@ public class SearchInterpretationCommandOptions { @Parameter(names = {"--analyst-id"}, description = "Analyst ID", required = false, arity = 1) public String analystId; - @Parameter(names = {"--method-name"}, description = "Interpretation method name", required = false, arity = 1) + @Parameter(names = {"--method-name"}, description = "Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String methodName; @Parameter(names = {"--panels"}, description = "Interpretation panels", required = false, arity = 1) @@ -1488,7 +1488,7 @@ public class SearchCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list of Clinical Analysis IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list of Clinical Analysis UUIDs up to a maximum of 100", required = false, arity = 1) @@ -1497,7 +1497,7 @@ public class SearchCommandOptions { @Parameter(names = {"--type"}, description = "Clinical Analysis type", required = false, arity = 1) public String type; - @Parameter(names = {"--disorder"}, description = "Clinical Analysis disorder", required = false, arity = 1) + @Parameter(names = {"--disorder"}, description = "Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String disorder; @Parameter(names = {"--files"}, description = "Clinical Analysis files", required = false, arity = 1) diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/CohortsCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/CohortsCommandOptions.java index 13373914df4..03f08e58c9e 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/CohortsCommandOptions.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/CohortsCommandOptions.java @@ -242,10 +242,10 @@ public class DistinctCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list of cohort IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list of cohort IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; - @Parameter(names = {"--name", "-n"}, description = "Comma separated list of cohort names up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--name", "-n"}, description = "Comma separated list of cohort names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String name; @Parameter(names = {"--uuid"}, description = "Comma separated list of cohort IDs up to a maximum of 100", required = false, arity = 1) @@ -334,7 +334,7 @@ public class GenerateCommandOptions { @Parameter(names = {"--status"}, description = "Filter by status", required = false, arity = 1) public String status; - @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1) + @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String phenotypes; @Parameter(names = {"--annotation"}, description = "Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0", required = false, arity = 1) @@ -411,10 +411,10 @@ public class SearchCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list of cohort IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list of cohort IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; - @Parameter(names = {"--name", "-n"}, description = "Comma separated list of cohort names up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--name", "-n"}, description = "Comma separated list of cohort names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String name; @Parameter(names = {"--uuid"}, description = "Comma separated list of cohort IDs up to a maximum of 100", required = false, arity = 1) diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/DiseasePanelsCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/DiseasePanelsCommandOptions.java index c6e353a7dca..1f0f1cbb9bc 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/DiseasePanelsCommandOptions.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/DiseasePanelsCommandOptions.java @@ -157,37 +157,37 @@ public class DistinctCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list of panel IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list of panel IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list of panel UUIDs up to a maximum of 100", required = false, arity = 1) public String uuid; - @Parameter(names = {"--name", "-n"}, description = "Comma separated list of panel names up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--name", "-n"}, description = "Comma separated list of panel names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String name; @Parameter(names = {"--internal-status"}, description = "Filter by internal status", required = false, arity = 1) public String internalStatus; - @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names", required = false, arity = 1) + @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String disorders; - @Parameter(names = {"--variants"}, description = "Comma separated list of variant ids", required = false, arity = 1) + @Parameter(names = {"--variants"}, description = "Comma separated list of variant ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String variants; - @Parameter(names = {"--genes"}, description = "Comma separated list of gene ids", required = false, arity = 1) + @Parameter(names = {"--genes"}, description = "Comma separated list of gene ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String genes; @Parameter(names = {"--source"}, description = "Comma separated list of source ids or names.", required = false, arity = 1) public String source; - @Parameter(names = {"--regions"}, description = "Comma separated list of regions", required = false, arity = 1) + @Parameter(names = {"--regions"}, description = "Comma separated list of regions. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String regions; - @Parameter(names = {"--categories"}, description = "Comma separated list of category names", required = false, arity = 1) + @Parameter(names = {"--categories"}, description = "Comma separated list of category names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String categories; - @Parameter(names = {"--tags"}, description = "Panel tags", required = false, arity = 1) + @Parameter(names = {"--tags"}, description = "Panel tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String tags; @Parameter(names = {"--deleted"}, description = "Boolean to retrieve deleted entries", required = false, help = true, arity = 0) @@ -275,37 +275,37 @@ public class SearchCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list of panel IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list of panel IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list of panel UUIDs up to a maximum of 100", required = false, arity = 1) public String uuid; - @Parameter(names = {"--name", "-n"}, description = "Comma separated list of panel names up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--name", "-n"}, description = "Comma separated list of panel names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String name; @Parameter(names = {"--internal-status"}, description = "Filter by internal status", required = false, arity = 1) public String internalStatus; - @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names", required = false, arity = 1) + @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String disorders; - @Parameter(names = {"--variants"}, description = "Comma separated list of variant ids", required = false, arity = 1) + @Parameter(names = {"--variants"}, description = "Comma separated list of variant ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String variants; - @Parameter(names = {"--genes"}, description = "Comma separated list of gene ids", required = false, arity = 1) + @Parameter(names = {"--genes"}, description = "Comma separated list of gene ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String genes; @Parameter(names = {"--source"}, description = "Comma separated list of source ids or names.", required = false, arity = 1) public String source; - @Parameter(names = {"--regions"}, description = "Comma separated list of regions", required = false, arity = 1) + @Parameter(names = {"--regions"}, description = "Comma separated list of regions. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String regions; - @Parameter(names = {"--categories"}, description = "Comma separated list of category names", required = false, arity = 1) + @Parameter(names = {"--categories"}, description = "Comma separated list of category names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String categories; - @Parameter(names = {"--tags"}, description = "Panel tags", required = false, arity = 1) + @Parameter(names = {"--tags"}, description = "Panel tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String tags; @Parameter(names = {"--deleted"}, description = "Boolean to retrieve deleted entries", required = false, help = true, arity = 0) diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FamiliesCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FamiliesCommandOptions.java index 9530f60074d..3c57ef335ba 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FamiliesCommandOptions.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FamiliesCommandOptions.java @@ -252,10 +252,10 @@ public class DistinctCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list family IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list family IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; - @Parameter(names = {"--name", "-n"}, description = "Comma separated list family names up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--name", "-n"}, description = "Comma separated list family names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String name; @Parameter(names = {"--uuid"}, description = "Comma separated list family UUIDs up to a maximum of 100", required = false, arity = 1) @@ -270,10 +270,10 @@ public class DistinctCommandOptions { @Parameter(names = {"--samples"}, description = "Comma separated list of member's samples", required = false, arity = 1) public String samples; - @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1) + @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String phenotypes; - @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names", required = false, arity = 1) + @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String disorders; @Parameter(names = {"--creation-date", "--cd"}, description = "Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805", required = false, arity = 1) @@ -335,10 +335,10 @@ public class SearchCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list family IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list family IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; - @Parameter(names = {"--name", "-n"}, description = "Comma separated list family names up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--name", "-n"}, description = "Comma separated list family names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String name; @Parameter(names = {"--uuid"}, description = "Comma separated list family UUIDs up to a maximum of 100", required = false, arity = 1) @@ -353,10 +353,10 @@ public class SearchCommandOptions { @Parameter(names = {"--samples"}, description = "Comma separated list of member's samples", required = false, arity = 1) public String samples; - @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1) + @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String phenotypes; - @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names", required = false, arity = 1) + @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String disorders; @Parameter(names = {"--creation-date", "--cd"}, description = "Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805", required = false, arity = 1) diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FilesCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FilesCommandOptions.java index d1d4e0bf0a8..5ea18955f58 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FilesCommandOptions.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/FilesCommandOptions.java @@ -327,19 +327,19 @@ public class DistinctCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list of file IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list of file IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list file UUIDs up to a maximum of 100", required = false, arity = 1) public String uuid; - @Parameter(names = {"--name", "-n"}, description = "Comma separated list of file names", required = false, arity = 1) + @Parameter(names = {"--name", "-n"}, description = "Comma separated list of file names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String name; - @Parameter(names = {"--path"}, description = "Comma separated list of paths", required = false, arity = 1) + @Parameter(names = {"--path"}, description = "Comma separated list of paths. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String path; - @Parameter(names = {"--uri", "--input", "-i"}, description = "Comma separated list of uris", required = false, arity = 1) + @Parameter(names = {"--uri", "--input", "-i"}, description = "Comma separated list of uris. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String uri; @Parameter(names = {"--type"}, description = "File type, either FILE or DIRECTORY", required = false, arity = 1) @@ -378,7 +378,7 @@ public class DistinctCommandOptions { @Parameter(names = {"--description"}, description = "Description", required = false, arity = 1) public String description; - @Parameter(names = {"--tags"}, description = "Tags", required = false, arity = 1) + @Parameter(names = {"--tags"}, description = "Tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String tags; @Parameter(names = {"--size"}, description = "File size", required = false, arity = 1) @@ -609,19 +609,19 @@ public class SearchCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list of file IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list of file IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list file UUIDs up to a maximum of 100", required = false, arity = 1) public String uuid; - @Parameter(names = {"--name", "-n"}, description = "Comma separated list of file names", required = false, arity = 1) + @Parameter(names = {"--name", "-n"}, description = "Comma separated list of file names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String name; - @Parameter(names = {"--path"}, description = "Comma separated list of paths", required = false, arity = 1) + @Parameter(names = {"--path"}, description = "Comma separated list of paths. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String path; - @Parameter(names = {"--uri", "--input", "-i"}, description = "Comma separated list of uris", required = false, arity = 1) + @Parameter(names = {"--uri", "--input", "-i"}, description = "Comma separated list of uris. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String uri; @Parameter(names = {"--type"}, description = "File type, either FILE or DIRECTORY", required = false, arity = 1) @@ -660,7 +660,7 @@ public class SearchCommandOptions { @Parameter(names = {"--description"}, description = "Description", required = false, arity = 1) public String description; - @Parameter(names = {"--tags"}, description = "Tags", required = false, arity = 1) + @Parameter(names = {"--tags"}, description = "Tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String tags; @Parameter(names = {"--size"}, description = "File size", required = false, arity = 1) diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/IndividualsCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/IndividualsCommandOptions.java index a9e20c70232..d0238597f52 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/IndividualsCommandOptions.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/IndividualsCommandOptions.java @@ -350,13 +350,13 @@ public class DistinctCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list individual IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list individual IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list individual UUIDs up to a maximum of 100", required = false, arity = 1) public String uuid; - @Parameter(names = {"--name", "-n"}, description = "Comma separated list individual names up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--name", "-n"}, description = "Comma separated list individual names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String name; @Parameter(names = {"--family-ids"}, description = "Comma separated list of family ids the individuals may belong to.", required = false, arity = 1) @@ -374,22 +374,22 @@ public class DistinctCommandOptions { @Parameter(names = {"--sex"}, description = "Individual sex", required = false, arity = 1) public String sex; - @Parameter(names = {"--ethnicity"}, description = "Individual ethnicity", required = false, arity = 1) + @Parameter(names = {"--ethnicity"}, description = "Individual ethnicity. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String ethnicity; @Parameter(names = {"--date-of-birth"}, description = "Individual date of birth", required = false, arity = 1) public String dateOfBirth; - @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names", required = false, arity = 1) + @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String disorders; - @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1) + @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String phenotypes; - @Parameter(names = {"--population-name"}, description = "Population name", required = false, arity = 1) + @Parameter(names = {"--population-name"}, description = "Population name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String populationName; - @Parameter(names = {"--population-subpopulation"}, description = "Subpopulation name", required = false, arity = 1) + @Parameter(names = {"--population-subpopulation"}, description = "Subpopulation name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String populationSubpopulation; @Parameter(names = {"--karyotypic-sex"}, description = "Individual karyotypic sex", required = false, arity = 1) @@ -457,13 +457,13 @@ public class SearchCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list individual IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list individual IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list individual UUIDs up to a maximum of 100", required = false, arity = 1) public String uuid; - @Parameter(names = {"--name", "-n"}, description = "Comma separated list individual names up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--name", "-n"}, description = "Comma separated list individual names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String name; @Parameter(names = {"--father"}, description = "Father ID, name or UUID", required = false, arity = 1) @@ -484,19 +484,19 @@ public class SearchCommandOptions { @Parameter(names = {"--date-of-birth"}, description = "Individual date of birth", required = false, arity = 1) public String dateOfBirth; - @Parameter(names = {"--ethnicity"}, description = "Individual ethnicity", required = false, arity = 1) + @Parameter(names = {"--ethnicity"}, description = "Individual ethnicity. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String ethnicity; - @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names", required = false, arity = 1) + @Parameter(names = {"--disorders"}, description = "Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String disorders; - @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1) + @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String phenotypes; - @Parameter(names = {"--population-name"}, description = "Population name", required = false, arity = 1) + @Parameter(names = {"--population-name"}, description = "Population name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String populationName; - @Parameter(names = {"--population-subpopulation"}, description = "Subpopulation name", required = false, arity = 1) + @Parameter(names = {"--population-subpopulation"}, description = "Subpopulation name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String populationSubpopulation; @Parameter(names = {"--karyotypic-sex"}, description = "Individual karyotypic sex", required = false, arity = 1) diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/JobsCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/JobsCommandOptions.java index 44eac65bf28..04b6caae03c 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/JobsCommandOptions.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/JobsCommandOptions.java @@ -241,13 +241,13 @@ public class DistinctCommandOptions { @Parameter(names = {"--other-studies"}, description = "Flag indicating the entries being queried can belong to any related study, not just the primary one.", required = false, help = true, arity = 0) public boolean otherStudies = false; - @Parameter(names = {"--id"}, description = "Comma separated list of job IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list of job IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list of job UUIDs up to a maximum of 100", required = false, arity = 1) public String uuid; - @Parameter(names = {"--tool-id"}, description = "Tool ID executed by the job", required = false, arity = 1) + @Parameter(names = {"--tool-id"}, description = "Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String toolId; @Parameter(names = {"--tool-type"}, description = "Tool type executed by the job [OPERATION, ANALYSIS]", required = false, arity = 1) @@ -362,13 +362,13 @@ public class SearchCommandOptions { @Parameter(names = {"--other-studies"}, description = "Flag indicating the entries being queried can belong to any related study, not just the primary one.", required = false, help = true, arity = 0) public boolean otherStudies = false; - @Parameter(names = {"--id"}, description = "Comma separated list of job IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list of job IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list of job UUIDs up to a maximum of 100", required = false, arity = 1) public String uuid; - @Parameter(names = {"--tool-id"}, description = "Tool ID executed by the job", required = false, arity = 1) + @Parameter(names = {"--tool-id"}, description = "Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String toolId; @Parameter(names = {"--tool-type"}, description = "Tool type executed by the job [OPERATION, ANALYSIS]", required = false, arity = 1) diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/OperationsVariantStorageCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/OperationsVariantStorageCommandOptions.java index 5639d0dfed8..a9b95be294a 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/OperationsVariantStorageCommandOptions.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/OperationsVariantStorageCommandOptions.java @@ -128,8 +128,8 @@ public class ConfigureCellbaseCommandOptions { @Parameter(names = {"--data-release"}, description = "CellBase data release version to be used. If empty, will use the active one", required = false, arity = 1) public String dataRelease; - @Parameter(names = {"--token"}, description = "CellBase token to access to the licensed/restricted data sources such as COSMIC, HGMD,...", required = false, arity = 1) - public String token; + @Parameter(names = {"--api-key"}, description = "API key to access to the licensed/restricted data sources (COSMIC, HGMD,...) and to manage quota.", required = false, arity = 1) + public String apiKey; } diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/ProjectsCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/ProjectsCommandOptions.java index 1f7a3782e45..a2eca8cb958 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/ProjectsCommandOptions.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/ProjectsCommandOptions.java @@ -110,8 +110,8 @@ public class CreateCommandOptions { @Parameter(names = {"--cellbase-data-release"}, description = "CellBase data release version to be used. If empty, will use the active one", required = false, arity = 1) public String cellbaseDataRelease; - @Parameter(names = {"--cellbase-token"}, description = "CellBase token to access to the licensed/restricted data sources such as COSMIC, HGMD,...", required = false, arity = 1) - public String cellbaseToken; + @Parameter(names = {"--cellbase-api-key"}, description = "API key to access to the licensed/restricted data sources (COSMIC, HGMD,...) and to manage quota.", required = false, arity = 1) + public String cellbaseApiKey; @DynamicParameter(names = {"--attributes"}, description = "The body web service attributes parameter. Use: --attributes key=value", required = false) public java.util.Map attributes = new HashMap<>(); //Dynamic parameters must be initialized; diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/SamplesCommandOptions.java b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/SamplesCommandOptions.java index 0099fbf2a90..8cfc8fed346 100644 --- a/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/SamplesCommandOptions.java +++ b/opencga-app/src/main/java/org/opencb/opencga/app/cli/main/options/SamplesCommandOptions.java @@ -305,7 +305,7 @@ public class DistinctCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list sample IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list sample IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list sample UUIDs up to a maximum of 100", required = false, arity = 1) @@ -356,7 +356,7 @@ public class DistinctCommandOptions { @Parameter(names = {"--collection-method"}, description = "Collection method", required = false, arity = 1) public String collectionMethod; - @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1) + @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String phenotypes; @Parameter(names = {"--annotation"}, description = "Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0", required = false, arity = 1) @@ -468,7 +468,7 @@ public class SearchCommandOptions { @Parameter(names = {"--study", "-s"}, description = "Study [[user@]project:]study where study and project can be either the ID or UUID", required = false, arity = 1) public String study; - @Parameter(names = {"--id"}, description = "Comma separated list sample IDs up to a maximum of 100", required = false, arity = 1) + @Parameter(names = {"--id"}, description = "Comma separated list sample IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String id; @Parameter(names = {"--uuid"}, description = "Comma separated list sample UUIDs up to a maximum of 100", required = false, arity = 1) @@ -519,7 +519,7 @@ public class SearchCommandOptions { @Parameter(names = {"--collection-method"}, description = "Collection method", required = false, arity = 1) public String collectionMethod; - @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names", required = false, arity = 1) + @Parameter(names = {"--phenotypes"}, description = "Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.", required = false, arity = 1) public String phenotypes; @Parameter(names = {"--annotation"}, description = "Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0", required = false, arity = 1) diff --git a/opencga-app/src/main/java/org/opencb/opencga/app/migrations/v2_9_0/catalog/RenameCellBaseToken2ApiKey.java b/opencga-app/src/main/java/org/opencb/opencga/app/migrations/v2_9_0/catalog/RenameCellBaseToken2ApiKey.java new file mode 100644 index 00000000000..72fe8e6499e --- /dev/null +++ b/opencga-app/src/main/java/org/opencb/opencga/app/migrations/v2_9_0/catalog/RenameCellBaseToken2ApiKey.java @@ -0,0 +1,50 @@ +package org.opencb.opencga.app.migrations.v2_9_0.catalog; + +import com.mongodb.client.model.Projections; +import com.mongodb.client.model.UpdateOneModel; +import com.mongodb.client.model.Updates; +import org.bson.Document; +import org.opencb.opencga.catalog.db.mongodb.MongoDBAdaptorFactory; +import org.opencb.opencga.catalog.migration.Migration; +import org.opencb.opencga.catalog.migration.MigrationTool; + +import java.util.List; + +import static com.mongodb.client.model.Filters.eq; + +@Migration(id = "rename_cellbase_token_2_api_key" , + description = "Rename CellBase Token to ApiKey", + version = "2.9.0", + domain = Migration.MigrationDomain.CATALOG, + language = Migration.MigrationLanguage.JAVA, + date = 20230829 +) +public class RenameCellBaseToken2ApiKey extends MigrationTool { + + @Override + protected void run() throws Exception { + + migrateCollection(MongoDBAdaptorFactory.USER_COLLECTION, + new Document("projects.id", new Document("$exists", true)), + Projections.include("_id", "projects"), + (userDocument, bulk) -> { + List projects = userDocument.getList("projects", Document.class); + for (int i = 0; i < projects.size(); i++) { + Document project = projects.get(i); + Document cellbase = project.get("cellbase", Document.class); + if (cellbase != null) { + String token = cellbase.getString("token"); + if (token != null) { + bulk.add(new UpdateOneModel<>( + eq("_id", userDocument.get("_id")), + Updates.combine( + Updates.set("projects." + i + ".cellbase.apiKey", token), + Updates.unset("projects." + i + ".cellbase.token") + ))); + } + } + } + }); + } + +} diff --git a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/api/StudyDBAdaptor.java b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/api/StudyDBAdaptor.java index 65077320bb7..f74d1a843b7 100644 --- a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/api/StudyDBAdaptor.java +++ b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/api/StudyDBAdaptor.java @@ -25,6 +25,7 @@ import org.opencb.opencga.catalog.exceptions.CatalogAuthorizationException; import org.opencb.opencga.catalog.exceptions.CatalogDBException; import org.opencb.opencga.catalog.exceptions.CatalogParameterException; +import org.opencb.opencga.catalog.utils.ParamUtils; import org.opencb.opencga.core.models.common.Enums; import org.opencb.opencga.core.models.project.Project; import org.opencb.opencga.core.models.study.*; @@ -287,9 +288,28 @@ OpenCGAResult removeUsersFromAllGroups(long studyId, List users) * @param groupList List containing possible groups that are synced and where the user should be added to. * @param authOrigin Authentication origin of the synced groups. * @return OpenCGAResult object. - * @throws CatalogDBException CatalogDBException. + * @throws CatalogDBException CatalogDBException + * @throws CatalogParameterException CatalogParameterException + * @throws CatalogAuthorizationException CatalogAuthorizationException */ - OpenCGAResult resyncUserWithSyncedGroups(String user, List groupList, String authOrigin) throws CatalogDBException; + OpenCGAResult resyncUserWithSyncedGroups(String user, List groupList, String authOrigin) + throws CatalogDBException, CatalogParameterException, CatalogAuthorizationException; + + /** + * ADD or REMOVE user to list of provided groups. + * + * @param user User id. + * @param studyUids List of study uids. + * @param groupList List of group ids. + * @param action Update action [ADD, REMOVE] + * @return OpenCGAResult object. + * @throws CatalogDBException CatalogDBException + * @throws CatalogParameterException CatalogParameterException + * @throws CatalogAuthorizationException CatalogAuthorizationException + */ + OpenCGAResult updateUserFromGroups(String user, List studyUids, List groupList, + ParamUtils.AddRemoveAction action) + throws CatalogDBException, CatalogParameterException, CatalogAuthorizationException; /** * Create the permission rule to the list of permission rules defined for the entry in the studyId. diff --git a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/AuthorizationMongoDBAdaptor.java b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/AuthorizationMongoDBAdaptor.java index edab86e2f36..fff9a1ed3b3 100644 --- a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/AuthorizationMongoDBAdaptor.java +++ b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/AuthorizationMongoDBAdaptor.java @@ -522,8 +522,8 @@ private void addToMembersGroupInStudy(long studyId, List members, Client .collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(userList)) { // We first add the member to the @members group in case they didn't belong already - dbAdaptorFactory.getCatalogStudyDBAdaptor().addUsersToGroup(studyId, CatalogAuthorizationManager.MEMBERS_GROUP, - userList, clientSession); + dbAdaptorFactory.getCatalogStudyDBAdaptor().addUsersToGroup(clientSession, studyId, CatalogAuthorizationManager.MEMBERS_GROUP, + userList); } } diff --git a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/StudyMongoDBAdaptor.java b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/StudyMongoDBAdaptor.java index 7b88fb6ce1f..d2e01a601be 100644 --- a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/StudyMongoDBAdaptor.java +++ b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/db/mongodb/StudyMongoDBAdaptor.java @@ -29,7 +29,6 @@ import org.opencb.commons.datastore.core.*; import org.opencb.commons.datastore.mongodb.MongoDBCollection; import org.opencb.commons.datastore.mongodb.MongoDBIterator; -import org.opencb.commons.utils.ListUtils; import org.opencb.opencga.catalog.db.api.*; import org.opencb.opencga.catalog.db.mongodb.converters.StudyConverter; import org.opencb.opencga.catalog.db.mongodb.converters.VariableSetConverter; @@ -40,6 +39,7 @@ import org.opencb.opencga.catalog.utils.Constants; import org.opencb.opencga.catalog.utils.ParamUtils; import org.opencb.opencga.catalog.utils.UuidUtils; +import org.opencb.opencga.core.api.ParamConstants; import org.opencb.opencga.core.common.TimeUtils; import org.opencb.opencga.core.config.Configuration; import org.opencb.opencga.core.models.cohort.Cohort; @@ -482,8 +482,8 @@ public OpenCGAResult setUsersToGroup(long studyId, String groupId, List(result); } - void addUsersToGroup(long studyId, String groupId, List members, ClientSession clientSession) throws CatalogDBException { - if (ListUtils.isEmpty(members)) { + void addUsersToGroup(ClientSession clientSession, long studyId, String groupId, List members) throws CatalogDBException { + if (CollectionUtils.isEmpty(members)) { return; } @@ -491,7 +491,7 @@ void addUsersToGroup(long studyId, String groupId, List members, ClientS .append(PRIVATE_UID, studyId) .append(QueryParams.GROUP_ID.key(), groupId); Document update = new Document("$addToSet", new Document("groups.$.userIds", new Document("$each", members))); - DataResult result = studyCollection.update(clientSession, query, update, null); + DataResult result = studyCollection.update(clientSession, query, update, null); if (result.getNumMatches() != 1) { throw new CatalogDBException("Unable to add members to group " + groupId + ". The group does not exist."); @@ -500,7 +500,7 @@ void addUsersToGroup(long studyId, String groupId, List members, ClientS @Override public OpenCGAResult addUsersToGroup(long studyId, String groupId, List members) throws CatalogDBException { - if (ListUtils.isEmpty(members)) { + if (CollectionUtils.isEmpty(members)) { throw new CatalogDBException("List of 'members' is missing or empty."); } @@ -589,56 +589,145 @@ public OpenCGAResult syncGroup(long studyId, String groupId, Group.Sync s return new OpenCGAResult<>(studyCollection.update(query, updates, null)); } - // TODO: Make this transactional @Override public OpenCGAResult resyncUserWithSyncedGroups(String user, List groupList, String authOrigin) - throws CatalogDBException { + throws CatalogDBException, CatalogParameterException, CatalogAuthorizationException { if (StringUtils.isEmpty(user)) { throw new CatalogDBException("Missing user field"); } - // 1. Take the user out from all synced groups - Document query = new Document() - .append(QueryParams.GROUPS.key(), new Document("$elemMatch", new Document() - .append("userIds", user) - .append("syncedFrom.authOrigin", authOrigin) - )); - Bson pull = Updates.pull("groups.$.userIds", user); - - // Pull the user while it still belongs to a synced group - QueryOptions multi = new QueryOptions(MongoDBCollection.MULTI, true); - DataResult update; - do { - update = studyCollection.update(query, pull, multi); - } while (update.getNumUpdated() > 0); - - // 2. Add user to all synced groups - if (groupList != null && groupList.size() > 0) { - // Add the user to all the synced groups matching - query = new Document() + return runTransaction(clientSession -> { + // 1. Take the user out from all synced groups + Document query = new Document() .append(QueryParams.GROUPS.key(), new Document("$elemMatch", new Document() - .append("userIds", new Document("$ne", user)) - .append("syncedFrom.remoteGroup", new Document("$in", groupList)) + .append("userIds", user) .append("syncedFrom.authOrigin", authOrigin) )); - Document push = new Document("$addToSet", new Document("groups.$.userIds", user)); + Bson pull = Updates.pull("groups.$.userIds", user); + + // Pull the user while it still belongs to a synced group + QueryOptions multi = new QueryOptions(MongoDBCollection.MULTI, true); + DataResult update; do { - update = studyCollection.update(query, push, multi); + update = studyCollection.update(clientSession, query, pull, multi); } while (update.getNumUpdated() > 0); - // We need to be updated with the internal @members group, so we fetch all the studies where the user has been added - // and attempt to add it to the each @members group - query = new Document() - .append(QueryParams.GROUP_USER_IDS.key(), user) - .append(QueryParams.GROUP_SYNCED_FROM_AUTH_ORIGIN.key(), authOrigin); - DataResult studyDataResult = studyCollection.find(query, studyConverter, new QueryOptions(QueryOptions.INCLUDE, - QueryParams.UID.key())); - for (Study study : studyDataResult.getResults()) { - addUsersToGroup(study.getUid(), "@members", Arrays.asList(user)); + // 2. Add user to all synced groups + if (groupList != null && groupList.size() > 0) { + // Add the user to all the synced groups matching + query = new Document() + .append(QueryParams.GROUPS.key(), new Document("$elemMatch", new Document() + .append("userIds", new Document("$ne", user)) + .append("syncedFrom.remoteGroup", new Document("$in", groupList)) + .append("syncedFrom.authOrigin", authOrigin) + )); + Document push = new Document("$addToSet", new Document("groups.$.userIds", user)); + do { + update = studyCollection.update(clientSession, query, push, multi); + } while (update.getNumUpdated() > 0); + + // We need to be updated with the internal @members group, so we fetch all the studies where the user has been added + // and attempt to add it to all @members groups + query = new Document() + .append(QueryParams.GROUP_USER_IDS.key(), user) + .append(QueryParams.GROUP_SYNCED_FROM_AUTH_ORIGIN.key(), authOrigin); + DataResult studyDataResult = studyCollection.find(clientSession, query, studyConverter, + new QueryOptions(QueryOptions.INCLUDE, QueryParams.UID.key())); + for (Study study : studyDataResult.getResults()) { + addUsersToGroup(clientSession, study.getUid(), "@members", Collections.singletonList(user)); + } } + + return OpenCGAResult.empty(Group.class); + }); + } + + @Override + public OpenCGAResult updateUserFromGroups(String user, List studyUids, List groupList, + ParamUtils.AddRemoveAction action) + throws CatalogDBException, CatalogParameterException, CatalogAuthorizationException { + + if (StringUtils.isEmpty(user)) { + throw new CatalogParameterException("Missing user parameter"); + } + if (action == null) { + throw new CatalogParameterException("Missing action parameter"); + } + if (CollectionUtils.isEmpty(groupList)) { + throw new CatalogParameterException("Missing list of groups"); } - return OpenCGAResult.empty(); + // Fix group ids + List fixedGroupList = groupList.stream() + .map((group) -> { + if (!group.startsWith("@")) { + return "@" + group; + } + return group; + }) + .collect(Collectors.toList()); + + QueryOptions multi = new QueryOptions(MongoDBCollection.MULTI, true); + + return runTransaction(clientSession -> { + switch (action) { + case ADD: + Document addQuery = new Document() + // Do not apply changes in the admin study + .append(QueryParams.FQN.key(), new Document("$ne", ParamConstants.ADMIN_STUDY_FQN)) + // Add the user to all the groups matching the list + .append(QueryParams.GROUPS.key(), new Document("$elemMatch", new Document() + .append("userIds", new Document("$ne", user)) + .append("id", new Document("$in", fixedGroupList)) + )); + if (studyUids != null) { + addQuery.put(QueryParams.UID.key(), new Document("$in", studyUids)); + } + + Document push = new Document("$addToSet", new Document("groups.$.userIds", user)); + DataResult update; + do { + update = studyCollection.update(clientSession, addQuery, push, multi); + } while (update.getNumUpdated() > 0); + + // We need to be updated with the internal @members group, so we fetch all the studies where the user has been added + // and attempt to add it to all @members groups + addQuery = new Document() + .append(QueryParams.GROUP_USER_IDS.key(), user) + .append(QueryParams.GROUP_ID.key(), new Document("$in", fixedGroupList)); + if (studyUids != null) { + addQuery.put(QueryParams.UID.key(), new Document("$in", studyUids)); + } + + DataResult studyDataResult = studyCollection.find(clientSession, addQuery, studyConverter, + new QueryOptions(QueryOptions.INCLUDE, QueryParams.UID.key())); + for (Study study : studyDataResult.getResults()) { + addUsersToGroup(clientSession, study.getUid(), "@members", Collections.singletonList(user)); + } + break; + case REMOVE: + // 1. Take the user out from all groups + Document removeQuery = new Document() + .append(QueryParams.GROUPS.key(), new Document("$elemMatch", new Document() + .append("userIds", user) + .append("id", new Document("$in", fixedGroupList)) + )); + if (studyUids != null) { + removeQuery.put(QueryParams.UID.key(), new Document("$in", studyUids)); + } + Bson pull = Updates.pull("groups.$.userIds", user); + DataResult pullUpdate; + do { + pullUpdate = studyCollection.update(clientSession, removeQuery, pull, multi); + } while (pullUpdate.getNumUpdated() > 0); + + break; + default: + break; + } + + return OpenCGAResult.empty(Group.class); + }); } @Override diff --git a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/managers/AdminManager.java b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/managers/AdminManager.java index 3bffa773511..b57426ebf04 100644 --- a/opencga-catalog/src/main/java/org/opencb/opencga/catalog/managers/AdminManager.java +++ b/opencga-catalog/src/main/java/org/opencb/opencga/catalog/managers/AdminManager.java @@ -1,9 +1,9 @@ package org.opencb.opencga.catalog.managers; +import org.apache.commons.collections4.CollectionUtils; import org.opencb.commons.datastore.core.ObjectMap; import org.opencb.commons.datastore.core.Query; import org.opencb.commons.datastore.core.QueryOptions; -import org.opencb.opencga.core.models.audit.AuditRecord; import org.opencb.opencga.catalog.auth.authorization.AuthorizationManager; import org.opencb.opencga.catalog.db.DBAdaptorFactory; import org.opencb.opencga.catalog.db.api.UserDBAdaptor; @@ -12,12 +12,18 @@ import org.opencb.opencga.catalog.utils.ParamUtils; import org.opencb.opencga.core.api.ParamConstants; import org.opencb.opencga.core.config.Configuration; +import org.opencb.opencga.core.models.audit.AuditRecord; import org.opencb.opencga.core.models.common.Enums; +import org.opencb.opencga.core.models.study.Group; +import org.opencb.opencga.core.models.study.Study; import org.opencb.opencga.core.models.user.User; import org.opencb.opencga.core.response.OpenCGAResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.util.ArrayList; +import java.util.List; + public class AdminManager extends AbstractManager { private final CatalogIOManager catalogIOManager; @@ -72,4 +78,97 @@ public OpenCGAResult userSearch(Query query, QueryOptions options, String } } + public OpenCGAResult updateGroups(String userId, List studyIds, List groupIds, + ParamUtils.AddRemoveAction action, String token) throws CatalogException { + ObjectMap auditParams = new ObjectMap() + .append("userId", userId) + .append("studyIds", studyIds) + .append("groupIds", groupIds) + .append("action", action) + .append("token", token); + String authenticatedUser = catalogManager.getUserManager().getUserId(token); + try { + authorizationManager.checkIsInstallationAdministrator(authenticatedUser); + + // Check userId exists + Query query = new Query(UserDBAdaptor.QueryParams.ID.key(), userId); + OpenCGAResult count = userDBAdaptor.count(query); + if (count.getNumMatches() == 0) { + throw new CatalogException("User '" + userId + "' not found."); + } + + boolean membersPassed = groupIds.stream().anyMatch(g -> g.startsWith("@") + ? ParamConstants.MEMBERS_GROUP.equals(g) + : ParamConstants.MEMBERS_GROUP.equals("@" + g)); + if (action.equals(ParamUtils.AddRemoveAction.REMOVE) && membersPassed) { + // TODO: If @members is added for REMOVAL, we should also automatically remove all permissions. + throw new CatalogException("Operation not supported for '@members' group."); + } + + // Check studyIds exist + List studies = catalogManager.getStudyManager().resolveIds(studyIds, authenticatedUser); + List studyUids = new ArrayList<>(studies.size()); + for (Study study : studies) { + if (ParamConstants.ADMIN_STUDY_FQN.equals(study.getFqn())) { + if (CollectionUtils.isNotEmpty(studyIds)) { + // Only fail if the user is passing the list of study ids + throw new CatalogException("Cannot perform this operation on administration study '" + study.getFqn() + "'."); + } + } else { + studyUids.add(study.getUid()); + } + } + + OpenCGAResult result = studyDBAdaptor.updateUserFromGroups(userId, studyUids, groupIds, action); + + auditManager.audit(userId, Enums.Action.UPDATE_USERS_FROM_STUDY_GROUP, Enums.Resource.STUDY, "", "", "", "", auditParams, + new AuditRecord.Status(AuditRecord.Status.Result.SUCCESS)); + return result; + } catch (CatalogException e) { + auditManager.audit(userId, Enums.Action.UPDATE_USERS_FROM_STUDY_GROUP, Enums.Resource.STUDY, "", "", "", "", auditParams, + new AuditRecord.Status(AuditRecord.Status.Result.ERROR, e.getError())); + throw e; + } + } + + /** + * Add a user to all the remote groups he/she may belong for a particular authentication origin. + * Also remove the user from other groups he/she may have been associated in the past for the same authentication origin. + * + * @param userId User id. + * @param remoteGroupIds List of group ids the user must be associated with. + * @param authenticationOriginId The authentication origin the groups must be associated to. + * @param token Administrator token. + * @return An empty OpenCGAResult. + * @throws CatalogException If the token is invalid or belongs to a user other thant the Administrator and if userId does not exist. + */ + public OpenCGAResult syncRemoteGroups(String userId, List remoteGroupIds, + String authenticationOriginId, String token) throws CatalogException { + ObjectMap auditParams = new ObjectMap() + .append("userId", userId) + .append("remoteGroupIds", remoteGroupIds) + .append("authenticationOriginId", authenticationOriginId) + .append("token", token); + String authenticatedUser = catalogManager.getUserManager().getUserId(token); + try { + authorizationManager.checkIsInstallationAdministrator(authenticatedUser); + + // Check userId exists + Query query = new Query(UserDBAdaptor.QueryParams.ID.key(), userId); + OpenCGAResult count = userDBAdaptor.count(query); + if (count.getNumMatches() == 0) { + throw new CatalogException("User '" + userId + "' not found."); + } + OpenCGAResult result = studyDBAdaptor.resyncUserWithSyncedGroups(userId, remoteGroupIds, authenticationOriginId); + + auditManager.audit(userId, Enums.Action.UPDATE_USERS_FROM_STUDY_GROUP, Enums.Resource.STUDY, "", "", "", "", auditParams, + new AuditRecord.Status(AuditRecord.Status.Result.SUCCESS)); + return result; + } catch (CatalogException e) { + auditManager.audit(userId, Enums.Action.UPDATE_USERS_FROM_STUDY_GROUP, Enums.Resource.STUDY, "", "", "", "", auditParams, + new AuditRecord.Status(AuditRecord.Status.Result.ERROR, e.getError())); + throw e; + } + } + } diff --git a/opencga-catalog/src/test/java/org/opencb/opencga/catalog/db/mongodb/StudyMongoDBAdaptorTest.java b/opencga-catalog/src/test/java/org/opencb/opencga/catalog/db/mongodb/StudyMongoDBAdaptorTest.java index f8c7b20e550..5791005394c 100644 --- a/opencga-catalog/src/test/java/org/opencb/opencga/catalog/db/mongodb/StudyMongoDBAdaptorTest.java +++ b/opencga-catalog/src/test/java/org/opencb/opencga/catalog/db/mongodb/StudyMongoDBAdaptorTest.java @@ -26,6 +26,7 @@ import org.opencb.opencga.catalog.exceptions.CatalogDBException; import org.opencb.opencga.catalog.exceptions.CatalogException; import org.opencb.opencga.catalog.exceptions.CatalogParameterException; +import org.opencb.opencga.catalog.utils.ParamUtils; import org.opencb.opencga.core.models.study.*; import org.opencb.opencga.core.testclassification.duration.MediumTests; @@ -208,7 +209,7 @@ public void removeUsersFromAllGroups() throws CatalogDBException, CatalogParamet } @Test - public void resyncUserWithSyncedGroups() throws CatalogDBException { + public void resyncUserWithSyncedGroups() throws CatalogDBException, CatalogParameterException, CatalogAuthorizationException { // We create synced groups and not synced groups in study 5 Group group = new Group("@notSyncedGroup", Arrays.asList("user1", "user2", "user3")); catalogStudyDBAdaptor.createGroup(5L, group); @@ -275,4 +276,74 @@ public void resyncUserWithSyncedGroups() throws CatalogDBException { .containsAll(Arrays.asList("@notSyncedGroup", "@syncedGroup2", "@syncedGroup3", "@members"))); } + @Test + public void updateUserToGroups() throws CatalogDBException, CatalogParameterException, CatalogAuthorizationException { + // We create synced groups and not synced groups in study 5 + Group group = new Group("@notSyncedGroup", Collections.emptyList()); + catalogStudyDBAdaptor.createGroup(5L, group); + group.setId("@syncedGroup1"); + group.setSyncedFrom(new Group.Sync("origin1", "@syncedGroup1")); + catalogStudyDBAdaptor.createGroup(5L, group); + group.setId("@syncedGroup2"); + group.setSyncedFrom(new Group.Sync("origin1", "@syncedGroup2")); + catalogStudyDBAdaptor.createGroup(5L, group); + group.setId("@syncedGroup3"); + group.setSyncedFrom(new Group.Sync("otherOrigin", "@syncedGroup3")); + catalogStudyDBAdaptor.createGroup(5L, group); + + // We create the same synced groups and not synced groups in study 9 + group = new Group("@notSyncedGroup", Collections.emptyList()); + catalogStudyDBAdaptor.createGroup(9L, group); + group.setId("@syncedGroup1"); + group.setSyncedFrom(new Group.Sync("origin1", "@syncedGroup1")); + catalogStudyDBAdaptor.createGroup(9L, group); + group.setId("@syncedGroup2"); + group.setSyncedFrom(new Group.Sync("origin1", "@syncedGroup2")); + catalogStudyDBAdaptor.createGroup(9L, group); + group.setId("@syncedGroup3"); + group.setSyncedFrom(new Group.Sync("otherOrigin", "@syncedGroup3")); + catalogStudyDBAdaptor.createGroup(9L, group); + group = new Group("@otherNotSyncedGroup", Collections.emptyList()); + catalogStudyDBAdaptor.createGroup(9L, group); + + catalogStudyDBAdaptor.updateUserFromGroups("user2", null, Arrays.asList("syncedGroup1", "notSyncedGroup"), ParamUtils.AddRemoveAction.ADD); + DataResult groupsStudy1 = catalogStudyDBAdaptor.getGroup(5L, null, Arrays.asList("user2")); + DataResult groupsStudy2 = catalogStudyDBAdaptor.getGroup(9L, null, Arrays.asList("user2")); + assertEquals(groupsStudy1.getNumResults(), groupsStudy2.getNumResults()); + assertEquals(3, groupsStudy1.getNumResults()); + assertTrue(groupsStudy1.getResults().stream().map(Group::getId).collect(Collectors.toList()) + .containsAll(Arrays.asList("@notSyncedGroup", "@syncedGroup1", "@members"))); + assertEquals(3, groupsStudy2.getNumResults()); + assertTrue(groupsStudy2.getResults().stream().map(Group::getId).collect(Collectors.toList()) + .containsAll(Arrays.asList("@notSyncedGroup", "@syncedGroup1", "@members"))); + + catalogStudyDBAdaptor.updateUserFromGroups("user2", null, Arrays.asList("syncedGroup1", "notSyncedGroup"), ParamUtils.AddRemoveAction.REMOVE); + groupsStudy1 = catalogStudyDBAdaptor.getGroup(5L, null, Arrays.asList("user2")); + groupsStudy2 = catalogStudyDBAdaptor.getGroup(9L, null, Arrays.asList("user2")); + assertEquals(1, groupsStudy1.getNumResults()); + assertEquals(1, groupsStudy2.getNumResults()); + assertEquals("@members", groupsStudy1.first().getId()); + assertEquals("@members", groupsStudy2.first().getId()); + + catalogStudyDBAdaptor.updateUserFromGroups("user2", Arrays.asList(5L, 9L), Arrays.asList("syncedGroup1", "notSyncedGroup"), ParamUtils.AddRemoveAction.ADD); + groupsStudy1 = catalogStudyDBAdaptor.getGroup(5L, null, Arrays.asList("user2")); + groupsStudy2 = catalogStudyDBAdaptor.getGroup(9L, null, Arrays.asList("user2")); + assertEquals(groupsStudy1.getNumResults(), groupsStudy2.getNumResults()); + assertEquals(3, groupsStudy1.getNumResults()); + assertTrue(groupsStudy1.getResults().stream().map(Group::getId).collect(Collectors.toList()) + .containsAll(Arrays.asList("@notSyncedGroup", "@syncedGroup1", "@members"))); + assertEquals(3, groupsStudy2.getNumResults()); + assertTrue(groupsStudy2.getResults().stream().map(Group::getId).collect(Collectors.toList()) + .containsAll(Arrays.asList("@notSyncedGroup", "@syncedGroup1", "@members"))); + + catalogStudyDBAdaptor.updateUserFromGroups("user2", Collections.singletonList(5L), Arrays.asList("syncedGroup1", "notSyncedGroup"), ParamUtils.AddRemoveAction.REMOVE); + groupsStudy1 = catalogStudyDBAdaptor.getGroup(5L, null, Arrays.asList("user2")); + groupsStudy2 = catalogStudyDBAdaptor.getGroup(9L, null, Arrays.asList("user2")); + assertEquals(1, groupsStudy1.getNumResults()); + assertEquals("@members", groupsStudy1.first().getId()); + assertEquals(3, groupsStudy2.getNumResults()); + assertTrue(groupsStudy2.getResults().stream().map(Group::getId).collect(Collectors.toList()) + .containsAll(Arrays.asList("@notSyncedGroup", "@syncedGroup1", "@members"))); + } + } diff --git a/opencga-client/src/main/R/R/Admin-methods.R b/opencga-client/src/main/R/R/Admin-methods.R index 5faa2c44b78..e2e650759c0 100644 --- a/opencga-client/src/main/R/R/Admin-methods.R +++ b/opencga-client/src/main/R/R/Admin-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -28,6 +28,7 @@ #' | importUsers | /{apiVersion}/admin/users/import | body[*] | #' | searchUsers | /{apiVersion}/admin/users/search | include, exclude, limit, skip, count, user, account, authenticationId | #' | syncUsers | /{apiVersion}/admin/users/sync | body[*] | +#' | usersUpdateGroups | /{apiVersion}/admin/users/{user}/groups/update | user[*], action, body[*] | #' #' @md #' @seealso \url{http://docs.opencb.org/display/opencga/Using+OpenCGA} and the RESTful API documentation @@ -35,7 +36,7 @@ #' [*]: Required parameter #' @export -setMethod("adminClient", "OpencgaR", function(OpencgaR, endpointName, params=NULL, ...) { +setMethod("adminClient", "OpencgaR", function(OpencgaR, user, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/admin/audit/groupBy: @@ -100,5 +101,13 @@ setMethod("adminClient", "OpencgaR", function(OpencgaR, endpointName, params=NUL #' @param data JSON containing the parameters. syncUsers=fetchOpenCGA(object=OpencgaR, category="admin", categoryId=NULL, subcategory="users", subcategoryId=NULL, action="sync", params=params, httpMethod="POST", as.queryParam=NULL, ...), + + #' @section Endpoint /{apiVersion}/admin/users/{user}/groups/update: + #' Add or remove users from existing groups. + #' @param user User ID. + #' @param action Action to be performed: ADD or REMOVE user to/from groups. Allowed values: ['ADD REMOVE'] + #' @param data JSON containing the parameters. + usersUpdateGroups=fetchOpenCGA(object=OpencgaR, category="admin/users", categoryId=user, subcategory="groups", + subcategoryId=NULL, action="update", params=params, httpMethod="POST", as.queryParam=NULL, ...), ) }) \ No newline at end of file diff --git a/opencga-client/src/main/R/R/Alignment-methods.R b/opencga-client/src/main/R/R/Alignment-methods.R index c8ccfb56960..517d51dad14 100644 --- a/opencga-client/src/main/R/R/Alignment-methods.R +++ b/opencga-client/src/main/R/R/Alignment-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. diff --git a/opencga-client/src/main/R/R/AllGenerics.R b/opencga-client/src/main/R/R/AllGenerics.R index b749fd1f45f..8b679bba8af 100644 --- a/opencga-client/src/main/R/R/AllGenerics.R +++ b/opencga-client/src/main/R/R/AllGenerics.R @@ -1,21 +1,21 @@ # ############################################################################## ## UserClient -setGeneric("userClient", function(OpencgaR, filterId, users, user, endpointName, params=NULL, ...) +setGeneric("userClient", function(OpencgaR, user, filterId, users, endpointName, params=NULL, ...) standardGeneric("userClient")) # ############################################################################## ## ProjectClient -setGeneric("projectClient", function(OpencgaR, project, projects, endpointName, params=NULL, ...) +setGeneric("projectClient", function(OpencgaR, projects, project, endpointName, params=NULL, ...) standardGeneric("projectClient")) # ############################################################################## ## StudyClient -setGeneric("studyClient", function(OpencgaR, group, members, templateId, variableSet, studies, study, endpointName, params=NULL, ...) +setGeneric("studyClient", function(OpencgaR, members, templateId, study, variableSet, group, studies, endpointName, params=NULL, ...) standardGeneric("studyClient")) # ############################################################################## ## FileClient -setGeneric("fileClient", function(OpencgaR, members, files, folder, annotationSet, file, endpointName, params=NULL, ...) +setGeneric("fileClient", function(OpencgaR, members, folder, annotationSet, files, file, endpointName, params=NULL, ...) standardGeneric("fileClient")) # ############################################################################## @@ -25,22 +25,22 @@ setGeneric("jobClient", function(OpencgaR, members, job, jobs, endpointName, par # ############################################################################## ## SampleClient -setGeneric("sampleClient", function(OpencgaR, members, samples, annotationSet, sample, endpointName, params=NULL, ...) +setGeneric("sampleClient", function(OpencgaR, members, sample, annotationSet, samples, endpointName, params=NULL, ...) standardGeneric("sampleClient")) # ############################################################################## ## IndividualClient -setGeneric("individualClient", function(OpencgaR, members, annotationSet, individual, individuals, endpointName, params=NULL, ...) +setGeneric("individualClient", function(OpencgaR, members, individuals, individual, annotationSet, endpointName, params=NULL, ...) standardGeneric("individualClient")) # ############################################################################## ## FamilyClient -setGeneric("familyClient", function(OpencgaR, families, members, annotationSet, family, endpointName, params=NULL, ...) +setGeneric("familyClient", function(OpencgaR, members, families, family, annotationSet, endpointName, params=NULL, ...) standardGeneric("familyClient")) # ############################################################################## ## CohortClient -setGeneric("cohortClient", function(OpencgaR, members, annotationSet, cohorts, cohort, endpointName, params=NULL, ...) +setGeneric("cohortClient", function(OpencgaR, members, cohorts, cohort, annotationSet, endpointName, params=NULL, ...) standardGeneric("cohortClient")) # ############################################################################## @@ -60,7 +60,7 @@ setGeneric("variantClient", function(OpencgaR, endpointName, params=NULL, ...) # ############################################################################## ## ClinicalClient -setGeneric("clinicalClient", function(OpencgaR, members, clinicalAnalysis, interpretations, clinicalAnalyses, interpretation, endpointName, params=NULL, ...) +setGeneric("clinicalClient", function(OpencgaR, interpretation, members, interpretations, clinicalAnalyses, clinicalAnalysis, endpointName, params=NULL, ...) standardGeneric("clinicalClient")) # ############################################################################## @@ -80,6 +80,6 @@ setGeneric("ga4ghClient", function(OpencgaR, file, study, endpointName, params=N # ############################################################################## ## AdminClient -setGeneric("adminClient", function(OpencgaR, endpointName, params=NULL, ...) +setGeneric("adminClient", function(OpencgaR, user, endpointName, params=NULL, ...) standardGeneric("adminClient")) diff --git a/opencga-client/src/main/R/R/Clinical-methods.R b/opencga-client/src/main/R/R/Clinical-methods.R index 229e1a40aeb..5d26c3f4c93 100644 --- a/opencga-client/src/main/R/R/Clinical-methods.R +++ b/opencga-client/src/main/R/R/Clinical-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -58,7 +58,7 @@ #' [*]: Required parameter #' @export -setMethod("clinicalClient", "OpencgaR", function(OpencgaR, members, clinicalAnalysis, interpretations, clinicalAnalyses, interpretation, endpointName, params=NULL, ...) { +setMethod("clinicalClient", "OpencgaR", function(OpencgaR, interpretation, members, interpretations, clinicalAnalyses, clinicalAnalysis, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/analysis/clinical/acl/{members}/update: @@ -94,10 +94,10 @@ setMethod("clinicalClient", "OpencgaR", function(OpencgaR, members, clinicalAnal #' @section Endpoint /{apiVersion}/analysis/clinical/distinct: #' Clinical Analysis distinct method. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list of Clinical Analysis IDs up to a maximum of 100. + #' @param id Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list of Clinical Analysis UUIDs up to a maximum of 100. #' @param type Clinical Analysis type. - #' @param disorder Clinical Analysis disorder. + #' @param disorder Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param files Clinical Analysis files. #' @param sample Sample associated to the proband or any member of a family. #' @param individual Proband or any member of a family. @@ -126,11 +126,11 @@ setMethod("clinicalClient", "OpencgaR", function(OpencgaR, members, clinicalAnal #' @section Endpoint /{apiVersion}/analysis/clinical/interpretation/distinct: #' Interpretation distinct method. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list of Interpretation IDs up to a maximum of 100. + #' @param id Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list of Interpretation UUIDs up to a maximum of 100. #' @param clinicalAnalysisId Clinical Analysis id. #' @param analystId Analyst ID. - #' @param methodName Interpretation method name. + #' @param methodName Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param panels Interpretation panels. #' @param primaryFindings Interpretation primary findings. #' @param secondaryFindings Interpretation secondary findings. @@ -152,11 +152,11 @@ setMethod("clinicalClient", "OpencgaR", function(OpencgaR, members, clinicalAnal #' @param skip Number of results to skip. #' @param sort Sort the results. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list of Interpretation IDs up to a maximum of 100. + #' @param id Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list of Interpretation UUIDs up to a maximum of 100. #' @param clinicalAnalysisId Clinical Analysis id. #' @param analystId Analyst ID. - #' @param methodName Interpretation method name. + #' @param methodName Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param panels Interpretation panels. #' @param primaryFindings Interpretation primary findings. #' @param secondaryFindings Interpretation secondary findings. @@ -484,10 +484,10 @@ setMethod("clinicalClient", "OpencgaR", function(OpencgaR, members, clinicalAnal #' @param skip Number of results to skip. #' @param count Get the total number of results matching the query. Deactivated by default. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list of Clinical Analysis IDs up to a maximum of 100. + #' @param id Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list of Clinical Analysis UUIDs up to a maximum of 100. #' @param type Clinical Analysis type. - #' @param disorder Clinical Analysis disorder. + #' @param disorder Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param files Clinical Analysis files. #' @param sample Sample associated to the proband or any member of a family. #' @param individual Proband or any member of a family. diff --git a/opencga-client/src/main/R/R/Cohort-methods.R b/opencga-client/src/main/R/R/Cohort-methods.R index 5cbbca27e88..fb761746d4e 100644 --- a/opencga-client/src/main/R/R/Cohort-methods.R +++ b/opencga-client/src/main/R/R/Cohort-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -39,7 +39,7 @@ #' [*]: Required parameter #' @export -setMethod("cohortClient", "OpencgaR", function(OpencgaR, members, annotationSet, cohorts, cohort, endpointName, params=NULL, ...) { +setMethod("cohortClient", "OpencgaR", function(OpencgaR, members, cohorts, cohort, annotationSet, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/cohorts/acl/{members}/update: @@ -97,8 +97,8 @@ setMethod("cohortClient", "OpencgaR", function(OpencgaR, members, annotationSet, #' @section Endpoint /{apiVersion}/cohorts/distinct: #' Cohort distinct method. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list of cohort IDs up to a maximum of 100. - #' @param name Comma separated list of cohort names up to a maximum of 100. + #' @param id Comma separated list of cohort IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param name Comma separated list of cohort names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list of cohort IDs up to a maximum of 100. #' @param type Cohort type. #' @param creationDate creationDate. @@ -128,7 +128,7 @@ setMethod("cohortClient", "OpencgaR", function(OpencgaR, members, annotationSet, #' @param modificationDate Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. #' @param internalStatus Filter by internal status. #' @param status Filter by status. - #' @param phenotypes Comma separated list of phenotype ids or names. + #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param annotation Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. #' @param acl Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. Example: acl=john:WRITE,WRITE_ANNOTATIONS will return all entries for which user john has both WRITE and WRITE_ANNOTATIONS permissions. Only study owners or administrators can query by this field. . #' @param release Release when it was created. @@ -147,8 +147,8 @@ setMethod("cohortClient", "OpencgaR", function(OpencgaR, members, annotationSet, #' @param count Get the total number of results matching the query. Deactivated by default. #' @param flattenAnnotations Flatten the annotations?. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list of cohort IDs up to a maximum of 100. - #' @param name Comma separated list of cohort names up to a maximum of 100. + #' @param id Comma separated list of cohort IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param name Comma separated list of cohort names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list of cohort IDs up to a maximum of 100. #' @param type Cohort type. #' @param creationDate creationDate. diff --git a/opencga-client/src/main/R/R/Family-methods.R b/opencga-client/src/main/R/R/Family-methods.R index 92babc2d42a..2b4ec1fe2e8 100644 --- a/opencga-client/src/main/R/R/Family-methods.R +++ b/opencga-client/src/main/R/R/Family-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -38,7 +38,7 @@ #' [*]: Required parameter #' @export -setMethod("familyClient", "OpencgaR", function(OpencgaR, families, members, annotationSet, family, endpointName, params=NULL, ...) { +setMethod("familyClient", "OpencgaR", function(OpencgaR, members, families, family, annotationSet, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/families/acl/{members}/update: @@ -98,14 +98,14 @@ setMethod("familyClient", "OpencgaR", function(OpencgaR, families, members, anno #' @section Endpoint /{apiVersion}/families/distinct: #' Family distinct method. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list family IDs up to a maximum of 100. - #' @param name Comma separated list family names up to a maximum of 100. + #' @param id Comma separated list family IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param name Comma separated list family names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list family UUIDs up to a maximum of 100. #' @param members Comma separated list of family members. #' @param expectedSize Expected size of the family (number of members). #' @param samples Comma separated list of member's samples. - #' @param phenotypes Comma separated list of phenotype ids or names. - #' @param disorders Comma separated list of disorder ids or names. + #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param disorders Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param creationDate Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. #' @param modificationDate Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. #' @param deleted Boolean to retrieve deleted entries. @@ -128,14 +128,14 @@ setMethod("familyClient", "OpencgaR", function(OpencgaR, families, members, anno #' @param count Get the total number of results matching the query. Deactivated by default. #' @param flattenAnnotations Flatten the annotations?. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list family IDs up to a maximum of 100. - #' @param name Comma separated list family names up to a maximum of 100. + #' @param id Comma separated list family IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param name Comma separated list family names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list family UUIDs up to a maximum of 100. #' @param members Comma separated list of family members. #' @param expectedSize Expected size of the family (number of members). #' @param samples Comma separated list of member's samples. - #' @param phenotypes Comma separated list of phenotype ids or names. - #' @param disorders Comma separated list of disorder ids or names. + #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param disorders Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param creationDate Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. #' @param modificationDate Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. #' @param deleted Boolean to retrieve deleted entries. diff --git a/opencga-client/src/main/R/R/File-methods.R b/opencga-client/src/main/R/R/File-methods.R index a5160bf9489..75e2b732758 100644 --- a/opencga-client/src/main/R/R/File-methods.R +++ b/opencga-client/src/main/R/R/File-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -54,7 +54,7 @@ #' [*]: Required parameter #' @export -setMethod("fileClient", "OpencgaR", function(OpencgaR, members, files, folder, annotationSet, file, endpointName, params=NULL, ...) { +setMethod("fileClient", "OpencgaR", function(OpencgaR, members, folder, annotationSet, files, file, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/files/acl/{members}/update: @@ -122,11 +122,11 @@ setMethod("fileClient", "OpencgaR", function(OpencgaR, members, files, folder, a #' @section Endpoint /{apiVersion}/files/distinct: #' File distinct method. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list of file IDs up to a maximum of 100. + #' @param id Comma separated list of file IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list file UUIDs up to a maximum of 100. - #' @param name Comma separated list of file names. - #' @param path Comma separated list of paths. - #' @param uri Comma separated list of uris. + #' @param name Comma separated list of file names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param path Comma separated list of paths. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param uri Comma separated list of uris. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param type File type, either FILE or DIRECTORY. #' @param bioformat Comma separated Bioformat values. For existing Bioformats see files/bioformats. #' @param format Comma separated Format values. For existing Formats see files/formats. @@ -139,7 +139,7 @@ setMethod("fileClient", "OpencgaR", function(OpencgaR, members, files, folder, a #' @param creationDate Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. #' @param modificationDate Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. #' @param description Description. - #' @param tags Tags. + #' @param tags Tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param size File size. #' @param sampleIds Comma separated list sample IDs or UUIDs up to a maximum of 100. #' @param jobId Job ID that created the file(s) or folder(s). @@ -207,11 +207,11 @@ setMethod("fileClient", "OpencgaR", function(OpencgaR, members, files, folder, a #' @param count Get the total number of results matching the query. Deactivated by default. #' @param flattenAnnotations Boolean indicating to flatten the annotations. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list of file IDs up to a maximum of 100. + #' @param id Comma separated list of file IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list file UUIDs up to a maximum of 100. - #' @param name Comma separated list of file names. - #' @param path Comma separated list of paths. - #' @param uri Comma separated list of uris. + #' @param name Comma separated list of file names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param path Comma separated list of paths. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param uri Comma separated list of uris. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param type File type, either FILE or DIRECTORY. #' @param bioformat Comma separated Bioformat values. For existing Bioformats see files/bioformats. #' @param format Comma separated Format values. For existing Formats see files/formats. @@ -224,7 +224,7 @@ setMethod("fileClient", "OpencgaR", function(OpencgaR, members, files, folder, a #' @param creationDate Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. #' @param modificationDate Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. #' @param description Description. - #' @param tags Tags. + #' @param tags Tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param size File size. #' @param sampleIds Comma separated list sample IDs or UUIDs up to a maximum of 100. #' @param jobId Job ID that created the file(s) or folder(s). diff --git a/opencga-client/src/main/R/R/GA4GH-methods.R b/opencga-client/src/main/R/R/GA4GH-methods.R index 7c91d78c0d9..e0db9d9f3ae 100644 --- a/opencga-client/src/main/R/R/GA4GH-methods.R +++ b/opencga-client/src/main/R/R/GA4GH-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. diff --git a/opencga-client/src/main/R/R/Individual-methods.R b/opencga-client/src/main/R/R/Individual-methods.R index 38653dd2fb3..3e808df9e76 100644 --- a/opencga-client/src/main/R/R/Individual-methods.R +++ b/opencga-client/src/main/R/R/Individual-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -39,7 +39,7 @@ #' [*]: Required parameter #' @export -setMethod("individualClient", "OpencgaR", function(OpencgaR, members, annotationSet, individual, individuals, endpointName, params=NULL, ...) { +setMethod("individualClient", "OpencgaR", function(OpencgaR, members, individuals, individual, annotationSet, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/individuals/acl/{members}/update: @@ -106,20 +106,20 @@ setMethod("individualClient", "OpencgaR", function(OpencgaR, members, annotation #' @section Endpoint /{apiVersion}/individuals/distinct: #' Individual distinct method. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list individual IDs up to a maximum of 100. + #' @param id Comma separated list individual IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list individual UUIDs up to a maximum of 100. - #' @param name Comma separated list individual names up to a maximum of 100. + #' @param name Comma separated list individual names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param familyIds Comma separated list of family ids the individuals may belong to. #' @param father Father ID, name or UUID. #' @param mother Mother ID, name or UUID. #' @param samples Sample ID, name or UUID. #' @param sex Individual sex. - #' @param ethnicity Individual ethnicity. + #' @param ethnicity Individual ethnicity. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param dateOfBirth Individual date of birth. - #' @param disorders Comma separated list of disorder ids or names. - #' @param phenotypes Comma separated list of phenotype ids or names. - #' @param populationName Population name. - #' @param populationSubpopulation Subpopulation name. + #' @param disorders Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param populationName Population name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param populationSubpopulation Subpopulation name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param karyotypicSex Individual karyotypic sex. #' @param lifeStatus Individual life status. #' @param internalStatus Filter by internal status. @@ -144,20 +144,20 @@ setMethod("individualClient", "OpencgaR", function(OpencgaR, members, annotation #' @param count Get the total number of results matching the query. Deactivated by default. #' @param flattenAnnotations Flatten the annotations?. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list individual IDs up to a maximum of 100. + #' @param id Comma separated list individual IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list individual UUIDs up to a maximum of 100. - #' @param name Comma separated list individual names up to a maximum of 100. + #' @param name Comma separated list individual names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param father Father ID, name or UUID. #' @param mother Mother ID, name or UUID. #' @param samples Sample ID, name or UUID. #' @param familyIds Comma separated list of family ids the individuals may belong to. #' @param sex Individual sex. #' @param dateOfBirth Individual date of birth. - #' @param ethnicity Individual ethnicity. - #' @param disorders Comma separated list of disorder ids or names. - #' @param phenotypes Comma separated list of phenotype ids or names. - #' @param populationName Population name. - #' @param populationSubpopulation Subpopulation name. + #' @param ethnicity Individual ethnicity. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param disorders Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param populationName Population name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param populationSubpopulation Subpopulation name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param karyotypicSex Individual karyotypic sex. #' @param lifeStatus Individual life status. #' @param internalStatus Filter by internal status. diff --git a/opencga-client/src/main/R/R/Job-methods.R b/opencga-client/src/main/R/R/Job-methods.R index 4ddac21f0b7..f01e5f44139 100644 --- a/opencga-client/src/main/R/R/Job-methods.R +++ b/opencga-client/src/main/R/R/Job-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -87,9 +87,9 @@ setMethod("jobClient", "OpencgaR", function(OpencgaR, members, job, jobs, endpoi #' Job distinct method. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. #' @param otherStudies Flag indicating the entries being queried can belong to any related study, not just the primary one. - #' @param id Comma separated list of job IDs up to a maximum of 100. + #' @param id Comma separated list of job IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list of job UUIDs up to a maximum of 100. - #' @param toolId Tool ID executed by the job. + #' @param toolId Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param toolType Tool type executed by the job [OPERATION, ANALYSIS]. #' @param userId User that created the job. #' @param priority Priority of the job. @@ -128,9 +128,9 @@ setMethod("jobClient", "OpencgaR", function(OpencgaR, members, job, jobs, endpoi #' @param count Get the total number of results matching the query. Deactivated by default. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. #' @param otherStudies Flag indicating the entries being queried can belong to any related study, not just the primary one. - #' @param id Comma separated list of job IDs up to a maximum of 100. + #' @param id Comma separated list of job IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list of job UUIDs up to a maximum of 100. - #' @param toolId Tool ID executed by the job. + #' @param toolId Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param toolType Tool type executed by the job [OPERATION, ANALYSIS]. #' @param userId User that created the job. #' @param priority Priority of the job. @@ -155,7 +155,7 @@ setMethod("jobClient", "OpencgaR", function(OpencgaR, members, job, jobs, endpoi #' @param internalStatus Filter by internal status. #' @param priority Priority of the job. #' @param userId User that created the job. - #' @param toolId Tool ID executed by the job. + #' @param toolId Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. top=fetchOpenCGA(object=OpencgaR, category="jobs", categoryId=NULL, subcategory=NULL, subcategoryId=NULL, action="top", params=params, httpMethod="GET", as.queryParam=NULL, ...), diff --git a/opencga-client/src/main/R/R/Meta-methods.R b/opencga-client/src/main/R/R/Meta-methods.R index b98878431e5..aa4f8f38aaf 100644 --- a/opencga-client/src/main/R/R/Meta-methods.R +++ b/opencga-client/src/main/R/R/Meta-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. diff --git a/opencga-client/src/main/R/R/Operation-methods.R b/opencga-client/src/main/R/R/Operation-methods.R index 032c05951da..56206dd1df2 100644 --- a/opencga-client/src/main/R/R/Operation-methods.R +++ b/opencga-client/src/main/R/R/Operation-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. diff --git a/opencga-client/src/main/R/R/Panel-methods.R b/opencga-client/src/main/R/R/Panel-methods.R index 0b68b9bd20b..45b9913a4b1 100644 --- a/opencga-client/src/main/R/R/Panel-methods.R +++ b/opencga-client/src/main/R/R/Panel-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -62,17 +62,17 @@ setMethod("panelClient", "OpencgaR", function(OpencgaR, members, panels, endpoin #' @section Endpoint /{apiVersion}/panels/distinct: #' Panel distinct method. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list of panel IDs up to a maximum of 100. + #' @param id Comma separated list of panel IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list of panel UUIDs up to a maximum of 100. - #' @param name Comma separated list of panel names up to a maximum of 100. + #' @param name Comma separated list of panel names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param internalStatus Filter by internal status. - #' @param disorders Comma separated list of disorder ids or names. - #' @param variants Comma separated list of variant ids. - #' @param genes Comma separated list of gene ids. + #' @param disorders Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param variants Comma separated list of variant ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param genes Comma separated list of gene ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param source Comma separated list of source ids or names. - #' @param regions Comma separated list of regions. - #' @param categories Comma separated list of category names. - #' @param tags Panel tags. + #' @param regions Comma separated list of regions. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param categories Comma separated list of category names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param tags Panel tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param deleted Boolean to retrieve deleted entries. #' @param status Filter by status. #' @param creationDate Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. @@ -103,17 +103,17 @@ setMethod("panelClient", "OpencgaR", function(OpencgaR, members, panels, endpoin #' @param skip Number of results to skip. #' @param count Get the total number of results matching the query. Deactivated by default. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list of panel IDs up to a maximum of 100. + #' @param id Comma separated list of panel IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list of panel UUIDs up to a maximum of 100. - #' @param name Comma separated list of panel names up to a maximum of 100. + #' @param name Comma separated list of panel names up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param internalStatus Filter by internal status. - #' @param disorders Comma separated list of disorder ids or names. - #' @param variants Comma separated list of variant ids. - #' @param genes Comma separated list of gene ids. + #' @param disorders Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param variants Comma separated list of variant ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param genes Comma separated list of gene ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param source Comma separated list of source ids or names. - #' @param regions Comma separated list of regions. - #' @param categories Comma separated list of category names. - #' @param tags Panel tags. + #' @param regions Comma separated list of regions. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param categories Comma separated list of category names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + #' @param tags Panel tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param deleted Boolean to retrieve deleted entries. #' @param status Filter by status. #' @param creationDate Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. diff --git a/opencga-client/src/main/R/R/Project-methods.R b/opencga-client/src/main/R/R/Project-methods.R index a392aa6b259..acea3c5c36d 100644 --- a/opencga-client/src/main/R/R/Project-methods.R +++ b/opencga-client/src/main/R/R/Project-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -34,7 +34,7 @@ #' [*]: Required parameter #' @export -setMethod("projectClient", "OpencgaR", function(OpencgaR, project, projects, endpointName, params=NULL, ...) { +setMethod("projectClient", "OpencgaR", function(OpencgaR, projects, project, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/projects/create: diff --git a/opencga-client/src/main/R/R/Sample-methods.R b/opencga-client/src/main/R/R/Sample-methods.R index 68067e64a3b..d9f94ce2011 100644 --- a/opencga-client/src/main/R/R/Sample-methods.R +++ b/opencga-client/src/main/R/R/Sample-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -39,7 +39,7 @@ #' [*]: Required parameter #' @export -setMethod("sampleClient", "OpencgaR", function(OpencgaR, members, samples, annotationSet, sample, endpointName, params=NULL, ...) { +setMethod("sampleClient", "OpencgaR", function(OpencgaR, members, sample, annotationSet, samples, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/samples/acl/{members}/update: @@ -98,7 +98,7 @@ setMethod("sampleClient", "OpencgaR", function(OpencgaR, members, samples, annot #' @section Endpoint /{apiVersion}/samples/distinct: #' Sample distinct method. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list sample IDs up to a maximum of 100. + #' @param id Comma separated list sample IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list sample UUIDs up to a maximum of 100. #' @param somatic Somatic sample. #' @param individualId Individual ID or UUID. @@ -115,7 +115,7 @@ setMethod("sampleClient", "OpencgaR", function(OpencgaR, members, samples, annot #' @param collectionFrom Collection from. #' @param collectionType Collection type. #' @param collectionMethod Collection method. - #' @param phenotypes Comma separated list of phenotype ids or names. + #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param annotation Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. #' @param acl Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. Example: acl=john:WRITE,WRITE_ANNOTATIONS will return all entries for which user john has both WRITE and WRITE_ANNOTATIONS permissions. Only study owners or administrators can query by this field. . #' @param internalRgaStatus Index status of the sample for the Recessive Gene Analysis. Allowed values: ['NOT_INDEXED INDEXED INVALID_PERMISSIONS INVALID_METADATA INVALID'] @@ -157,7 +157,7 @@ setMethod("sampleClient", "OpencgaR", function(OpencgaR, members, samples, annot #' @param includeIndividual Include Individual object as an attribute. #' @param flattenAnnotations Flatten the annotations?. #' @param study Study [[user@]project:]study where study and project can be either the ID or UUID. - #' @param id Comma separated list sample IDs up to a maximum of 100. + #' @param id Comma separated list sample IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param uuid Comma separated list sample UUIDs up to a maximum of 100. #' @param somatic Somatic sample. #' @param individualId Individual ID or UUID. @@ -174,7 +174,7 @@ setMethod("sampleClient", "OpencgaR", function(OpencgaR, members, samples, annot #' @param collectionFrom Collection from. #' @param collectionType Collection type. #' @param collectionMethod Collection method. - #' @param phenotypes Comma separated list of phenotype ids or names. + #' @param phenotypes Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. #' @param annotation Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. #' @param acl Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. Example: acl=john:WRITE,WRITE_ANNOTATIONS will return all entries for which user john has both WRITE and WRITE_ANNOTATIONS permissions. Only study owners or administrators can query by this field. . #' @param internalRgaStatus Index status of the sample for the Recessive Gene Analysis. Allowed values: ['NOT_INDEXED INDEXED INVALID_PERMISSIONS INVALID_METADATA INVALID'] diff --git a/opencga-client/src/main/R/R/Study-methods.R b/opencga-client/src/main/R/R/Study-methods.R index 0b480943c23..9659a1d59e3 100644 --- a/opencga-client/src/main/R/R/Study-methods.R +++ b/opencga-client/src/main/R/R/Study-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -46,7 +46,7 @@ #' [*]: Required parameter #' @export -setMethod("studyClient", "OpencgaR", function(OpencgaR, group, members, templateId, variableSet, studies, study, endpointName, params=NULL, ...) { +setMethod("studyClient", "OpencgaR", function(OpencgaR, members, templateId, study, variableSet, group, studies, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/studies/acl/{members}/update: diff --git a/opencga-client/src/main/R/R/User-methods.R b/opencga-client/src/main/R/R/User-methods.R index f347e8cd017..91cba91802d 100644 --- a/opencga-client/src/main/R/R/User-methods.R +++ b/opencga-client/src/main/R/R/User-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. @@ -38,7 +38,7 @@ #' [*]: Required parameter #' @export -setMethod("userClient", "OpencgaR", function(OpencgaR, filterId, users, user, endpointName, params=NULL, ...) { +setMethod("userClient", "OpencgaR", function(OpencgaR, user, filterId, users, endpointName, params=NULL, ...) { switch(endpointName, #' @section Endpoint /{apiVersion}/users/login: diff --git a/opencga-client/src/main/R/R/Variant-methods.R b/opencga-client/src/main/R/R/Variant-methods.R index 40838d6adfe..3ad2940ffc6 100644 --- a/opencga-client/src/main/R/R/Variant-methods.R +++ b/opencga-client/src/main/R/R/Variant-methods.R @@ -2,7 +2,7 @@ # WARNING: AUTOGENERATED CODE # # This code was generated by a tool. -# Autogenerated on: 2023-10-04 +# Autogenerated on: 2023-10-20 # # Manual changes to this file may cause unexpected behavior in your application. # Manual changes to this file will be overwritten if the code is regenerated. diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AdminClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AdminClient.java index 96be750670b..4b1ffc655ed 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AdminClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AdminClient.java @@ -25,6 +25,7 @@ import org.opencb.opencga.core.models.admin.JWTParams; import org.opencb.opencga.core.models.admin.UserCreateParams; import org.opencb.opencga.core.models.admin.UserImportParams; +import org.opencb.opencga.core.models.admin.UserUpdateGroup; import org.opencb.opencga.core.models.sample.Sample; import org.opencb.opencga.core.models.study.Group; import org.opencb.opencga.core.models.user.User; @@ -35,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -44,7 +45,7 @@ /** * This class contains methods for the Admin webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: admin */ public class AdminClient extends AbstractParentClient { @@ -165,4 +166,19 @@ public RestResponse syncUsers(GroupSyncParams data) throws ClientExceptio params.put("body", data); return execute("admin", null, "users", null, "sync", params, POST, Group.class); } + + /** + * Add or remove users from existing groups. + * @param user User ID. + * @param data JSON containing the parameters. + * @param params Map containing any of the following optional parameters. + * action: Action to be performed: ADD or REMOVE user to/from groups. + * @return a RestResponse object. + * @throws ClientException ClientException if there is any server error. + */ + public RestResponse usersUpdateGroups(String user, UserUpdateGroup data, ObjectMap params) throws ClientException { + params = params != null ? params : new ObjectMap(); + params.put("body", data); + return execute("admin/users", user, "groups", null, "update", params, POST, Group.class); + } } diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AlignmentClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AlignmentClient.java index e1ddc11bfa8..3f34d8a1ae5 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AlignmentClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/AlignmentClient.java @@ -40,7 +40,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -49,7 +49,7 @@ /** * This class contains methods for the Alignment webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: analysis/alignment */ public class AlignmentClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ClinicalAnalysisClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ClinicalAnalysisClient.java index 91445e510b3..8af49e36b9c 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ClinicalAnalysisClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ClinicalAnalysisClient.java @@ -51,7 +51,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -60,7 +60,7 @@ /** * This class contains methods for the ClinicalAnalysis webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: analysis/clinical */ public class ClinicalAnalysisClient extends AbstractParentClient { @@ -127,10 +127,12 @@ public RestResponse create(ClinicalAnalysisCreateParams data, * @param field Comma separated list of fields for which to obtain the distinct values. * @param params Map containing any of the following optional parameters. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list of Clinical Analysis IDs up to a maximum of 100. + * id: Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list of Clinical Analysis UUIDs up to a maximum of 100. * type: Clinical Analysis type. - * disorder: Clinical Analysis disorder. + * disorder: Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. * files: Clinical Analysis files. * sample: Sample associated to the proband or any member of a family. * individual: Proband or any member of a family. @@ -166,11 +168,13 @@ public RestResponse distinct(String field, ObjectMap params) throws C * @param field Comma separated list of fields for which to obtain the distinct values. * @param params Map containing any of the following optional parameters. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list of Interpretation IDs up to a maximum of 100. + * id: Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list of Interpretation UUIDs up to a maximum of 100. * clinicalAnalysisId: Clinical Analysis id. * analystId: Analyst ID. - * methodName: Interpretation method name. + * methodName: Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' + * e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * panels: Interpretation panels. * primaryFindings: Interpretation primary findings. * secondaryFindings: Interpretation secondary findings. @@ -197,11 +201,13 @@ public RestResponse distinctInterpretation(String field, ObjectMap pa * skip: Number of results to skip. * sort: Sort the results. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list of Interpretation IDs up to a maximum of 100. + * id: Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list of Interpretation UUIDs up to a maximum of 100. * clinicalAnalysisId: Clinical Analysis id. * analystId: Analyst ID. - * methodName: Interpretation method name. + * methodName: Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' + * e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * panels: Interpretation panels. * primaryFindings: Interpretation primary findings. * secondaryFindings: Interpretation secondary findings. @@ -614,10 +620,12 @@ public RestResponse summaryRgaVariant(ObjectMap params * skip: Number of results to skip. * count: Get the total number of results matching the query. Deactivated by default. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list of Clinical Analysis IDs up to a maximum of 100. + * id: Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list of Clinical Analysis UUIDs up to a maximum of 100. * type: Clinical Analysis type. - * disorder: Clinical Analysis disorder. + * disorder: Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. * files: Clinical Analysis files. * sample: Sample associated to the proband or any member of a family. * individual: Proband or any member of a family. diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/CohortClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/CohortClient.java index 95f8b5eda99..79b1257e020 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/CohortClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/CohortClient.java @@ -37,7 +37,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -46,7 +46,7 @@ /** * This class contains methods for the Cohort webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: cohorts */ public class CohortClient extends AbstractParentClient { @@ -144,8 +144,10 @@ public RestResponse create(CohortCreateParams data, ObjectMap params) th * @param field Comma separated list of fields for which to obtain the distinct values. * @param params Map containing any of the following optional parameters. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list of cohort IDs up to a maximum of 100. - * name: Comma separated list of cohort names up to a maximum of 100. + * id: Comma separated list of cohort IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * name: Comma separated list of cohort names up to a maximum of 100. Also admits basic regular expressions using the operator + * '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list of cohort IDs up to a maximum of 100. * type: Cohort type. * creationDate: creationDate. @@ -182,7 +184,8 @@ public RestResponse distinct(String field, ObjectMap params) throws Clie * modificationDate: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * internalStatus: Filter by internal status. * status: Filter by status. - * phenotypes: Comma separated list of phenotype ids or names. + * phenotypes: Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * annotation: Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit * http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. * acl: Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. Example: @@ -210,8 +213,10 @@ public RestResponse generate(CohortGenerateParams data, ObjectMap params * count: Get the total number of results matching the query. Deactivated by default. * flattenAnnotations: Flatten the annotations?. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list of cohort IDs up to a maximum of 100. - * name: Comma separated list of cohort names up to a maximum of 100. + * id: Comma separated list of cohort IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * name: Comma separated list of cohort names up to a maximum of 100. Also admits basic regular expressions using the operator + * '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list of cohort IDs up to a maximum of 100. * type: Cohort type. * creationDate: creationDate. diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java index cb08168920f..fe5f78505a9 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/DiseasePanelClient.java @@ -35,7 +35,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -44,7 +44,7 @@ /** * This class contains methods for the DiseasePanel webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: panels */ public class DiseasePanelClient extends AbstractParentClient { @@ -93,17 +93,27 @@ public RestResponse create(PanelCreateParams data, ObjectMap params) thro * @param field Comma separated list of fields for which to obtain the distinct values. * @param params Map containing any of the following optional parameters. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list of panel IDs up to a maximum of 100. + * id: Comma separated list of panel IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list of panel UUIDs up to a maximum of 100. - * name: Comma separated list of panel names up to a maximum of 100. + * name: Comma separated list of panel names up to a maximum of 100. Also admits basic regular expressions using the operator + * '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * internalStatus: Filter by internal status. - * disorders: Comma separated list of disorder ids or names. - * variants: Comma separated list of variant ids. - * genes: Comma separated list of gene ids. + * disorders: Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.. Also admits basic regular + * expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case + * insensitive search. + * variants: Comma separated list of variant ids. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * genes: Comma separated list of gene ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' + * e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * source: Comma separated list of source ids or names. - * regions: Comma separated list of regions. - * categories: Comma separated list of category names. - * tags: Panel tags. + * regions: Comma separated list of regions. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' + * e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * categories: Comma separated list of category names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * tags: Panel tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + * sensitive, '~/value/i' for case insensitive search. * deleted: Boolean to retrieve deleted entries. * status: Filter by status. * creationDate: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. @@ -149,17 +159,27 @@ public RestResponse importPanels(PanelImportParams data, ObjectMap params) * skip: Number of results to skip. * count: Get the total number of results matching the query. Deactivated by default. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list of panel IDs up to a maximum of 100. + * id: Comma separated list of panel IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list of panel UUIDs up to a maximum of 100. - * name: Comma separated list of panel names up to a maximum of 100. + * name: Comma separated list of panel names up to a maximum of 100. Also admits basic regular expressions using the operator + * '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * internalStatus: Filter by internal status. - * disorders: Comma separated list of disorder ids or names. - * variants: Comma separated list of variant ids. - * genes: Comma separated list of gene ids. + * disorders: Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.. Also admits basic regular + * expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case + * insensitive search. + * variants: Comma separated list of variant ids. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * genes: Comma separated list of gene ids. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' + * e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * source: Comma separated list of source ids or names. - * regions: Comma separated list of regions. - * categories: Comma separated list of category names. - * tags: Panel tags. + * regions: Comma separated list of regions. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' + * e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * categories: Comma separated list of category names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * tags: Panel tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + * sensitive, '~/value/i' for case insensitive search. * deleted: Boolean to retrieve deleted entries. * status: Filter by status. * creationDate: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java index bdc6c656bbb..abc8d908670 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FamilyClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -45,7 +45,7 @@ /** * This class contains methods for the Family webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: families */ public class FamilyClient extends AbstractParentClient { @@ -145,14 +145,18 @@ public RestResponse create(FamilyCreateParams data, ObjectMap params) th * @param field Comma separated list of fields for which to obtain the distinct values. * @param params Map containing any of the following optional parameters. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list family IDs up to a maximum of 100. - * name: Comma separated list family names up to a maximum of 100. + * id: Comma separated list family IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * name: Comma separated list family names up to a maximum of 100. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list family UUIDs up to a maximum of 100. * members: Comma separated list of family members. * expectedSize: Expected size of the family (number of members). * samples: Comma separated list of member's samples. - * phenotypes: Comma separated list of phenotype ids or names. - * disorders: Comma separated list of disorder ids or names. + * phenotypes: Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * disorders: Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * creationDate: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * modificationDate: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * deleted: Boolean to retrieve deleted entries. @@ -184,14 +188,18 @@ public RestResponse distinct(String field, ObjectMap params) throws Clie * count: Get the total number of results matching the query. Deactivated by default. * flattenAnnotations: Flatten the annotations?. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list family IDs up to a maximum of 100. - * name: Comma separated list family names up to a maximum of 100. + * id: Comma separated list family IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * name: Comma separated list family names up to a maximum of 100. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list family UUIDs up to a maximum of 100. * members: Comma separated list of family members. * expectedSize: Expected size of the family (number of members). * samples: Comma separated list of member's samples. - * phenotypes: Comma separated list of phenotype ids or names. - * disorders: Comma separated list of disorder ids or names. + * phenotypes: Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * disorders: Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * creationDate: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * modificationDate: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * deleted: Boolean to retrieve deleted entries. diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java index f44d3e22ade..10e7daa866f 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/FileClient.java @@ -43,7 +43,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -52,7 +52,7 @@ /** * This class contains methods for the File webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: files */ public class FileClient extends AbstractParentClient { @@ -164,11 +164,15 @@ public RestResponse create(FileCreateParams data, ObjectMap params) throws * @param field Comma separated list of fields for which to obtain the distinct values. * @param params Map containing any of the following optional parameters. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list of file IDs up to a maximum of 100. + * id: Comma separated list of file IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list file UUIDs up to a maximum of 100. - * name: Comma separated list of file names. - * path: Comma separated list of paths. - * uri: Comma separated list of uris. + * name: Comma separated list of file names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' + * e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * path: Comma separated list of paths. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. + * uri: Comma separated list of uris. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. * type: File type, either FILE or DIRECTORY. * bioformat: Comma separated Bioformat values. For existing Bioformats see files/bioformats. * format: Comma separated Format values. For existing Formats see files/formats. @@ -181,7 +185,8 @@ public RestResponse create(FileCreateParams data, ObjectMap params) throws * creationDate: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * modificationDate: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * description: Description. - * tags: Tags. + * tags: Tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + * sensitive, '~/value/i' for case insensitive search. * size: File size. * sampleIds: Comma separated list sample IDs or UUIDs up to a maximum of 100. * jobId: Job ID that created the file(s) or folder(s). @@ -290,11 +295,15 @@ public RestResponse runPostlink(PostLinkToolParams data, ObjectMap params) * count: Get the total number of results matching the query. Deactivated by default. * flattenAnnotations: Boolean indicating to flatten the annotations. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list of file IDs up to a maximum of 100. + * id: Comma separated list of file IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list file UUIDs up to a maximum of 100. - * name: Comma separated list of file names. - * path: Comma separated list of paths. - * uri: Comma separated list of uris. + * name: Comma separated list of file names. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' + * e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * path: Comma separated list of paths. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. + * uri: Comma separated list of uris. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. * type: File type, either FILE or DIRECTORY. * bioformat: Comma separated Bioformat values. For existing Bioformats see files/bioformats. * format: Comma separated Format values. For existing Formats see files/formats. @@ -307,7 +316,8 @@ public RestResponse runPostlink(PostLinkToolParams data, ObjectMap params) * creationDate: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * modificationDate: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * description: Description. - * tags: Tags. + * tags: Tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + * sensitive, '~/value/i' for case insensitive search. * size: File size. * sampleIds: Comma separated list sample IDs or UUIDs up to a maximum of 100. * jobId: Job ID that created the file(s) or folder(s). diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java index 9af11491608..364a0f3fd71 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/GA4GHClient.java @@ -27,7 +27,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -36,7 +36,7 @@ /** * This class contains methods for the GA4GH webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: ga4gh */ public class GA4GHClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java index 53a50f476bc..0dc532fa526 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/IndividualClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -45,7 +45,7 @@ /** * This class contains methods for the Individual webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: individuals */ public class IndividualClient extends AbstractParentClient { @@ -153,20 +153,27 @@ public RestResponse create(IndividualCreateParams data, ObjectMap pa * @param field Comma separated list of fields for which to obtain the distinct values. * @param params Map containing any of the following optional parameters. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list individual IDs up to a maximum of 100. + * id: Comma separated list individual IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list individual UUIDs up to a maximum of 100. - * name: Comma separated list individual names up to a maximum of 100. + * name: Comma separated list individual names up to a maximum of 100. Also admits basic regular expressions using the operator + * '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * familyIds: Comma separated list of family ids the individuals may belong to. * father: Father ID, name or UUID. * mother: Mother ID, name or UUID. * samples: Sample ID, name or UUID. * sex: Individual sex. - * ethnicity: Individual ethnicity. + * ethnicity: Individual ethnicity. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. * dateOfBirth: Individual date of birth. - * disorders: Comma separated list of disorder ids or names. - * phenotypes: Comma separated list of phenotype ids or names. - * populationName: Population name. - * populationSubpopulation: Subpopulation name. + * disorders: Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * phenotypes: Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * populationName: Population name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. + * populationSubpopulation: Subpopulation name. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * karyotypicSex: Individual karyotypic sex. * lifeStatus: Individual life status. * internalStatus: Filter by internal status. @@ -200,20 +207,27 @@ public RestResponse distinct(String field, ObjectMap params) throws Clie * count: Get the total number of results matching the query. Deactivated by default. * flattenAnnotations: Flatten the annotations?. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list individual IDs up to a maximum of 100. + * id: Comma separated list individual IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list individual UUIDs up to a maximum of 100. - * name: Comma separated list individual names up to a maximum of 100. + * name: Comma separated list individual names up to a maximum of 100. Also admits basic regular expressions using the operator + * '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * father: Father ID, name or UUID. * mother: Mother ID, name or UUID. * samples: Sample ID, name or UUID. * familyIds: Comma separated list of family ids the individuals may belong to. * sex: Individual sex. * dateOfBirth: Individual date of birth. - * ethnicity: Individual ethnicity. - * disorders: Comma separated list of disorder ids or names. - * phenotypes: Comma separated list of phenotype ids or names. - * populationName: Population name. - * populationSubpopulation: Subpopulation name. + * ethnicity: Individual ethnicity. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. + * disorders: Comma separated list of disorder ids or names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * phenotypes: Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * populationName: Population name. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. + * populationSubpopulation: Subpopulation name. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * karyotypicSex: Individual karyotypic sex. * lifeStatus: Individual life status. * internalStatus: Filter by internal status. diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java index 0652bc2436d..846bc56452e 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/JobClient.java @@ -37,7 +37,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -46,7 +46,7 @@ /** * This class contains methods for the Job webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: jobs */ public class JobClient extends AbstractParentClient { @@ -120,9 +120,11 @@ public RestResponse create(JobCreateParams data, ObjectMap params) throws C * @param params Map containing any of the following optional parameters. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. * otherStudies: Flag indicating the entries being queried can belong to any related study, not just the primary one. - * id: Comma separated list of job IDs up to a maximum of 100. + * id: Comma separated list of job IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list of job UUIDs up to a maximum of 100. - * toolId: Tool ID executed by the job. + * toolId: Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. * toolType: Tool type executed by the job [OPERATION, ANALYSIS]. * userId: User that created the job. * priority: Priority of the job. @@ -176,9 +178,11 @@ public RestResponse retry(JobRetryParams data, ObjectMap params) throws Cli * count: Get the total number of results matching the query. Deactivated by default. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. * otherStudies: Flag indicating the entries being queried can belong to any related study, not just the primary one. - * id: Comma separated list of job IDs up to a maximum of 100. + * id: Comma separated list of job IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list of job UUIDs up to a maximum of 100. - * toolId: Tool ID executed by the job. + * toolId: Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. * toolType: Tool type executed by the job [OPERATION, ANALYSIS]. * userId: User that created the job. * priority: Priority of the job. @@ -211,7 +215,8 @@ public RestResponse search(ObjectMap params) throws ClientException { * internalStatus: Filter by internal status. * priority: Priority of the job. * userId: User that created the job. - * toolId: Tool ID executed by the job. + * toolId: Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. * @return a RestResponse object. * @throws ClientException ClientException if there is any server error. */ diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java index b934db26203..46feb9030f8 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/MetaClient.java @@ -28,7 +28,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -37,7 +37,7 @@ /** * This class contains methods for the Meta webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: meta */ public class MetaClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java index 64f54763f2e..f4dd61aaaf0 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/ProjectClient.java @@ -32,7 +32,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -41,7 +41,7 @@ /** * This class contains methods for the Project webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: projects */ public class ProjectClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java index d0f185066a1..5e42759715a 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/SampleClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -45,7 +45,7 @@ /** * This class contains methods for the Sample webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: samples */ public class SampleClient extends AbstractParentClient { @@ -145,7 +145,8 @@ public RestResponse create(SampleCreateParams data, ObjectMap params) th * @param field Comma separated list of fields for which to obtain the distinct values. * @param params Map containing any of the following optional parameters. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list sample IDs up to a maximum of 100. + * id: Comma separated list sample IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list sample UUIDs up to a maximum of 100. * somatic: Somatic sample. * individualId: Individual ID or UUID. @@ -162,7 +163,8 @@ public RestResponse create(SampleCreateParams data, ObjectMap params) th * collectionFrom: Collection from. * collectionType: Collection type. * collectionMethod: Collection method. - * phenotypes: Comma separated list of phenotype ids or names. + * phenotypes: Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * annotation: Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit * http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. * acl: Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. Example: @@ -221,7 +223,8 @@ public RestResponse load(String file, ObjectMap params) throws ClientExc * includeIndividual: Include Individual object as an attribute. * flattenAnnotations: Flatten the annotations?. * study: Study [[user@]project:]study where study and project can be either the ID or UUID. - * id: Comma separated list sample IDs up to a maximum of 100. + * id: Comma separated list sample IDs up to a maximum of 100. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * uuid: Comma separated list sample UUIDs up to a maximum of 100. * somatic: Somatic sample. * individualId: Individual ID or UUID. @@ -238,7 +241,8 @@ public RestResponse load(String file, ObjectMap params) throws ClientExc * collectionFrom: Collection from. * collectionType: Collection type. * collectionMethod: Collection method. - * phenotypes: Comma separated list of phenotype ids or names. + * phenotypes: Comma separated list of phenotype ids or names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * annotation: Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit * http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. * acl: Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. Example: diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java index 028975cafd6..5c8e425988a 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/StudyClient.java @@ -45,7 +45,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -54,7 +54,7 @@ /** * This class contains methods for the Study webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: studies */ public class StudyClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java index 31fae0170a4..8f340c1e1c0 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/UserClient.java @@ -36,7 +36,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -45,7 +45,7 @@ /** * This class contains methods for the User webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: users */ public class UserClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java index 89f512c31da..f89aca9752a 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantClient.java @@ -62,7 +62,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -71,7 +71,7 @@ /** * This class contains methods for the Variant webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: analysis/variant */ public class VariantClient extends AbstractParentClient { diff --git a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java index 539f4d2d5d0..a6ad3261f56 100644 --- a/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java +++ b/opencga-client/src/main/java/org/opencb/opencga/client/rest/clients/VariantOperationClient.java @@ -50,7 +50,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. -* Autogenerated on: 2023-10-04 +* Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -59,7 +59,7 @@ /** * This class contains methods for the VariantOperation webservices. - * Client version: 2.8.4-SNAPSHOT + * Client version: 2.12.0-SNAPSHOT * PATH: operation */ public class VariantOperationClient extends AbstractParentClient { diff --git a/opencga-client/src/main/javascript/Admin.js b/opencga-client/src/main/javascript/Admin.js index 43448df0a88..d3430779824 100644 --- a/opencga-client/src/main/javascript/Admin.js +++ b/opencga-client/src/main/javascript/Admin.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -116,4 +116,15 @@ export default class Admin extends OpenCGAParentClass { return this._post("admin", null, "users", null, "sync", data); } + /** Add or remove users from existing groups + * @param {String} user - User ID. + * @param {Object} data - JSON containing the parameters. + * @param {Object} [params] - The Object containing the following optional parameters: + * @param {"ADD REMOVE"} [params.action = "ADD"] - Action to be performed: ADD or REMOVE user to/from groups. The default value is ADD. + * @returns {Promise} Promise object in the form of RestResponse instance. + */ + usersUpdateGroups(user, data, params) { + return this._post("admin/users", user, "groups", null, "update", data, params); + } + } \ No newline at end of file diff --git a/opencga-client/src/main/javascript/Alignment.js b/opencga-client/src/main/javascript/Alignment.js index 347d5d3c4b3..7fed5e60f52 100644 --- a/opencga-client/src/main/javascript/Alignment.js +++ b/opencga-client/src/main/javascript/Alignment.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. diff --git a/opencga-client/src/main/javascript/ClinicalAnalysis.js b/opencga-client/src/main/javascript/ClinicalAnalysis.js index 8c4b1fc8f09..871a204c82b 100644 --- a/opencga-client/src/main/javascript/ClinicalAnalysis.js +++ b/opencga-client/src/main/javascript/ClinicalAnalysis.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -76,10 +76,12 @@ export default class ClinicalAnalysis extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of Clinical Analysis IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular + * expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list of Clinical Analysis UUIDs up to a maximum of 100. * @param {String} [params.type] - Clinical Analysis type. - * @param {String} [params.disorder] - Clinical Analysis disorder. + * @param {String} [params.disorder] - Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.files] - Clinical Analysis files. * @param {String} [params.sample] - Sample associated to the proband or any member of a family. * @param {String} [params.individual] - Proband or any member of a family. @@ -112,11 +114,13 @@ export default class ClinicalAnalysis extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of Interpretation IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions + * using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list of Interpretation UUIDs up to a maximum of 100. * @param {String} [params.clinicalAnalysisId] - Clinical Analysis id. * @param {String} [params.analystId] - Analyst ID. - * @param {String} [params.methodName] - Interpretation method name. + * @param {String} [params.methodName] - Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.panels] - Interpretation panels. * @param {String} [params.primaryFindings] - Interpretation primary findings. * @param {String} [params.secondaryFindings] - Interpretation secondary findings. @@ -140,11 +144,13 @@ export default class ClinicalAnalysis extends OpenCGAParentClass { * @param {Number} [params.skip] - Number of results to skip. * @param {Boolean} [params.sort] - Sort the results. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of Interpretation IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list of Interpretation IDs up to a maximum of 100. Also admits basic regular expressions + * using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list of Interpretation UUIDs up to a maximum of 100. * @param {String} [params.clinicalAnalysisId] - Clinical Analysis id. * @param {String} [params.analystId] - Analyst ID. - * @param {String} [params.methodName] - Interpretation method name. + * @param {String} [params.methodName] - Interpretation method name. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.panels] - Interpretation panels. * @param {String} [params.primaryFindings] - Interpretation primary findings. * @param {String} [params.secondaryFindings] - Interpretation secondary findings. @@ -513,10 +519,12 @@ export default class ClinicalAnalysis extends OpenCGAParentClass { * @param {Boolean} [params.count = "false"] - Get the total number of results matching the query. Deactivated by default. The default * value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of Clinical Analysis IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list of Clinical Analysis IDs up to a maximum of 100. Also admits basic regular + * expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list of Clinical Analysis UUIDs up to a maximum of 100. * @param {String} [params.type] - Clinical Analysis type. - * @param {String} [params.disorder] - Clinical Analysis disorder. + * @param {String} [params.disorder] - Clinical Analysis disorder. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.files] - Clinical Analysis files. * @param {String} [params.sample] - Sample associated to the proband or any member of a family. * @param {String} [params.individual] - Proband or any member of a family. diff --git a/opencga-client/src/main/javascript/Cohort.js b/opencga-client/src/main/javascript/Cohort.js index 1f2e74a0fda..50dc8bd3d78 100644 --- a/opencga-client/src/main/javascript/Cohort.js +++ b/opencga-client/src/main/javascript/Cohort.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -101,8 +101,10 @@ export default class Cohort extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of cohort IDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list of cohort names up to a maximum of 100. + * @param {String} [params.id] - Comma separated list of cohort IDs up to a maximum of 100. Also admits basic regular expressions using + * the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.name] - Comma separated list of cohort names up to a maximum of 100. Also admits basic regular expressions + * using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list of cohort IDs up to a maximum of 100. * @param {String} [params.type] - Cohort type. * @param {String} [params.creationDate] - creationDate. @@ -135,7 +137,8 @@ export default class Cohort extends OpenCGAParentClass { * @param {String} [params.modificationDate] - Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.internalStatus] - Filter by internal status. * @param {String} [params.status] - Filter by status. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. + * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.annotation] - Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit * http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. * @param {String} [params.acl] - Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. @@ -161,8 +164,10 @@ export default class Cohort extends OpenCGAParentClass { * value is false. * @param {Boolean} [params.flattenAnnotations = "false"] - Flatten the annotations?. The default value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of cohort IDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list of cohort names up to a maximum of 100. + * @param {String} [params.id] - Comma separated list of cohort IDs up to a maximum of 100. Also admits basic regular expressions using + * the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.name] - Comma separated list of cohort names up to a maximum of 100. Also admits basic regular expressions + * using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list of cohort IDs up to a maximum of 100. * @param {String} [params.type] - Cohort type. * @param {String} [params.creationDate] - creationDate. diff --git a/opencga-client/src/main/javascript/DiseasePanel.js b/opencga-client/src/main/javascript/DiseasePanel.js index dcf0f9ea625..39643fabe88 100644 --- a/opencga-client/src/main/javascript/DiseasePanel.js +++ b/opencga-client/src/main/javascript/DiseasePanel.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -62,17 +62,27 @@ export default class DiseasePanel extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of panel IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list of panel IDs up to a maximum of 100. Also admits basic regular expressions using + * the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list of panel UUIDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list of panel names up to a maximum of 100. + * @param {String} [params.name] - Comma separated list of panel names up to a maximum of 100. Also admits basic regular expressions + * using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.internalStatus] - Filter by internal status. - * @param {String} [params.disorders] - Comma separated list of disorder ids or names. - * @param {String} [params.variants] - Comma separated list of variant ids. - * @param {String} [params.genes] - Comma separated list of gene ids. + * @param {String} [params.disorders] - Comma separated list of disorder ids or names. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.. Also admits basic + * regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive + * search. + * @param {String} [params.variants] - Comma separated list of variant ids. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.genes] - Comma separated list of gene ids. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.source] - Comma separated list of source ids or names. - * @param {String} [params.regions] - Comma separated list of regions. - * @param {String} [params.categories] - Comma separated list of category names. - * @param {String} [params.tags] - Panel tags. + * @param {String} [params.regions] - Comma separated list of regions. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.categories] - Comma separated list of category names. Also admits basic regular expressions using the operator + * '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.tags] - Panel tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {Boolean} [params.deleted = "false"] - Boolean to retrieve deleted entries. The default value is false. * @param {String} [params.status] - Filter by status. * @param {String} [params.creationDate] - Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. @@ -112,17 +122,27 @@ export default class DiseasePanel extends OpenCGAParentClass { * @param {Boolean} [params.count = "false"] - Get the total number of results matching the query. Deactivated by default. The default * value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of panel IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list of panel IDs up to a maximum of 100. Also admits basic regular expressions using + * the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list of panel UUIDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list of panel names up to a maximum of 100. + * @param {String} [params.name] - Comma separated list of panel names up to a maximum of 100. Also admits basic regular expressions + * using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.internalStatus] - Filter by internal status. - * @param {String} [params.disorders] - Comma separated list of disorder ids or names. - * @param {String} [params.variants] - Comma separated list of variant ids. - * @param {String} [params.genes] - Comma separated list of gene ids. + * @param {String} [params.disorders] - Comma separated list of disorder ids or names. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search.. Also admits basic + * regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive + * search. + * @param {String} [params.variants] - Comma separated list of variant ids. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.genes] - Comma separated list of gene ids. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.source] - Comma separated list of source ids or names. - * @param {String} [params.regions] - Comma separated list of regions. - * @param {String} [params.categories] - Comma separated list of category names. - * @param {String} [params.tags] - Panel tags. + * @param {String} [params.regions] - Comma separated list of regions. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.categories] - Comma separated list of category names. Also admits basic regular expressions using the operator + * '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.tags] - Panel tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. + * '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {Boolean} [params.deleted = "false"] - Boolean to retrieve deleted entries. The default value is false. * @param {String} [params.status] - Filter by status. * @param {String} [params.creationDate] - Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. diff --git a/opencga-client/src/main/javascript/Family.js b/opencga-client/src/main/javascript/Family.js index ffc8c0ae151..e69b16398cd 100644 --- a/opencga-client/src/main/javascript/Family.js +++ b/opencga-client/src/main/javascript/Family.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -104,14 +104,18 @@ export default class Family extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list family IDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list family names up to a maximum of 100. + * @param {String} [params.id] - Comma separated list family IDs up to a maximum of 100. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.name] - Comma separated list family names up to a maximum of 100. Also admits basic regular expressions using + * the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list family UUIDs up to a maximum of 100. * @param {String} [params.members] - Comma separated list of family members. * @param {Number} [params.expectedSize] - Expected size of the family (number of members). * @param {String} [params.samples] - Comma separated list of member's samples. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. - * @param {String} [params.disorders] - Comma separated list of disorder ids or names. + * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.disorders] - Comma separated list of disorder ids or names. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.creationDate] - Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.modificationDate] - Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {Boolean} [params.deleted = "false"] - Boolean to retrieve deleted entries. The default value is false. @@ -140,14 +144,18 @@ export default class Family extends OpenCGAParentClass { * value is false. * @param {Boolean} [params.flattenAnnotations = "false"] - Flatten the annotations?. The default value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list family IDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list family names up to a maximum of 100. + * @param {String} [params.id] - Comma separated list family IDs up to a maximum of 100. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.name] - Comma separated list family names up to a maximum of 100. Also admits basic regular expressions using + * the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list family UUIDs up to a maximum of 100. * @param {String} [params.members] - Comma separated list of family members. * @param {Number} [params.expectedSize] - Expected size of the family (number of members). * @param {String} [params.samples] - Comma separated list of member's samples. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. - * @param {String} [params.disorders] - Comma separated list of disorder ids or names. + * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.disorders] - Comma separated list of disorder ids or names. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.creationDate] - Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.modificationDate] - Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {Boolean} [params.deleted = "false"] - Boolean to retrieve deleted entries. The default value is false. diff --git a/opencga-client/src/main/javascript/File.js b/opencga-client/src/main/javascript/File.js index 78177eea8ca..f91c4393880 100644 --- a/opencga-client/src/main/javascript/File.js +++ b/opencga-client/src/main/javascript/File.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -112,11 +112,15 @@ export default class File extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of file IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list of file IDs up to a maximum of 100. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list file UUIDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list of file names. - * @param {String} [params.path] - Comma separated list of paths. - * @param {String} [params.uri] - Comma separated list of uris. + * @param {String} [params.name] - Comma separated list of file names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.path] - Comma separated list of paths. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.uri] - Comma separated list of uris. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.type] - File type, either FILE or DIRECTORY. * @param {String} [params.bioformat] - Comma separated Bioformat values. For existing Bioformats see files/bioformats. * @param {String} [params.format] - Comma separated Format values. For existing Formats see files/formats. @@ -129,7 +133,8 @@ export default class File extends OpenCGAParentClass { * @param {String} [params.creationDate] - Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.modificationDate] - Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.description] - Description. - * @param {String} [params.tags] - Tags. + * @param {String} [params.tags] - Tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' + * for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.size] - File size. * @param {String} [params.sampleIds] - Comma separated list sample IDs or UUIDs up to a maximum of 100. * @param {String} [params.jobId] - Job ID that created the file(s) or folder(s). @@ -220,11 +225,15 @@ export default class File extends OpenCGAParentClass { * value is false. * @param {Boolean} [params.flattenAnnotations = "false"] - Boolean indicating to flatten the annotations. The default value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list of file IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list of file IDs up to a maximum of 100. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list file UUIDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list of file names. - * @param {String} [params.path] - Comma separated list of paths. - * @param {String} [params.uri] - Comma separated list of uris. + * @param {String} [params.name] - Comma separated list of file names. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.path] - Comma separated list of paths. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.uri] - Comma separated list of uris. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.type] - File type, either FILE or DIRECTORY. * @param {String} [params.bioformat] - Comma separated Bioformat values. For existing Bioformats see files/bioformats. * @param {String} [params.format] - Comma separated Format values. For existing Formats see files/formats. @@ -237,7 +246,8 @@ export default class File extends OpenCGAParentClass { * @param {String} [params.creationDate] - Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.modificationDate] - Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. * @param {String} [params.description] - Description. - * @param {String} [params.tags] - Tags. + * @param {String} [params.tags] - Tags. Also admits basic regular expressions using the operator '~', i.e. '~{perl-regex}' e.g. '~value' + * for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.size] - File size. * @param {String} [params.sampleIds] - Comma separated list sample IDs or UUIDs up to a maximum of 100. * @param {String} [params.jobId] - Job ID that created the file(s) or folder(s). diff --git a/opencga-client/src/main/javascript/GA4GH.js b/opencga-client/src/main/javascript/GA4GH.js index 60276c7c692..e7a55972061 100644 --- a/opencga-client/src/main/javascript/GA4GH.js +++ b/opencga-client/src/main/javascript/GA4GH.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. diff --git a/opencga-client/src/main/javascript/Individual.js b/opencga-client/src/main/javascript/Individual.js index 5f9ac89ae24..f4df47e4855 100644 --- a/opencga-client/src/main/javascript/Individual.js +++ b/opencga-client/src/main/javascript/Individual.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -111,20 +111,27 @@ export default class Individual extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list individual IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list individual IDs up to a maximum of 100. Also admits basic regular expressions using + * the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list individual UUIDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list individual names up to a maximum of 100. + * @param {String} [params.name] - Comma separated list individual names up to a maximum of 100. Also admits basic regular expressions + * using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.familyIds] - Comma separated list of family ids the individuals may belong to. * @param {String} [params.father] - Father ID, name or UUID. * @param {String} [params.mother] - Mother ID, name or UUID. * @param {String} [params.samples] - Sample ID, name or UUID. * @param {String} [params.sex] - Individual sex. - * @param {String} [params.ethnicity] - Individual ethnicity. + * @param {String} [params.ethnicity] - Individual ethnicity. Also admits basic regular expressions using the operator '~', i.e. '~{perl- + * regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.dateOfBirth] - Individual date of birth. - * @param {String} [params.disorders] - Comma separated list of disorder ids or names. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. - * @param {String} [params.populationName] - Population name. - * @param {String} [params.populationSubpopulation] - Subpopulation name. + * @param {String} [params.disorders] - Comma separated list of disorder ids or names. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.populationName] - Population name. Also admits basic regular expressions using the operator '~', i.e. '~{perl- + * regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.populationSubpopulation] - Subpopulation name. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.karyotypicSex] - Individual karyotypic sex. * @param {String} [params.lifeStatus] - Individual life status. * @param {String} [params.internalStatus] - Filter by internal status. @@ -155,20 +162,27 @@ export default class Individual extends OpenCGAParentClass { * value is false. * @param {Boolean} [params.flattenAnnotations = "false"] - Flatten the annotations?. The default value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list individual IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list individual IDs up to a maximum of 100. Also admits basic regular expressions using + * the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list individual UUIDs up to a maximum of 100. - * @param {String} [params.name] - Comma separated list individual names up to a maximum of 100. + * @param {String} [params.name] - Comma separated list individual names up to a maximum of 100. Also admits basic regular expressions + * using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.father] - Father ID, name or UUID. * @param {String} [params.mother] - Mother ID, name or UUID. * @param {String} [params.samples] - Sample ID, name or UUID. * @param {String} [params.familyIds] - Comma separated list of family ids the individuals may belong to. * @param {String} [params.sex] - Individual sex. * @param {String} [params.dateOfBirth] - Individual date of birth. - * @param {String} [params.ethnicity] - Individual ethnicity. - * @param {String} [params.disorders] - Comma separated list of disorder ids or names. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. - * @param {String} [params.populationName] - Population name. - * @param {String} [params.populationSubpopulation] - Subpopulation name. + * @param {String} [params.ethnicity] - Individual ethnicity. Also admits basic regular expressions using the operator '~', i.e. '~{perl- + * regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.disorders] - Comma separated list of disorder ids or names. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.populationName] - Population name. Also admits basic regular expressions using the operator '~', i.e. '~{perl- + * regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. + * @param {String} [params.populationSubpopulation] - Subpopulation name. Also admits basic regular expressions using the operator '~', + * i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.karyotypicSex] - Individual karyotypic sex. * @param {String} [params.lifeStatus] - Individual life status. * @param {String} [params.internalStatus] - Filter by internal status. diff --git a/opencga-client/src/main/javascript/Job.js b/opencga-client/src/main/javascript/Job.js index d5c6bff8f9f..e07556da3d5 100644 --- a/opencga-client/src/main/javascript/Job.js +++ b/opencga-client/src/main/javascript/Job.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -85,9 +85,11 @@ export default class Job extends OpenCGAParentClass { * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. * @param {Boolean} [params.otherStudies = "false"] - Flag indicating the entries being queried can belong to any related study, not just * the primary one. The default value is false. - * @param {String} [params.id] - Comma separated list of job IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list of job IDs up to a maximum of 100. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list of job UUIDs up to a maximum of 100. - * @param {String} [params.toolId] - Tool ID executed by the job. + * @param {String} [params.toolId] - Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.toolType] - Tool type executed by the job [OPERATION, ANALYSIS]. * @param {String} [params.userId] - User that created the job. * @param {String} [params.priority] - Priority of the job. @@ -136,9 +138,11 @@ export default class Job extends OpenCGAParentClass { * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. * @param {Boolean} [params.otherStudies = "false"] - Flag indicating the entries being queried can belong to any related study, not just * the primary one. The default value is false. - * @param {String} [params.id] - Comma separated list of job IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list of job IDs up to a maximum of 100. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list of job UUIDs up to a maximum of 100. - * @param {String} [params.toolId] - Tool ID executed by the job. + * @param {String} [params.toolId] - Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.toolType] - Tool type executed by the job [OPERATION, ANALYSIS]. * @param {String} [params.userId] - User that created the job. * @param {String} [params.priority] - Priority of the job. @@ -168,7 +172,8 @@ export default class Job extends OpenCGAParentClass { * @param {String} [params.internalStatus] - Filter by internal status. * @param {String} [params.priority] - Priority of the job. * @param {String} [params.userId] - User that created the job. - * @param {String} [params.toolId] - Tool ID executed by the job. + * @param {String} [params.toolId] - Tool ID executed by the job. Also admits basic regular expressions using the operator '~', i.e. + * '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @returns {Promise} Promise object in the form of RestResponse instance. */ top(params) { diff --git a/opencga-client/src/main/javascript/Meta.js b/opencga-client/src/main/javascript/Meta.js index 9c50397eed7..d9b2cd2e881 100644 --- a/opencga-client/src/main/javascript/Meta.js +++ b/opencga-client/src/main/javascript/Meta.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. diff --git a/opencga-client/src/main/javascript/Project.js b/opencga-client/src/main/javascript/Project.js index ac6b512a0f7..9b1cf62bd1d 100644 --- a/opencga-client/src/main/javascript/Project.js +++ b/opencga-client/src/main/javascript/Project.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. diff --git a/opencga-client/src/main/javascript/Sample.js b/opencga-client/src/main/javascript/Sample.js index 47638a1517b..3839ed68aab 100644 --- a/opencga-client/src/main/javascript/Sample.js +++ b/opencga-client/src/main/javascript/Sample.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. @@ -103,7 +103,8 @@ export default class Sample extends OpenCGAParentClass { * @param {String} field - Comma separated list of fields for which to obtain the distinct values. * @param {Object} [params] - The Object containing the following optional parameters: * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list sample IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list sample IDs up to a maximum of 100. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list sample UUIDs up to a maximum of 100. * @param {Boolean} [params.somatic] - Somatic sample. * @param {String} [params.individualId] - Individual ID or UUID. @@ -120,7 +121,8 @@ export default class Sample extends OpenCGAParentClass { * @param {String} [params.collectionFrom] - Collection from. * @param {String} [params.collectionType] - Collection type. * @param {String} [params.collectionMethod] - Collection method. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. + * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.annotation] - Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit * http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. * @param {String} [params.acl] - Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. @@ -173,7 +175,8 @@ export default class Sample extends OpenCGAParentClass { * @param {Boolean} [params.includeIndividual = "false"] - Include Individual object as an attribute. The default value is false. * @param {Boolean} [params.flattenAnnotations = "false"] - Flatten the annotations?. The default value is false. * @param {String} [params.study] - Study [[user@]project:]study where study and project can be either the ID or UUID. - * @param {String} [params.id] - Comma separated list sample IDs up to a maximum of 100. + * @param {String} [params.id] - Comma separated list sample IDs up to a maximum of 100. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.uuid] - Comma separated list sample UUIDs up to a maximum of 100. * @param {Boolean} [params.somatic] - Somatic sample. * @param {String} [params.individualId] - Individual ID or UUID. @@ -190,7 +193,8 @@ export default class Sample extends OpenCGAParentClass { * @param {String} [params.collectionFrom] - Collection from. * @param {String} [params.collectionType] - Collection type. * @param {String} [params.collectionMethod] - Collection method. - * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. + * @param {String} [params.phenotypes] - Comma separated list of phenotype ids or names. Also admits basic regular expressions using the + * operator '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search. * @param {String} [params.annotation] - Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit * http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. * @param {String} [params.acl] - Filter entries for which a user has the provided permissions. Format: acl={user}:{permissions}. diff --git a/opencga-client/src/main/javascript/Study.js b/opencga-client/src/main/javascript/Study.js index bd0909c995f..67950c510c5 100644 --- a/opencga-client/src/main/javascript/Study.js +++ b/opencga-client/src/main/javascript/Study.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. diff --git a/opencga-client/src/main/javascript/User.js b/opencga-client/src/main/javascript/User.js index 9a94f2dd9e5..b4a22fd6ca6 100644 --- a/opencga-client/src/main/javascript/User.js +++ b/opencga-client/src/main/javascript/User.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. diff --git a/opencga-client/src/main/javascript/Variant.js b/opencga-client/src/main/javascript/Variant.js index f470e79bc10..cdf8033409b 100644 --- a/opencga-client/src/main/javascript/Variant.js +++ b/opencga-client/src/main/javascript/Variant.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. diff --git a/opencga-client/src/main/javascript/VariantOperation.js b/opencga-client/src/main/javascript/VariantOperation.js index e1881513fd0..2bd14691589 100644 --- a/opencga-client/src/main/javascript/VariantOperation.js +++ b/opencga-client/src/main/javascript/VariantOperation.js @@ -12,7 +12,7 @@ * WARNING: AUTOGENERATED CODE * * This code was generated by a tool. - * Autogenerated on: 2023-10-04 + * Autogenerated on: 2023-10-20 * * Manual changes to this file may cause unexpected behavior in your application. * Manual changes to this file will be overwritten if the code is regenerated. diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/admin_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/admin_client.py index dd26a83ef54..9d3c5c70e4b 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/admin_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/admin_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class Admin(_ParentRestClient): """ This class contains methods for the 'Admin' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/admin """ @@ -128,3 +128,16 @@ def sync_users(self, data=None, **options): return self._post(category='admin', resource='sync', subcategory='users', data=data, **options) + def users_update_groups(self, user, data=None, **options): + """ + Add or remove users from existing groups. + PATH: /{apiVersion}/admin/users/{user}/groups/update + + :param dict data: JSON containing the parameters. (REQUIRED) + :param str user: User ID. (REQUIRED) + :param str action: Action to be performed: ADD or REMOVE user to/from + groups. Allowed values: ['ADD REMOVE'] + """ + + return self._post(category='admin/users', resource='update', query_id=user, subcategory='groups', data=data, **options) + diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py index c402c27faa8..ee6e3dec87e 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/alignment_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class Alignment(_ParentRestClient): """ This class contains methods for the 'Analysis - Alignment' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/analysis/alignment """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py index d3f1927102b..dd7e8445d6d 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/clinical_analysis_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class ClinicalAnalysis(_ParentRestClient): """ This class contains methods for the 'Analysis - Clinical' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/analysis/clinical """ @@ -86,11 +86,16 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of Clinical Analysis IDs up to a - maximum of 100. + maximum of 100. Also admits basic regular expressions using the + operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + sensitive, '~/value/i' for case insensitive search. :param str uuid: Comma separated list of Clinical Analysis UUIDs up to a maximum of 100. :param str type: Clinical Analysis type. - :param str disorder: Clinical Analysis disorder. + :param str disorder: Clinical Analysis disorder. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. :param str files: Clinical Analysis files. :param str sample: Sample associated to the proband or any member of a family. @@ -133,12 +138,17 @@ def distinct_interpretation(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of Interpretation IDs up to a - maximum of 100. + maximum of 100. Also admits basic regular expressions using the + operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + sensitive, '~/value/i' for case insensitive search. :param str uuid: Comma separated list of Interpretation UUIDs up to a maximum of 100. :param str clinical_analysis_id: Clinical Analysis id. :param str analyst_id: Analyst ID. - :param str method_name: Interpretation method name. + :param str method_name: Interpretation method name. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. :param str panels: Interpretation panels. :param str primary_findings: Interpretation primary findings. :param str secondary_findings: Interpretation secondary findings. @@ -169,12 +179,17 @@ def search_interpretation(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of Interpretation IDs up to a - maximum of 100. + maximum of 100. Also admits basic regular expressions using the + operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + sensitive, '~/value/i' for case insensitive search. :param str uuid: Comma separated list of Interpretation UUIDs up to a maximum of 100. :param str clinical_analysis_id: Clinical Analysis id. :param str analyst_id: Analyst ID. - :param str method_name: Interpretation method name. + :param str method_name: Interpretation method name. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. :param str panels: Interpretation panels. :param str primary_findings: Interpretation primary findings. :param str secondary_findings: Interpretation secondary findings. @@ -606,11 +621,16 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of Clinical Analysis IDs up to a - maximum of 100. + maximum of 100. Also admits basic regular expressions using the + operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + sensitive, '~/value/i' for case insensitive search. :param str uuid: Comma separated list of Clinical Analysis UUIDs up to a maximum of 100. :param str type: Clinical Analysis type. - :param str disorder: Clinical Analysis disorder. + :param str disorder: Clinical Analysis disorder. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. :param str files: Clinical Analysis files. :param str sample: Sample associated to the proband or any member of a family. diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py index 3c3cb584041..00b36a955c4 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/cohort_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class Cohort(_ParentRestClient): """ This class contains methods for the 'Cohorts' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/cohorts """ @@ -121,9 +121,13 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of cohort IDs up to a maximum of - 100. + 100. Also admits basic regular expressions using the operator '~', + i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' + for case insensitive search. :param str name: Comma separated list of cohort names up to a maximum - of 100. + of 100. Also admits basic regular expressions using the operator + '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, + '~/value/i' for case insensitive search. :param str uuid: Comma separated list of cohort IDs up to a maximum of 100. :param str type: Cohort type. @@ -166,6 +170,9 @@ def generate(self, data=None, **options): :param str internal_status: Filter by internal status. :param str status: Filter by status. :param str phenotypes: Comma separated list of phenotype ids or names. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str annotation: Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. @@ -200,9 +207,13 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of cohort IDs up to a maximum of - 100. + 100. Also admits basic regular expressions using the operator '~', + i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' + for case insensitive search. :param str name: Comma separated list of cohort names up to a maximum - of 100. + of 100. Also admits basic regular expressions using the operator + '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, + '~/value/i' for case insensitive search. :param str uuid: Comma separated list of cohort IDs up to a maximum of 100. :param str type: Cohort type. diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py index bc80ec0403d..32c3fcad43a 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/disease_panel_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class DiseasePanel(_ParentRestClient): """ This class contains methods for the 'Disease Panels' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/panels """ @@ -67,19 +67,42 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of panel IDs up to a maximum of - 100. + 100. Also admits basic regular expressions using the operator '~', + i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' + for case insensitive search. :param str uuid: Comma separated list of panel UUIDs up to a maximum of 100. :param str name: Comma separated list of panel names up to a maximum - of 100. + of 100. Also admits basic regular expressions using the operator + '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, + '~/value/i' for case insensitive search. :param str internal_status: Filter by internal status. :param str disorders: Comma separated list of disorder ids or names. - :param str variants: Comma separated list of variant ids. - :param str genes: Comma separated list of gene ids. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search.. Also admits basic regular expressions + using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + sensitive, '~/value/i' for case insensitive search. + :param str variants: Comma separated list of variant ids. Also admits + basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. + :param str genes: Comma separated list of gene ids. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. :param str source: Comma separated list of source ids or names. - :param str regions: Comma separated list of regions. - :param str categories: Comma separated list of category names. - :param str tags: Panel tags. + :param str regions: Comma separated list of regions. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. + :param str categories: Comma separated list of category names. Also + admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. + :param str tags: Panel tags. Also admits basic regular expressions + using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + sensitive, '~/value/i' for case insensitive search. :param bool deleted: Boolean to retrieve deleted entries. :param str status: Filter by status. :param str creation_date: Creation date. Format: yyyyMMddHHmmss. @@ -133,19 +156,42 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of panel IDs up to a maximum of - 100. + 100. Also admits basic regular expressions using the operator '~', + i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' + for case insensitive search. :param str uuid: Comma separated list of panel UUIDs up to a maximum of 100. :param str name: Comma separated list of panel names up to a maximum - of 100. + of 100. Also admits basic regular expressions using the operator + '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, + '~/value/i' for case insensitive search. :param str internal_status: Filter by internal status. :param str disorders: Comma separated list of disorder ids or names. - :param str variants: Comma separated list of variant ids. - :param str genes: Comma separated list of gene ids. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search.. Also admits basic regular expressions + using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + sensitive, '~/value/i' for case insensitive search. + :param str variants: Comma separated list of variant ids. Also admits + basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. + :param str genes: Comma separated list of gene ids. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. :param str source: Comma separated list of source ids or names. - :param str regions: Comma separated list of regions. - :param str categories: Comma separated list of category names. - :param str tags: Panel tags. + :param str regions: Comma separated list of regions. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. + :param str categories: Comma separated list of category names. Also + admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. + :param str tags: Panel tags. Also admits basic regular expressions + using the operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + sensitive, '~/value/i' for case insensitive search. :param bool deleted: Boolean to retrieve deleted entries. :param str status: Filter by status. :param str creation_date: Creation date. Format: yyyyMMddHHmmss. diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py index ab32e42c325..cca2f512f1e 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/family_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class Family(_ParentRestClient): """ This class contains methods for the 'Families' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/families """ @@ -124,8 +124,13 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list family IDs up to a maximum of 100. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str name: Comma separated list family names up to a maximum of - 100. + 100. Also admits basic regular expressions using the operator '~', + i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' + for case insensitive search. :param str uuid: Comma separated list family UUIDs up to a maximum of 100. :param str members: Comma separated list of family members. @@ -133,7 +138,13 @@ def distinct(self, field, **options): members). :param str samples: Comma separated list of member's samples. :param str phenotypes: Comma separated list of phenotype ids or names. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str disorders: Comma separated list of disorder ids or names. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str creation_date: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. :param str modification_date: Modification date. Format: @@ -174,8 +185,13 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list family IDs up to a maximum of 100. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str name: Comma separated list family names up to a maximum of - 100. + 100. Also admits basic regular expressions using the operator '~', + i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' + for case insensitive search. :param str uuid: Comma separated list family UUIDs up to a maximum of 100. :param str members: Comma separated list of family members. @@ -183,7 +199,13 @@ def search(self, **options): members). :param str samples: Comma separated list of member's samples. :param str phenotypes: Comma separated list of phenotype ids or names. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str disorders: Comma separated list of disorder ids or names. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str creation_date: Creation date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. :param str modification_date: Modification date. Format: diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py index 08344545d75..56440b2919c 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/file_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class File(_ParentRestClient): """ This class contains methods for the 'Files' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/files """ @@ -129,12 +129,23 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of file IDs up to a maximum of - 100. + 100. Also admits basic regular expressions using the operator '~', + i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' + for case insensitive search. :param str uuid: Comma separated list file UUIDs up to a maximum of 100. - :param str name: Comma separated list of file names. - :param str path: Comma separated list of paths. - :param str uri: Comma separated list of uris. + :param str name: Comma separated list of file names. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. + :param str path: Comma separated list of paths. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. + :param str uri: Comma separated list of uris. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. :param str type: File type, either FILE or DIRECTORY. :param str bioformat: Comma separated Bioformat values. For existing Bioformats see files/bioformats. @@ -154,7 +165,9 @@ def distinct(self, field, **options): :param str modification_date: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. :param str description: Description. - :param str tags: Tags. + :param str tags: Tags. Also admits basic regular expressions using the + operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + sensitive, '~/value/i' for case insensitive search. :param str size: File size. :param str sample_ids: Comma separated list sample IDs or UUIDs up to a maximum of 100. @@ -269,12 +282,23 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list of file IDs up to a maximum of - 100. + 100. Also admits basic regular expressions using the operator '~', + i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' + for case insensitive search. :param str uuid: Comma separated list file UUIDs up to a maximum of 100. - :param str name: Comma separated list of file names. - :param str path: Comma separated list of paths. - :param str uri: Comma separated list of uris. + :param str name: Comma separated list of file names. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. + :param str path: Comma separated list of paths. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. + :param str uri: Comma separated list of uris. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. :param str type: File type, either FILE or DIRECTORY. :param str bioformat: Comma separated Bioformat values. For existing Bioformats see files/bioformats. @@ -294,7 +318,9 @@ def search(self, **options): :param str modification_date: Modification date. Format: yyyyMMddHHmmss. Examples: >2018, 2017-2018, <201805. :param str description: Description. - :param str tags: Tags. + :param str tags: Tags. Also admits basic regular expressions using the + operator '~', i.e. '~{perl-regex}' e.g. '~value' for case + sensitive, '~/value/i' for case insensitive search. :param str size: File size. :param str sample_ids: Comma separated list sample IDs or UUIDs up to a maximum of 100. diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py index 82abbc91e0a..1a5348f7c6d 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/ga4gh_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class GA4GH(_ParentRestClient): """ This class contains methods for the 'GA4GH' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/ga4gh """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py index 03ccaff7058..cd2763c5443 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/individual_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class Individual(_ParentRestClient): """ This class contains methods for the 'Individuals' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/individuals """ @@ -132,23 +132,42 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list individual IDs up to a maximum of - 100. + 100. Also admits basic regular expressions using the operator '~', + i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' + for case insensitive search. :param str uuid: Comma separated list individual UUIDs up to a maximum of 100. :param str name: Comma separated list individual names up to a maximum - of 100. + of 100. Also admits basic regular expressions using the operator + '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, + '~/value/i' for case insensitive search. :param str family_ids: Comma separated list of family ids the individuals may belong to. :param str father: Father ID, name or UUID. :param str mother: Mother ID, name or UUID. :param str samples: Sample ID, name or UUID. :param str sex: Individual sex. - :param str ethnicity: Individual ethnicity. + :param str ethnicity: Individual ethnicity. Also admits basic regular + expressions using the operator '~', i.e. '~{perl-regex}' e.g. + '~value' for case sensitive, '~/value/i' for case insensitive + search. :param str date_of_birth: Individual date of birth. :param str disorders: Comma separated list of disorder ids or names. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str phenotypes: Comma separated list of phenotype ids or names. - :param str population_name: Population name. - :param str population_subpopulation: Subpopulation name. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. + :param str population_name: Population name. Also admits basic regular + expressions using the operator '~', i.e. '~{perl-regex}' e.g. + '~value' for case sensitive, '~/value/i' for case insensitive + search. + :param str population_subpopulation: Subpopulation name. Also admits + basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str karyotypic_sex: Individual karyotypic sex. :param str life_status: Individual life status. :param str internal_status: Filter by internal status. @@ -191,11 +210,15 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list individual IDs up to a maximum of - 100. + 100. Also admits basic regular expressions using the operator '~', + i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' + for case insensitive search. :param str uuid: Comma separated list individual UUIDs up to a maximum of 100. :param str name: Comma separated list individual names up to a maximum - of 100. + of 100. Also admits basic regular expressions using the operator + '~', i.e. '~{perl-regex}' e.g. '~value' for case sensitive, + '~/value/i' for case insensitive search. :param str father: Father ID, name or UUID. :param str mother: Mother ID, name or UUID. :param str samples: Sample ID, name or UUID. @@ -203,11 +226,26 @@ def search(self, **options): individuals may belong to. :param str sex: Individual sex. :param str date_of_birth: Individual date of birth. - :param str ethnicity: Individual ethnicity. + :param str ethnicity: Individual ethnicity. Also admits basic regular + expressions using the operator '~', i.e. '~{perl-regex}' e.g. + '~value' for case sensitive, '~/value/i' for case insensitive + search. :param str disorders: Comma separated list of disorder ids or names. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str phenotypes: Comma separated list of phenotype ids or names. - :param str population_name: Population name. - :param str population_subpopulation: Subpopulation name. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. + :param str population_name: Population name. Also admits basic regular + expressions using the operator '~', i.e. '~{perl-regex}' e.g. + '~value' for case sensitive, '~/value/i' for case insensitive + search. + :param str population_subpopulation: Subpopulation name. Also admits + basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str karyotypic_sex: Individual karyotypic sex. :param str life_status: Individual life status. :param str internal_status: Filter by internal status. diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py index 1b9946676c7..45b947e2098 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/job_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class Job(_ParentRestClient): """ This class contains methods for the 'Jobs' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/jobs """ @@ -92,9 +92,15 @@ def distinct(self, field, **options): :param bool other_studies: Flag indicating the entries being queried can belong to any related study, not just the primary one. :param str id: Comma separated list of job IDs up to a maximum of 100. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str uuid: Comma separated list of job UUIDs up to a maximum of 100. - :param str tool_id: Tool ID executed by the job. + :param str tool_id: Tool ID executed by the job. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. :param str tool_type: Tool type executed by the job [OPERATION, ANALYSIS]. :param str user_id: User that created the job. @@ -157,9 +163,15 @@ def search(self, **options): :param bool other_studies: Flag indicating the entries being queried can belong to any related study, not just the primary one. :param str id: Comma separated list of job IDs up to a maximum of 100. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str uuid: Comma separated list of job UUIDs up to a maximum of 100. - :param str tool_id: Tool ID executed by the job. + :param str tool_id: Tool ID executed by the job. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. :param str tool_type: Tool type executed by the job [OPERATION, ANALYSIS]. :param str user_id: User that created the job. @@ -196,7 +208,10 @@ def top(self, **options): :param str internal_status: Filter by internal status. :param str priority: Priority of the job. :param str user_id: User that created the job. - :param str tool_id: Tool ID executed by the job. + :param str tool_id: Tool ID executed by the job. Also admits basic + regular expressions using the operator '~', i.e. '~{perl-regex}' + e.g. '~value' for case sensitive, '~/value/i' for case insensitive + search. """ return self._get(category='jobs', resource='top', **options) diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py index c2912d49faa..6abaf5e1f17 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/meta_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class Meta(_ParentRestClient): """ This class contains methods for the 'Meta' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/meta """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py index 6e8eb18d1cd..c6c1b44ae5a 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/project_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class Project(_ParentRestClient): """ This class contains methods for the 'Projects' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/projects """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py index 2e5734521cc..8a257daeadd 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/sample_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class Sample(_ParentRestClient): """ This class contains methods for the 'Samples' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/samples """ @@ -122,6 +122,9 @@ def distinct(self, field, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list sample IDs up to a maximum of 100. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str uuid: Comma separated list sample UUIDs up to a maximum of 100. :param bool somatic: Somatic sample. @@ -143,6 +146,9 @@ def distinct(self, field, **options): :param str collection_type: Collection type. :param str collection_method: Collection method. :param str phenotypes: Comma separated list of phenotype ids or names. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str annotation: Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. @@ -215,6 +221,9 @@ def search(self, **options): :param str study: Study [[user@]project:]study where study and project can be either the ID or UUID. :param str id: Comma separated list sample IDs up to a maximum of 100. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str uuid: Comma separated list sample UUIDs up to a maximum of 100. :param bool somatic: Somatic sample. @@ -236,6 +245,9 @@ def search(self, **options): :param str collection_type: Collection type. :param str collection_method: Collection method. :param str phenotypes: Comma separated list of phenotype ids or names. + Also admits basic regular expressions using the operator '~', i.e. + '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for + case insensitive search. :param str annotation: Annotation filters. Example: age>30;gender=FEMALE. For more information, please visit http://docs.opencb.org/display/opencga/AnnotationSets+1.4.0. diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py index 4a2d7250413..0b900697dab 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/study_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class Study(_ParentRestClient): """ This class contains methods for the 'Studies' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/studies """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py index 3027cdd4965..5b920d96a6e 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/user_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class User(_ParentRestClient): """ This class contains methods for the 'Users' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/users """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py index 933dd47ada4..be6b137a26f 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/variant_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class Variant(_ParentRestClient): """ This class contains methods for the 'Analysis - Variant' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/analysis/variant """ diff --git a/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py b/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py index 6061c2625d0..d096a751c9b 100644 --- a/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py +++ b/opencga-client/src/main/python/pyopencga/rest_clients/variant_operation_client.py @@ -2,7 +2,7 @@ WARNING: AUTOGENERATED CODE This code was generated by a tool. - Autogenerated on: 2023-10-04 + Autogenerated on: 2023-10-20 Manual changes to this file may cause unexpected behavior in your application. Manual changes to this file will be overwritten if the code is regenerated. @@ -14,7 +14,7 @@ class VariantOperation(_ParentRestClient): """ This class contains methods for the 'Operations - Variant Storage' webservices - Client version: 2.8.4-SNAPSHOT + Client version: 2.12.0-SNAPSHOT PATH: /{apiVersion}/operation """ diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java b/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java index b65214a9ba4..ebcfa07153c 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/api/ParamConstants.java @@ -38,6 +38,8 @@ public class ParamConstants { public static final String RELEASE_DESCRIPTION = "Release when it was created"; public static final String INTERNAL_STATUS_PARAM = "internalStatus"; public static final String INTERNAL_STATUS_DESCRIPTION = "Filter by internal status"; + private static final String REGEX_SUPPORT = ". Also admits basic regular expressions using the operator '~', " + + "i.e. '~{perl-regex}' e.g. '~value' for case sensitive, '~/value/i' for case insensitive search."; @Deprecated // Use INTERNAL_VARIANT_INDEX_STATUS_PARAM public static final String INTERNAL_INDEX_STATUS_PARAM = "internalIndexStatus"; public static final String INTERNAL_VARIANT_INDEX_STATUS_PARAM = "internalVariantIndexStatus"; @@ -66,9 +68,9 @@ public class ParamConstants { public static final String DISTINCT_FIELD_PARAM = "field"; public static final String DISTINCT_FIELD_DESCRIPTION = "Comma separated list of fields for which to obtain the distinct values"; public static final String PHENOTYPES_PARAM = "phenotypes"; - public static final String PHENOTYPES_DESCRIPTION = "Comma separated list of phenotype ids or names"; + public static final String PHENOTYPES_DESCRIPTION = "Comma separated list of phenotype ids or names" + REGEX_SUPPORT; public static final String DISORDERS_PARAM = "disorders"; - public static final String DISORDERS_DESCRIPTION = "Comma separated list of disorder ids or names"; + public static final String DISORDERS_DESCRIPTION = "Comma separated list of disorder ids or names" + REGEX_SUPPORT; public static final String BODY_PARAM = "body"; public static final String OVERWRITE = "overwrite"; @@ -76,7 +78,7 @@ public class ParamConstants { public static final String CELLBASE_URL = "https://ws.zettagenomics.com/cellbase"; public static final String CELLBASE_VERSION = "v5.1"; public static final String CELLBASE_DATA_RELEASE = "2"; - public static final String CELLBASE_TOKEN = ""; + public static final String CELLBASE_APIKEY = ""; public static final String POP_FREQ_1000G_CB_V4 = "1kG_phase3"; public static final String POP_FREQ_1000G_CB_V5 = "1000G"; @@ -169,12 +171,12 @@ public class ParamConstants { + "exception whenever one of the entries looked for cannot be shown for whichever reason"; public static final String FILE_ID_DESCRIPTION = "File ID"; public static final String FILE_NAME_DESCRIPTION = "File name"; - public static final String FILE_NAMES_DESCRIPTION = "Comma separated list of file names"; + public static final String FILE_NAMES_DESCRIPTION = "Comma separated list of file names" + REGEX_SUPPORT; // --------------------------------------------- public static final String FILE_PATH_PARAM = "path"; public static final String FILE_PATH_DESCRIPTION = "File path"; - public static final String FILE_PATHS_DESCRIPTION = "Comma separated list of paths"; - public static final String FILE_URIS_DESCRIPTION = "Comma separated list of uris"; + public static final String FILE_PATHS_DESCRIPTION = "Comma separated list of paths" + REGEX_SUPPORT; + public static final String FILE_URIS_DESCRIPTION = "Comma separated list of uris" + REGEX_SUPPORT; public static final String FILE_TYPE_DESCRIPTION = "File type, either FILE or DIRECTORY"; public static final String FILE_FORMAT_DESCRIPTION = "Comma separated Format values. For existing Formats see files/formats"; public static final String FILE_EXTERNAL_DESCRIPTION = "Boolean field indicating whether to filter by external or non external files"; @@ -182,7 +184,7 @@ public class ParamConstants { "files/bioformats"; public static final String FILE_STATUS_DESCRIPTION = "File status"; public static final String FILE_DESCRIPTION_DESCRIPTION = "Description"; - public static final String FILE_TAGS_DESCRIPTION = "Tags"; + public static final String FILE_TAGS_DESCRIPTION = "Tags" + REGEX_SUPPORT; public static final String FILE_SOFTWARE_NAME_PARAM = "softwareName"; public static final String FILE_SOFTWARE_NAME_DESCRIPTION = "Software name"; public static final String FILE_JOB_ID_DESCRIPTION = "Job ID that created the file(s) or folder(s)"; @@ -316,12 +318,12 @@ public class ParamConstants { public static final String INDIVIDUAL_MOTHER_DESCRIPTION = "Mother ID, name or UUID"; public static final String INDIVIDUAL_SAMPLES_DESCRIPTION = "Sample ID, name or UUID"; public static final String INDIVIDUAL_SEX_DESCRIPTION = "Individual sex"; - public static final String INDIVIDUAL_ETHNICITY_DESCRIPTION = "Individual ethnicity"; + public static final String INDIVIDUAL_ETHNICITY_DESCRIPTION = "Individual ethnicity" + REGEX_SUPPORT; public static final String INDIVIDUAL_DATE_OF_BIRTH_DESCRIPTION = "Individual date of birth"; public static final String INDIVIDUAL_DISORDERS_DESCRIPTION = DISORDERS_DESCRIPTION; public static final String INDIVIDUAL_PHENOTYPES_DESCRIPTION = PHENOTYPES_DESCRIPTION; - public static final String INDIVIDUAL_POPULATION_NAME_DESCRIPTION = "Population name"; - public static final String INDIVIDUAL_POPULATION_SUBPOPULATION_DESCRIPTION = "Subpopulation name"; + public static final String INDIVIDUAL_POPULATION_NAME_DESCRIPTION = "Population name" + REGEX_SUPPORT; + public static final String INDIVIDUAL_POPULATION_SUBPOPULATION_DESCRIPTION = "Subpopulation name" + REGEX_SUPPORT; public static final String INDIVIDUAL_KARYOTYPIC_SEX_DESCRIPTION = "Individual karyotypic sex"; public static final String INDIVIDUAL_LIFE_STATUS_DESCRIPTION = "Individual life status"; public static final String INDIVIDUAL_DELETED_DESCRIPTION = DELETED_DESCRIPTION; @@ -422,7 +424,7 @@ public class ParamConstants { public static final String CLINICAL_STATUS_PARAM = STATUS_PARAM; public static final String CLINICAL_INTERNAL_STATUS_PARAM = INTERNAL_STATUS_PARAM; public static final String CLINICAL_TYPE_DESCRIPTION = "Clinical Analysis type"; - public static final String CLINICAL_DISORDER_DESCRIPTION = "Clinical Analysis disorder"; + public static final String CLINICAL_DISORDER_DESCRIPTION = "Clinical Analysis disorder" + REGEX_SUPPORT; public static final String CLINICAL_FILES_DESCRIPTION = "Clinical Analysis files"; public static final String CLINICAL_SAMPLE_DESCRIPTION = "Sample associated to the proband or any member of a family"; public static final String CLINICAL_INDIVIDUAL_DESCRIPTION = "Proband or any member of a family"; @@ -466,7 +468,7 @@ public class ParamConstants { public static final String INTERPRETATION_LOCKED_PARAM = "locked"; public static final String INTERPRETATION_CLINICAL_ANALYSIS_ID_DESCRIPTION = "Clinical Analysis id"; public static final String INTERPRETATION_ANALYST_ID_DESCRIPTION = "Analyst ID"; - public static final String INTERPRETATION_METHOD_NAME_DESCRIPTION = "Interpretation method name"; + public static final String INTERPRETATION_METHOD_NAME_DESCRIPTION = "Interpretation method name" + REGEX_SUPPORT; public static final String INTERPRETATION_PANELS_DESCRIPTION = "Interpretation panels"; public static final String INTERPRETATION_PRIMARY_FINDINGS_IDS_DESCRIPTION = "Interpretation primary findings"; public static final String INTERPRETATION_SECONDARY_FINDINGS_IDS_DESCRIPTION = "Interpretation secondary findings"; @@ -498,12 +500,12 @@ public class ParamConstants { public static final String PANEL_ACL_PARAM = ACL_PARAM; public static final String PANEL_RELEASE_PARAM = RELEASE_PARAM; public static final String PANEL_SNAPSHOT_PARAM = SNAPSHOT_PARAM; - public static final String PANEL_DISORDERS_DESCRIPTION = DISORDERS_DESCRIPTION; - public static final String PANEL_VARIANTS_DESCRIPTION = "Comma separated list of variant ids"; - public static final String PANEL_GENES_DESCRIPTION = "Comma separated list of gene ids"; - public static final String PANEL_REGIONS_DESCRIPTION = "Comma separated list of regions"; - public static final String PANEL_CATEGORIES_DESCRIPTION = "Comma separated list of category names"; - public static final String PANEL_TAGS_DESCRIPTION = "Panel tags"; + public static final String PANEL_DISORDERS_DESCRIPTION = DISORDERS_DESCRIPTION + REGEX_SUPPORT; + public static final String PANEL_VARIANTS_DESCRIPTION = "Comma separated list of variant ids" + REGEX_SUPPORT; + public static final String PANEL_GENES_DESCRIPTION = "Comma separated list of gene ids" + REGEX_SUPPORT; + public static final String PANEL_REGIONS_DESCRIPTION = "Comma separated list of regions" + REGEX_SUPPORT; + public static final String PANEL_CATEGORIES_DESCRIPTION = "Comma separated list of category names" + REGEX_SUPPORT; + public static final String PANEL_TAGS_DESCRIPTION = "Panel tags" + REGEX_SUPPORT; public static final String PANEL_DELETED_DESCRIPTION = DELETED_DESCRIPTION; public static final String PANEL_STATUS_DESCRIPTION = STATUS_DESCRIPTION; @@ -539,7 +541,7 @@ public class ParamConstants { public static final String JOB_DEPENDS_ON_DESCRIPTION = "Comma separated list of existing job IDs the job will depend on."; public static final String JOB_TOOL_ID_PARAM = "toolId"; public static final String JOB_TOOL_TYPE_PARAM = "toolType"; - public static final String JOB_TOOL_ID_DESCRIPTION = "Tool ID executed by the job"; + public static final String JOB_TOOL_ID_DESCRIPTION = "Tool ID executed by the job" + REGEX_SUPPORT; public static final String JOB_TOOL_TYPE_DESCRIPTION = "Tool type executed by the job [OPERATION, ANALYSIS]"; public static final String JOB_USER_PARAM = "userId"; public static final String JOB_USER_DESCRIPTION = "User that created the job"; @@ -1475,34 +1477,34 @@ public class ParamConstants { public static final String ADMIN_CATALOG_JWT_SECRETKEY = "The body web service secretKey parameter"; private static final String UP_TO_100 = " up to a maximum of 100"; public static final String FILES_DESCRIPTION = "Comma separated list of file IDs or names" + UP_TO_100; - public static final String FILES_ID_DESCRIPTION = "Comma separated list of file IDs" + UP_TO_100; + public static final String FILES_ID_DESCRIPTION = "Comma separated list of file IDs" + UP_TO_100 + REGEX_SUPPORT; public static final String FILES_UUID_DESCRIPTION = "Comma separated list file UUIDs" + UP_TO_100; public static final String SAMPLES_DESCRIPTION = "Comma separated list sample IDs or UUIDs" + UP_TO_100; - public static final String SAMPLES_ID_DESCRIPTION = "Comma separated list sample IDs" + UP_TO_100; + public static final String SAMPLES_ID_DESCRIPTION = "Comma separated list sample IDs" + UP_TO_100 + REGEX_SUPPORT; public static final String SAMPLES_UUID_DESCRIPTION = "Comma separated list sample UUIDs" + UP_TO_100; public static final String INDIVIDUALS_DESCRIPTION = "Comma separated list of individual IDs, names or UUIDs" + UP_TO_100; - public static final String INDIVIDUALS_ID_DESCRIPTION = "Comma separated list individual IDs" + UP_TO_100; - public static final String INDIVIDUAL_NAME_DESCRIPTION = "Comma separated list individual names" + UP_TO_100; + public static final String INDIVIDUALS_ID_DESCRIPTION = "Comma separated list individual IDs" + UP_TO_100 + REGEX_SUPPORT; + public static final String INDIVIDUAL_NAME_DESCRIPTION = "Comma separated list individual names" + UP_TO_100 + REGEX_SUPPORT; public static final String INDIVIDUAL_UUID_DESCRIPTION = "Comma separated list individual UUIDs" + UP_TO_100; public static final String FAMILIES_DESCRIPTION = "Comma separated list of family IDs or names" + UP_TO_100; - public static final String FAMILY_ID_DESCRIPTION = "Comma separated list family IDs" + UP_TO_100; - public static final String FAMILY_NAME_DESCRIPTION = "Comma separated list family names" + UP_TO_100; + public static final String FAMILY_ID_DESCRIPTION = "Comma separated list family IDs" + UP_TO_100 + REGEX_SUPPORT; + public static final String FAMILY_NAME_DESCRIPTION = "Comma separated list family names" + UP_TO_100 + REGEX_SUPPORT; public static final String FAMILY_UUID_DESCRIPTION = "Comma separated list family UUIDs" + UP_TO_100; public static final String COHORTS_DESCRIPTION = "Comma separated list of cohort IDs or UUIDs" + UP_TO_100; - public static final String COHORT_IDS_DESCRIPTION = "Comma separated list of cohort IDs" + UP_TO_100; - public static final String COHORT_NAMES_DESCRIPTION = "Comma separated list of cohort names" + UP_TO_100; + public static final String COHORT_IDS_DESCRIPTION = "Comma separated list of cohort IDs" + UP_TO_100 + REGEX_SUPPORT; + public static final String COHORT_NAMES_DESCRIPTION = "Comma separated list of cohort names" + UP_TO_100 + REGEX_SUPPORT; public static final String COHORT_UUIDS_DESCRIPTION = "Comma separated list of cohort IDs" + UP_TO_100; - public static final String CLINICAL_ID_DESCRIPTION = "Comma separated list of Clinical Analysis IDs" + UP_TO_100; + public static final String CLINICAL_ID_DESCRIPTION = "Comma separated list of Clinical Analysis IDs" + UP_TO_100 + REGEX_SUPPORT; public static final String CLINICAL_UUID_DESCRIPTION = "Comma separated list of Clinical Analysis UUIDs" + UP_TO_100; public static final String CLINICAL_ANALYSES_DESCRIPTION = "Comma separated list of clinical analysis IDs or names" + UP_TO_100; - public static final String INTERPRETATION_ID_DESCRIPTION = "Comma separated list of Interpretation IDs" + UP_TO_100; + public static final String INTERPRETATION_ID_DESCRIPTION = "Comma separated list of Interpretation IDs" + UP_TO_100 + REGEX_SUPPORT; public static final String INTERPRETATION_UUID_DESCRIPTION = "Comma separated list of Interpretation UUIDs" + UP_TO_100; public static final String INTERPRETATION_DESCRIPTION = "Comma separated list of clinical interpretation IDs " + UP_TO_100; - public static final String PANEL_ID_DESCRIPTION = "Comma separated list of panel IDs " + UP_TO_100; + public static final String PANEL_ID_DESCRIPTION = "Comma separated list of panel IDs " + UP_TO_100 + REGEX_SUPPORT; public static final String PANEL_UUID_DESCRIPTION = "Comma separated list of panel UUIDs " + UP_TO_100; - public static final String PANEL_NAME_DESCRIPTION = "Comma separated list of panel names " + UP_TO_100; + public static final String PANEL_NAME_DESCRIPTION = "Comma separated list of panel names " + UP_TO_100 + REGEX_SUPPORT; public static final String JOBS_DESCRIPTION = "Comma separated list of job IDs or UUIDs" + UP_TO_100; - public static final String JOB_IDS_DESCRIPTION = "Comma separated list of job IDs" + UP_TO_100; + public static final String JOB_IDS_DESCRIPTION = "Comma separated list of job IDs" + UP_TO_100 + REGEX_SUPPORT; public static final String JOB_UUIDS_DESCRIPTION = "Comma separated list of job UUIDs" + UP_TO_100; // --------------------------------------------- public static final String PROJECTS_DESCRIPTION = "Comma separated list of projects [user@]project" + UP_TO_100; diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java index 5a180602950..6d7eafd1503 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/cellbase/CellBaseValidator.java @@ -4,20 +4,26 @@ import org.apache.commons.lang3.StringUtils; import org.opencb.biodata.models.variant.avro.VariantAnnotation; import org.opencb.cellbase.client.rest.CellBaseClient; +import org.opencb.cellbase.core.api.key.ApiKeyManager; import org.opencb.cellbase.core.config.SpeciesConfiguration; import org.opencb.cellbase.core.config.SpeciesProperties; import org.opencb.cellbase.core.models.DataRelease; import org.opencb.cellbase.core.result.CellBaseDataResponse; -import org.opencb.cellbase.core.token.DataAccessTokenManager; -import org.opencb.cellbase.core.token.DataAccessTokenSources; import org.opencb.commons.datastore.core.QueryOptions; -import org.opencb.opencga.core.common.VersionUtils; +import org.opencb.commons.utils.VersionUtils; + import org.opencb.opencga.core.config.storage.CellBaseConfiguration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; -import java.util.*; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + public class CellBaseValidator { @@ -46,7 +52,7 @@ private CellBaseClient newCellBaseClient(CellBaseConfiguration cellBaseConfigura toCellBaseSpeciesName(species), assembly, cellBaseConfiguration.getDataRelease(), - cellBaseConfiguration.getToken(), + cellBaseConfiguration.getApiKey(), cellBaseConfiguration.toClientConfiguration()); } @@ -70,13 +76,13 @@ public String getDataRelease() { return cellBaseClient.getDataRelease(); } - public String getToken() { - return cellBaseClient.getToken(); + public String getApiKey() { + return cellBaseClient.getApiKey(); } - public DataAccessTokenSources getTokenSources() { - DataAccessTokenManager tokenManager = new DataAccessTokenManager(); - return tokenManager.decode(cellBaseClient.getToken()); + public List getApiKeyDataSources() { + ApiKeyManager apiKeyManager = new ApiKeyManager(); + return new ArrayList<>(apiKeyManager.getValidSources(cellBaseClient.getApiKey())); } public String getURL() { @@ -92,20 +98,36 @@ public CellBaseClient getCellBaseClient() { } public CellBaseConfiguration getCellBaseConfiguration() { - return new CellBaseConfiguration(getURL(), getVersion(), getDataRelease(), getToken()); + return new CellBaseConfiguration(getURL(), getVersion(), getDataRelease(), getApiKey()); } - public String getLatestActiveDataRelease() throws IOException { + public String getDefaultDataRelease() throws IOException { if (supportsDataRelease()) { - Optional dataRelease = cellBaseClient.getMetaClient().dataReleases() - .allResults() - .stream() - .filter(DataRelease::isActive) - .max(Comparator.comparing(DataRelease::getDate)); - if (!dataRelease.isPresent()) { + List dataReleases = cellBaseClient.getMetaClient().dataReleases() + .allResults(); + DataRelease dataRelease = null; + if (supportsDataReleaseActiveByDefaultIn()) { + // ActiveByDefault versions are stored in form `v.` , i.e. v5.5 , v5.7, ... + String majorMinor = "v" + getVersionFromServerMajorMinor(); + List drs = dataReleases + .stream() + .filter(dr -> dr.getActiveByDefaultIn() != null && dr.getActiveByDefaultIn().contains(majorMinor)) + .collect(Collectors.toList()); + if (drs.size() == 1) { + dataRelease = drs.get(0); + } else if (drs.size() > 1) { + throw new IllegalArgumentException("More than one default active data releases found on cellbase " + this); + } + } else { + dataRelease = dataReleases + .stream() + .filter(DataRelease::isActive) + .max(Comparator.comparing(DataRelease::getDate)).orElse(null); + } + if (dataRelease == null) { throw new IllegalArgumentException("No active data releases found on cellbase " + this); } else { - return String.valueOf(dataRelease.get().getRelease()); + return String.valueOf(dataRelease.getRelease()); } } else { return null; @@ -150,7 +172,7 @@ private CellBaseConfiguration validate(boolean autoComplete) throws IOException String dataRelease = getDataRelease(); if (dataRelease == null) { if (autoComplete) { - cellBaseConfiguration.setDataRelease(getLatestActiveDataRelease()); + cellBaseConfiguration.setDataRelease(getDefaultDataRelease()); } else { throw new IllegalArgumentException("Missing DataRelease for cellbase " + "url: '" + getURL() + "'" @@ -174,34 +196,35 @@ private CellBaseConfiguration validate(boolean autoComplete) throws IOException } } } - String token = getToken(); - if (StringUtils.isEmpty(token)) { - cellBaseConfiguration.setToken(null); + + String apiKey = getApiKey(); + if (StringUtils.isEmpty(apiKey)) { + cellBaseConfiguration.setApiKey(null); } else { // Check it's supported - if (!supportsToken(serverVersion)) { - throw new IllegalArgumentException("Token not supported for cellbase " + if (!supportsApiKey(serverVersion)) { + throw new IllegalArgumentException("API key not supported for cellbase " + "url: '" + getURL() + "'" + ", version: '" + inputVersion + "'"); } - // Check it's an actual token - DataAccessTokenManager tokenManager = new DataAccessTokenManager(); + // Check it's an actual API key + ApiKeyManager apiKeyManager = new ApiKeyManager(); try { - tokenManager.decode(token); + apiKeyManager.decode(apiKey); } catch (JwtException e) { - throw new IllegalArgumentException("Malformed token for cellbase " + throw new IllegalArgumentException("Malformed API key for cellbase " + "url: '" + getURL() + "'" + ", version: '" + inputVersion + "', species: '" + getSpecies() + "', assembly: '" + getAssembly() + "'"); } - // Check it's a valid token + // Check it's a valid API key CellBaseDataResponse response = cellBaseClient.getVariantClient() .getAnnotationByVariantIds(Collections.singletonList("1:1:N:C"), new QueryOptions(), true); if (response.firstResult() == null) { - throw new IllegalArgumentException("Invalid token for cellbase " + throw new IllegalArgumentException("Invalid API key for cellbase " + "url: '" + getURL() + "'" + ", version: '" + inputVersion + "', species: '" + getSpecies() @@ -238,12 +261,21 @@ public boolean supportsDataRelease() throws IOException { } public static boolean supportsDataRelease(String serverVersion) { - // Data Release support starts at versio 5.1.0 + // Data Release support starts at version 5.1.0 return VersionUtils.isMinVersion("5.1.0", serverVersion); } - public static boolean supportsToken(String serverVersion) { - // Tokens support starts at version 5.4.0 + public boolean supportsDataReleaseActiveByDefaultIn() throws IOException { + return supportsDataReleaseActiveByDefaultIn(getVersionFromServer()); + } + + public static boolean supportsDataReleaseActiveByDefaultIn(String serverVersion) { + // Data Release Default Active In Version support starts at version 5.5.0 , TASK-4157 + return VersionUtils.isMinVersion("5.5.0", serverVersion, true); + } + + public static boolean supportsApiKey(String serverVersion) { + // API keys support starts at version 5.4.0 return VersionUtils.isMinVersion("5.4.0", serverVersion); } @@ -258,10 +290,13 @@ public String getVersionFromServerMajorMinor() throws IOException { } private static String major(String version) { +// return String.valueOf(new VersionUtils.Version(version).getMajor()); return version.split("\\.")[0]; } private static String majorMinor(String version) { +// VersionUtils.Version v = new VersionUtils.Version(version); +// return v.getMajor() + "." + v.getMinor(); String[] split = version.split("\\."); if (split.length > 1) { version = split[0] + "." + split[1]; @@ -294,7 +329,7 @@ public String toString() { + "species '" + getSpecies() + "', " + "assembly '" + getAssembly() + "', " + "dataRelease '" + getDataRelease() + "', " - + "token '" + getToken() + "'"; + + "apiKey '" + getApiKey() + "'"; } } diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/common/VersionUtils.java b/opencga-core/src/main/java/org/opencb/opencga/core/common/VersionUtils.java deleted file mode 100644 index fb70ed94cb9..00000000000 --- a/opencga-core/src/main/java/org/opencb/opencga/core/common/VersionUtils.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.opencb.opencga.core.common; - -import org.apache.commons.lang3.StringUtils; - -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; - -public class VersionUtils { - - public static List order(List versions) { - return versions.stream().map(Version::new).sorted().map(Version::toString).collect(Collectors.toList()); - } - - public static boolean isMinVersion(String minVersion, String version) { - return new Version(minVersion).compareTo(new Version(version)) <= 0; - } - - public static class Version implements Comparable { - - private final int major; - private final int minor; - private final int patch; - private final int repatch; - private final String other; - - public static final Comparator COMPARATOR = Comparator - .comparingInt(Version::getMajor) - .thenComparingInt(Version::getMinor) - .thenComparingInt(Version::getPatch) - .thenComparingInt(Version::getRepatch) - .thenComparing((o1, o2) -> { - if (o1.other.equals(o2.other)) { - return 0; - } - if (o1.other.isEmpty()) { - return +1; - } - if (o2.other.isEmpty()) { - return -1; - } - if (o1.other.equals("-SNAPSHOT")) { - return -1; - } - if (o2.other.equals("-SNAPSHOT")) { - return +1; - } - return o1.other.compareTo(o2.other); - }); - - public Version(String version) { - String[] split = StringUtils.split(version, ".", 4); - major = Integer.parseInt(split[0]); - minor = Integer.parseInt(split[1]); - if (split.length == 4) { - patch = Integer.parseInt(split[2]); - String last = split[3]; - String[] split2 = StringUtils.split(last, "-+", 3); - repatch = Integer.parseInt(split2[0]); - other = last.substring(split2[0].length()); - } else { - String last = split[2]; - String[] split2 = StringUtils.split(last, "-+", 2); - patch = Integer.parseInt(split2[0]); - repatch = 0; - other = last.substring(split2[0].length()); - } - } - - @Override - public String toString() { - if (repatch > 0) { - return major + "." + minor + "." + patch + "." + repatch + other; - } else { - return major + "." + minor + "." + patch + other; - } - } - - @Override - public int compareTo(Version o) { - return COMPARATOR.compare(this, o); - } - - public int getMajor() { - return major; - } - - public int getMinor() { - return minor; - } - - public int getPatch() { - return patch; - } - - public int getRepatch() { - return repatch; - } - - public String getOther() { - return other; - } - } - -} diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/CellBaseConfiguration.java b/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/CellBaseConfiguration.java index 9a392c88168..2ef6a77cca4 100644 --- a/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/CellBaseConfiguration.java +++ b/opencga-core/src/main/java/org/opencb/opencga/core/config/storage/CellBaseConfiguration.java @@ -42,8 +42,8 @@ public class CellBaseConfiguration { @DataField(id = "dataRelease", description = "CellBase data release version to be used. If empty, will use the active one") private String dataRelease; - @DataField(id = "token", description = "CellBase token to access to the licensed/restricted data sources such as COSMIC, HGMD,...") - private String token; + @DataField(id = "apiKey", description = "API key to access to the licensed/restricted data sources (COSMIC, HGMD,...) and to manage quota.") + private String apiKey; public CellBaseConfiguration() { this(ParamConstants.CELLBASE_URL, ParamConstants.CELLBASE_VERSION); @@ -54,11 +54,11 @@ public CellBaseConfiguration(String url, String version) { this.version = version; } - public CellBaseConfiguration(String url, String version, String dataRelease, String token) { + public CellBaseConfiguration(String url, String version, String dataRelease, String apiKey) { this.url = url; this.version = version; this.dataRelease = dataRelease; - this.token = token; + this.apiKey = apiKey; } @Override @@ -67,7 +67,7 @@ public String toString() { sb.append("url='").append(url).append('\''); sb.append(", version='").append(version).append('\''); sb.append(", dataRelease='").append(dataRelease).append('\''); - sb.append(", token='").append(token).append('\''); + sb.append(", apiKey='").append(apiKey).append('\''); sb.append('}'); return sb.toString(); } @@ -99,12 +99,12 @@ public CellBaseConfiguration setDataRelease(String dataRelease) { return this; } - public String getToken() { - return token; + public String getApiKey() { + return apiKey; } - public CellBaseConfiguration setToken(String token) { - this.token = token; + public CellBaseConfiguration setApiKey(String apiKey) { + this.apiKey = apiKey; return this; } diff --git a/opencga-core/src/main/java/org/opencb/opencga/core/models/admin/UserUpdateGroup.java b/opencga-core/src/main/java/org/opencb/opencga/core/models/admin/UserUpdateGroup.java new file mode 100644 index 00000000000..ce05d03ccc2 --- /dev/null +++ b/opencga-core/src/main/java/org/opencb/opencga/core/models/admin/UserUpdateGroup.java @@ -0,0 +1,43 @@ +package org.opencb.opencga.core.models.admin; + +import java.util.List; + +public class UserUpdateGroup { + private List studyIds; + private List groupIds; + + public UserUpdateGroup() { + } + + public UserUpdateGroup(List studyIds, List groupIds) { + this.studyIds = studyIds; + this.groupIds = groupIds; + } + + @Override + public String toString() { + final StringBuilder sb = new StringBuilder("UserUpdateGroup{"); + sb.append("studyIds=").append(studyIds); + sb.append(", groupIds=").append(groupIds); + sb.append('}'); + return sb.toString(); + } + + public List getStudyIds() { + return studyIds; + } + + public UserUpdateGroup setStudyIds(List studyIds) { + this.studyIds = studyIds; + return this; + } + + public List getGroupIds() { + return groupIds; + } + + public UserUpdateGroup setGroupIds(List groupIds) { + this.groupIds = groupIds; + return this; + } +} diff --git a/opencga-core/src/test/java/org/opencb/opencga/core/cellbase/CellBaseValidatorTest.java b/opencga-core/src/test/java/org/opencb/opencga/core/cellbase/CellBaseValidatorTest.java index 36026700237..cab404b3c34 100644 --- a/opencga-core/src/test/java/org/opencb/opencga/core/cellbase/CellBaseValidatorTest.java +++ b/opencga-core/src/test/java/org/opencb/opencga/core/cellbase/CellBaseValidatorTest.java @@ -74,43 +74,43 @@ public void testNoActiveReleases() throws IOException { } @Test - public void testToken() throws IOException { - String token = System.getenv("CELLBASE_HGMD_TOKEN"); - Assume.assumeTrue(StringUtils.isNotEmpty(token)); - CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.4", null, token), "hsapiens", "grch38", true); - Assert.assertNotNull(validated.getToken()); + public void testApiKey() throws IOException { + String apiKey = System.getenv("CELLBASE_HGMD_APIKEY"); + Assume.assumeTrue(StringUtils.isNotEmpty(apiKey)); + CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.4", null, apiKey), "hsapiens", "grch38", true); + Assert.assertNotNull(validated.getApiKey()); } @Test - public void testTokenNotSupported() throws IOException { - String token = System.getenv("CELLBASE_HGMD_TOKEN"); - Assume.assumeTrue(StringUtils.isNotEmpty(token)); - thrown.expectMessage("Token not supported"); - CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.1", null, token), "hsapiens", "grch38", true); - Assert.assertNotNull(validated.getToken()); + public void testApiKeyNotSupported() throws IOException { + String apiKey = System.getenv("CELLBASE_HGMD_APIKEY"); + Assume.assumeTrue(StringUtils.isNotEmpty(apiKey)); + thrown.expectMessage("API key not supported"); + CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.1", null, apiKey), "hsapiens", "grch38", true); + Assert.assertNotNull(validated.getApiKey()); } @Test - public void testTokenEmpty() throws IOException { - String token = ""; - CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.1", null, token), "hsapiens", "grch38", true); - Assert.assertNull(validated.getToken()); + public void testApiKeyEmpty() throws IOException { + String apiKey = ""; + CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.1", null, apiKey), "hsapiens", "grch38", true); + Assert.assertNull(validated.getApiKey()); } @Test - public void testMalformedToken() throws IOException { - thrown.expectMessage("Malformed token for cellbase"); - String token = "MALFORMED_TOKEN"; - CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.4", null, token), "hsapiens", "grch38", true); - Assert.assertNotNull(validated.getToken()); + public void testMalformedApiKey() throws IOException { + thrown.expectMessage("Malformed API key for cellbase"); + String apiKey = "MALFORMED_API_KEY"; + CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.4", null, apiKey), "hsapiens", "grch38", true); + Assert.assertNotNull(validated.getApiKey()); } @Test - public void testUnsignedToken() throws IOException { - thrown.expectMessage("Invalid token for cellbase"); - String token = "eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImhnbWQiOjkyMjMzNzIwMzY4NTQ3NzU4MDd9LCJ2ZXJzaW9uIjoiMS4wIiwic3ViIjoiWkVUVEEiLCJpYXQiOjE2OTMyMTY5MDd9.invalidsignature"; - CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.4", null, token), "hsapiens", "grch38", true); - Assert.assertNotNull(validated.getToken()); + public void testUnsignedApiKey() throws IOException { + thrown.expectMessage("Invalid API key for cellbase"); + String apiKey = "eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImhnbWQiOjkyMjMzNzIwMzY4NTQ3NzU4MDd9LCJ2ZXJzaW9uIjoiMS4wIiwic3ViIjoiWkVUVEEiLCJpYXQiOjE2OTMyMTY5MDd9.invalidsignature"; + CellBaseConfiguration validated = CellBaseValidator.validate(new CellBaseConfiguration(ParamConstants.CELLBASE_URL, "v5.4", null, apiKey), "hsapiens", "grch38", true); + Assert.assertNotNull(validated.getApiKey()); } } \ No newline at end of file diff --git a/opencga-core/src/test/java/org/opencb/opencga/core/common/VersionUtilsTest.java b/opencga-core/src/test/java/org/opencb/opencga/core/common/VersionUtilsTest.java deleted file mode 100644 index a6b0dce858f..00000000000 --- a/opencga-core/src/test/java/org/opencb/opencga/core/common/VersionUtilsTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.opencb.opencga.core.common; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.experimental.categories.Category; -import org.opencb.opencga.core.testclassification.duration.ShortTests; - -@Category(ShortTests.class) -public class VersionUtilsTest { - public static String getComparation(String minVersion, String version) { - int c = new VersionUtils.Version(minVersion).compareTo(new VersionUtils.Version(version)); - String comp; - if (c == 0) { - comp = "="; - } else if (c < 0) { - comp = "<"; - } else { - comp = ">"; - } - System.out.println(minVersion + "\t" + comp + "\t" + version); - return comp; - } - - @Test - public void testOrder() { - Assert.assertEquals("<", getComparation("5.2.7", "5.2.8")); - Assert.assertEquals("=", getComparation("5.2.7", "5.2.7")); - Assert.assertEquals(">", getComparation("5.2.7.1", "5.2.7.1-alpha")); - Assert.assertEquals(">", getComparation("5.2.7", "5.2.7-SNAPSHOT")); - Assert.assertEquals("<", getComparation("5.2.7-alpha", "5.2.7")); - Assert.assertEquals("<", getComparation("5.2.7-alpha", "5.2.7-beta")); - Assert.assertEquals(">", getComparation("5.2.7", "5.2.6")); - Assert.assertEquals("=", getComparation("5.2.7", "5.2.7.0")); - } -} \ No newline at end of file diff --git a/opencga-server/src/main/java/org/opencb/opencga/server/generator/writers/ParentClientRestApiWriter.java b/opencga-server/src/main/java/org/opencb/opencga/server/generator/writers/ParentClientRestApiWriter.java index 51620ee3d15..86f1bcda615 100644 --- a/opencga-server/src/main/java/org/opencb/opencga/server/generator/writers/ParentClientRestApiWriter.java +++ b/opencga-server/src/main/java/org/opencb/opencga/server/generator/writers/ParentClientRestApiWriter.java @@ -217,6 +217,8 @@ protected static String getMethodName(String subpath) { // methodName = items[3] + "_" + items[1] + "_" + items[2]; } else if (items[0].contains("}") && items[2].contains("}") && (!items[1].contains("}")) && (!items[3].contains("}"))) { methodName = items[3] + "_" + items[1]; + } else if (items[1].contains("}") && (!items[0].contains("}") && !items[2].contains("}") && !items[3].contains("}"))) { + methodName = items[0] + "_" + items[3] + "_" + items[2]; } } else if (items.length == 5) { if (items[0].contains("}") && items[2].contains("}") && (!items[1].contains("}")) && (!items[3].contains("}")) diff --git a/opencga-server/src/main/java/org/opencb/opencga/server/rest/admin/AdminWSServer.java b/opencga-server/src/main/java/org/opencb/opencga/server/rest/admin/AdminWSServer.java index f07c7ad3ecb..835c9632af1 100644 --- a/opencga-server/src/main/java/org/opencb/opencga/server/rest/admin/AdminWSServer.java +++ b/opencga-server/src/main/java/org/opencb/opencga/server/rest/admin/AdminWSServer.java @@ -16,8 +16,6 @@ package org.opencb.opencga.server.rest.admin; -import org.opencb.opencga.core.models.user.AuthenticationResponse; -import org.opencb.opencga.core.tools.annotations.*; import org.apache.commons.lang3.StringUtils; import org.opencb.commons.datastore.core.DataResult; import org.opencb.commons.datastore.core.ObjectMap; @@ -31,6 +29,7 @@ import org.opencb.opencga.analysis.sample.SampleIndexTask; import org.opencb.opencga.catalog.db.api.MetaDBAdaptor; import org.opencb.opencga.catalog.exceptions.CatalogException; +import org.opencb.opencga.catalog.utils.ParamUtils; import org.opencb.opencga.core.api.ParamConstants; import org.opencb.opencga.core.exceptions.VersionException; import org.opencb.opencga.core.models.admin.*; @@ -39,8 +38,10 @@ import org.opencb.opencga.core.models.sample.Sample; import org.opencb.opencga.core.models.study.Group; import org.opencb.opencga.core.models.user.Account; +import org.opencb.opencga.core.models.user.AuthenticationResponse; import org.opencb.opencga.core.models.user.User; import org.opencb.opencga.core.response.OpenCGAResult; +import org.opencb.opencga.core.tools.annotations.*; import org.opencb.opencga.server.rest.OpenCGAWSServer; import javax.servlet.http.HttpServletRequest; @@ -153,6 +154,22 @@ public Response remoteImport(@ApiParam(value = "JSON containing the parameters", } } + @POST + @Path("/users/{user}/groups/update") + @Consumes(MediaType.APPLICATION_JSON) + @ApiOperation(value = "Add or remove users from existing groups", response = Group.class) + public Response updateGroups( + @ApiParam(value = ParamConstants.USER_DESCRIPTION) @PathParam(ParamConstants.USER) String user, + @ApiParam(value = "Action to be performed: ADD or REMOVE user to/from groups", allowableValues = "ADD,REMOVE", + defaultValue = "ADD") @QueryParam("action") ParamUtils.AddRemoveAction action, + @ApiParam(value = "JSON containing the parameters", required = true) UserUpdateGroup updateParams) { + try { + return createOkResponse(catalogManager.getAdminManager().updateGroups(user, updateParams.getStudyIds(), updateParams.getGroupIds(), action, token)); + } catch (Exception e) { + return createErrorResponse(e); + } + } + @POST @Path("/users/sync") @ApiOperation(value = "Synchronise a group of users from an authentication origin with a group in a study from catalog", response = Group.class, diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/VariantStorageEngine.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/VariantStorageEngine.java index f96eddc5999..a3ab7e539b5 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/VariantStorageEngine.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/VariantStorageEngine.java @@ -1125,7 +1125,7 @@ public CellBaseUtils getCellBaseUtils() throws StorageEngineException { } species = toCellBaseSpeciesName(species); cellBaseUtils = new CellBaseUtils(new CellBaseClient(species, assembly, configuration.getCellbase().getDataRelease(), - configuration.getCellbase().getToken(), clientConfiguration)); + configuration.getCellbase().getApiKey(), clientConfiguration)); } return cellBaseUtils; } diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantField.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantField.java index d0eb0a335e6..8c208b1cd30 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantField.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/adaptors/VariantField.java @@ -71,6 +71,7 @@ public enum VariantField { ANNOTATION_CONSERVATION(ANNOTATION, "annotation.conservation"), ANNOTATION_CANCER_HOTSPOTS(ANNOTATION, "annotation.cancerHotspots"), ANNOTATION_GENE_EXPRESSION(ANNOTATION, "annotation.geneExpression"), + ANNOTATION_PHARMACOGENOMICS(ANNOTATION, "annotation.pharmacogenomics"), ANNOTATION_GENE_TRAIT_ASSOCIATION(ANNOTATION, "annotation.geneTraitAssociation"), ANNOTATION_GENE_DRUG_INTERACTION(ANNOTATION, "annotation.geneDrugInteraction"), ANNOTATION_GENE_CANCER_ASSOCIATIONS(ANNOTATION, "annotation.geneCancerAssociations"), diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/AbstractCellBaseVariantAnnotator.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/AbstractCellBaseVariantAnnotator.java index 320c909c33a..da8d44b05b5 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/AbstractCellBaseVariantAnnotator.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/AbstractCellBaseVariantAnnotator.java @@ -56,7 +56,7 @@ public abstract class AbstractCellBaseVariantAnnotator extends VariantAnnotator protected final String assembly; protected final String cellbaseVersion; protected final String cellbaseDataRelease; - protected final String cellbaseToken; + protected final String cellbaseApiKey; protected final QueryOptions queryOptions; protected final boolean supportImpreciseVariants; protected final boolean supportStarAlternate; @@ -72,7 +72,7 @@ public AbstractCellBaseVariantAnnotator(StorageConfiguration storageConfiguratio assembly = projectMetadata.getAssembly(); cellbaseVersion = storageConfiguration.getCellbase().getVersion(); cellbaseDataRelease = storageConfiguration.getCellbase().getDataRelease(); - cellbaseToken = storageConfiguration.getCellbase().getToken(); + cellbaseApiKey = storageConfiguration.getCellbase().getApiKey(); queryOptions = new QueryOptions(); if (StringUtils.isNotEmpty(params.getString(VariantStorageOptions.ANNOTATOR_CELLBASE_INCLUDE.key()))) { diff --git a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/CellBaseRestVariantAnnotator.java b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/CellBaseRestVariantAnnotator.java index 889cba2f42a..a589a21e1a4 100644 --- a/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/CellBaseRestVariantAnnotator.java +++ b/opencga-storage/opencga-storage-core/src/main/java/org/opencb/opencga/storage/core/variant/annotation/annotators/CellBaseRestVariantAnnotator.java @@ -67,7 +67,7 @@ public CellBaseRestVariantAnnotator(StorageConfiguration storageConfiguration, P VariantStorageOptions.ANNOTATION_TIMEOUT.defaultValue()); clientConfiguration.getRest().setTimeout(timeoutMillis); - cellBaseClient = new CellBaseClient(species, assembly, cellbaseDataRelease, cellbaseToken, clientConfiguration); + cellBaseClient = new CellBaseClient(species, assembly, cellbaseDataRelease, cellbaseApiKey, clientConfiguration); cellBaseUtils = new CellBaseUtils(cellBaseClient); logger.info("Annotating with Cellbase REST. {}", cellBaseUtils); @@ -113,8 +113,8 @@ public ProjectMetadata.VariantAnnotationMetadata getVariantAnnotationMetadata() + getDebugInfo("/meta/" + species + "/dataReleases") + ". "); } List privateSources; - if (StringUtils.isNotEmpty(cellBaseUtils.getToken())) { - privateSources = new ArrayList<>(cellBaseUtils.getTokenSources().getSources().keySet()); + if (StringUtils.isNotEmpty(cellBaseUtils.getApiKey())) { + privateSources = cellBaseUtils.getApiKeyDataSources(); } else { privateSources = new ArrayList<>(); } diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/utils/CellBaseUtilsTest.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/utils/CellBaseUtilsTest.java index ccb8106a2c0..93cb92e8899 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/utils/CellBaseUtilsTest.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/utils/CellBaseUtilsTest.java @@ -21,7 +21,7 @@ import org.opencb.commons.datastore.core.ObjectMap; import org.opencb.commons.datastore.core.Query; import org.opencb.commons.datastore.core.QueryOptions; -import org.opencb.opencga.core.common.VersionUtils; +import org.opencb.commons.utils.VersionUtils; import org.opencb.opencga.core.testclassification.duration.MediumTests; import org.opencb.opencga.storage.core.variant.adaptors.VariantQueryException; import org.opencb.opencga.storage.core.variant.adaptors.VariantQueryParam; @@ -67,7 +67,8 @@ public static List data() { new Object[]{"https://ws.zettagenomics.com/cellbase/", "v5.1", "grch38", "1"}, new Object[]{"https://ws.zettagenomics.com/cellbase/", "v5.1", "grch38", "2"}, new Object[]{"https://uk.ws.zettagenomics.com/cellbase/", "v5.2", "grch37", "1"}, - new Object[]{"https://uk.ws.zettagenomics.com/cellbase/", "v5.2", "grch38", "2"}); + new Object[]{"https://uk.ws.zettagenomics.com/cellbase/", "v5.2", "grch38", "2"}, + new Object[]{"https://uk.ws.zettagenomics.com/cellbase/", "v5.4", "grch38", "3"}); } @Parameter(0) @@ -254,10 +255,10 @@ public void testGetTranscriptFlags() throws IOException { } @Test - public void testAnnotationWithHGMDToken() throws IOException { - Assume.assumeTrue(cellBaseUtils.isMinVersion("5.3.0")); - Assume.assumeThat(assembly, CoreMatchers.equalTo("grch37")); - String hgmdToken = System.getenv("CELLBASE_HGMD_TOKEN"); + public void testAnnotationWithHGMDApiKey() throws IOException { + Assume.assumeTrue(cellBaseUtils.isMinVersion("5.4.0")); + Assume.assumeThat(assembly, CoreMatchers.equalTo("grch38")); + String hgmdToken = System.getenv("CELLBASE_HGMD_APIKEY"); Assume.assumeTrue(StringUtils.isNotEmpty(hgmdToken)); cellBaseClient = new CellBaseClient("hsapiens", assembly, dataRelease, hgmdToken, @@ -270,14 +271,14 @@ public void testAnnotationWithHGMDToken() throws IOException { .getAnnotationByVariantIds(Collections.singletonList("10:113588287:G:A"), queryOptions); VariantAnnotation variantAnnotation = v.firstResult(); assertEquals(2, variantAnnotation.getTraitAssociation().size()); - assertEquals("clinvar", variantAnnotation.getTraitAssociation().get(0).getSource().getName()); - assertEquals("hgmd", variantAnnotation.getTraitAssociation().get(1).getSource().getName()); + assertTrue(variantAnnotation.getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); + assertTrue(variantAnnotation.getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); } @Test - public void testAnnotationWithoutHGMDToken() throws IOException { - Assume.assumeTrue(cellBaseUtils.isMinVersion("5.3.0")); - Assume.assumeThat(assembly, CoreMatchers.equalTo("grch37")); + public void testAnnotationWithoutHGMDAPiKey() throws IOException { + Assume.assumeTrue(cellBaseUtils.isMinVersion("5.4.0")); + Assume.assumeThat(assembly, CoreMatchers.equalTo("grch38")); cellBaseClient = new CellBaseClient("hsapiens", assembly, dataRelease, "", new ClientConfiguration().setVersion(version) diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/DummyTestAnnotator.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/DummyTestAnnotator.java index 33e2860868d..b36e8fa90ad 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/DummyTestAnnotator.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/DummyTestAnnotator.java @@ -59,7 +59,7 @@ public List annotate(List variants) throws VariantAn public ProjectMetadata.VariantAnnotationMetadata getVariantAnnotationMetadata() throws VariantAnnotatorException { return new ProjectMetadata.VariantAnnotationMetadata(-1, null, null, new ProjectMetadata.VariantAnnotatorProgram("MyAnnotator", key, null), - Collections.singletonList(new ObjectMap("data", "genes")), null, null); + Collections.singletonList(new ObjectMap("data", "genes")), null,null); } } diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByTokenTest.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByApiKeyTest.java similarity index 77% rename from opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByTokenTest.java rename to opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByApiKeyTest.java index 0faf42d6cb7..02ae9aded18 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByTokenTest.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorByApiKeyTest.java @@ -21,7 +21,7 @@ import static org.junit.Assert.assertEquals; import static org.opencb.opencga.storage.core.variant.VariantStorageOptions.ANNOTATOR_CELLBASE_INCLUDE; -public class VariantAnnotatorByTokenTest { +public class VariantAnnotatorByApiKeyTest { private StorageConfiguration storageConfiguration; @@ -34,21 +34,18 @@ public void setUp() throws Exception { storageConfiguration = StorageConfiguration.load(StorageEngine.class.getClassLoader().getResourceAsStream("storage-configuration.yml"), "yml"); String url = "https://uk.ws.zettagenomics.com/cellbase/"; storageConfiguration.getCellbase().setUrl(url); - storageConfiguration.getCellbase().setDataRelease("1"); - storageConfiguration.getCellbase().setVersion("v5.3"); - storageConfiguration.getCellbase().setToken(null); + storageConfiguration.getCellbase().setDataRelease("3"); + storageConfiguration.getCellbase().setVersion("v5.4"); + storageConfiguration.getCellbase().setApiKey(null); CellBaseUtils cellBaseUtils = new CellBaseUtils(new CellBaseClient(storageConfiguration.getCellbase().toClientConfiguration())); - try { - Assume.assumeTrue(cellBaseUtils.isMinVersion("5.3.0")); - } catch (RuntimeException e) { - Assume.assumeNoException("Cellbase '" + url + "' not available", e); - } + Assume.assumeTrue(cellBaseUtils.isMinVersion("v5.4")); + + projectMetadata = new ProjectMetadata("hsapiens", "grch38", "3", 1, null, null, null); } @Test - public void testNoToken() throws Exception { - projectMetadata = new ProjectMetadata("hsapiens", "grch37", "1", 1, null, null, null); + public void testNoApiKey() throws Exception { ObjectMap options = new ObjectMap(VariantStorageOptions.ANNOTATOR.key(), "cellbase"); CellBaseRestVariantAnnotator annotator = new CellBaseRestVariantAnnotator(storageConfiguration, projectMetadata, options); @@ -61,12 +58,12 @@ public void testNoToken() throws Exception { } @Test - public void testCOSMICToken() throws Exception { - String cosmicToken = System.getenv("CELLBASE_COSMIC_TOKEN"); - Assume.assumeTrue(StringUtils.isNotEmpty(cosmicToken)); + public void testCOSMICApiKey() throws Exception { + String apiKey = System.getenv("CELLBASE_COSMIC_APIKEY"); + Assume.assumeTrue(StringUtils.isNotEmpty(apiKey)); + + storageConfiguration.getCellbase().setApiKey(apiKey); - storageConfiguration.getCellbase().setToken(cosmicToken); - projectMetadata = new ProjectMetadata("hsapiens", "grch37", "1", 1, null, null, null); ObjectMap options = new ObjectMap(VariantStorageOptions.ANNOTATOR.key(), "cellbase"); CellBaseRestVariantAnnotator annotator = new CellBaseRestVariantAnnotator(storageConfiguration, projectMetadata, options); assertEquals(Collections.singletonList("cosmic"), annotator.getVariantAnnotationMetadata().getPrivateSources()); @@ -80,12 +77,12 @@ public void testCOSMICToken() throws Exception { } @Test - public void testHGMDToken() throws Exception { - String hgmdToken = System.getenv("CELLBASE_HGMD_TOKEN"); - Assume.assumeTrue(StringUtils.isNotEmpty(hgmdToken)); + public void testHGMDApiKey() throws Exception { + String apiKey = System.getenv("CELLBASE_HGMD_APIKEY"); + Assume.assumeTrue(StringUtils.isNotEmpty(apiKey)); + + storageConfiguration.getCellbase().setApiKey(apiKey); - storageConfiguration.getCellbase().setToken(hgmdToken); - projectMetadata = new ProjectMetadata("hsapiens", "grch37", "1", 1, null, null, null); ObjectMap options = new ObjectMap(VariantStorageOptions.ANNOTATOR.key(), "cellbase"); CellBaseRestVariantAnnotator annotator = new CellBaseRestVariantAnnotator(storageConfiguration, projectMetadata, options); assertEquals(Collections.singletonList("hgmd"), annotator.getVariantAnnotationMetadata().getPrivateSources()); @@ -99,13 +96,12 @@ public void testHGMDToken() throws Exception { } @Test - public void testCOSMICandHGMDToken() throws Exception { - String token = System.getenv("CELLBASE_TOKEN"); - Assume.assumeTrue(StringUtils.isNotEmpty(token)); + public void testCOSMICandHGMDApiKey() throws Exception { + String apiKey = System.getenv("CELLBASE_COSMIC_HGMD_APIKEY"); + Assume.assumeTrue(StringUtils.isNotEmpty(apiKey)); - storageConfiguration.getCellbase().setToken(token); + storageConfiguration.getCellbase().setApiKey(apiKey); - projectMetadata = new ProjectMetadata("hsapiens", "grch37", "1", 1, null, null, null); ObjectMap options = new ObjectMap(VariantStorageOptions.ANNOTATOR.key(), "cellbase"); options.put(ANNOTATOR_CELLBASE_INCLUDE.key(), "clinical"); CellBaseRestVariantAnnotator annotator = new CellBaseRestVariantAnnotator(storageConfiguration, projectMetadata, options); diff --git a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorTest.java b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorTest.java index cf2b4201b5f..02b84fc38a9 100644 --- a/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorTest.java +++ b/opencga-storage/opencga-storage-core/src/test/java/org/opencb/opencga/storage/core/variant/annotation/annotators/VariantAnnotatorTest.java @@ -1,6 +1,7 @@ package org.opencb.opencga.storage.core.variant.annotation.annotators; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang.StringUtils; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -9,20 +10,15 @@ import org.opencb.biodata.models.variant.Variant; import org.opencb.biodata.models.variant.avro.EvidenceEntry; import org.opencb.biodata.models.variant.avro.VariantAnnotation; -import org.opencb.cellbase.client.config.ClientConfiguration; -import org.opencb.cellbase.client.config.RestConfig; -import org.opencb.cellbase.client.rest.CellBaseClient; import org.opencb.cellbase.core.result.CellBaseDataResult; import org.opencb.commons.datastore.core.ObjectMap; import org.opencb.opencga.core.testclassification.duration.ShortTests; import org.opencb.opencga.storage.core.StorageEngine; import org.opencb.opencga.core.config.storage.StorageConfiguration; import org.opencb.opencga.storage.core.metadata.models.ProjectMetadata; -import org.opencb.opencga.storage.core.utils.CellBaseUtils; import org.opencb.opencga.storage.core.variant.VariantStorageOptions; import org.opencb.opencga.storage.core.variant.annotation.VariantAnnotatorException; -import java.io.IOException; import java.util.*; import static org.hamcrest.CoreMatchers.instanceOf; @@ -116,9 +112,9 @@ public void testErrorVariant() throws VariantAnnotatorException { } @Test - public void useCellBaseTokens() throws VariantAnnotatorException { + public void useCellBaseApiKeys() throws VariantAnnotatorException { storageConfiguration.getCellbase().setUrl("https://uk.ws.zettagenomics.com/cellbase/"); - storageConfiguration.getCellbase().setVersion("task-3808"); + storageConfiguration.getCellbase().setVersion("v5.4"); storageConfiguration.getCellbase().setDataRelease("3"); VariantAnnotator variantAnnotator = null; @@ -131,6 +127,8 @@ public void useCellBaseTokens() throws VariantAnnotatorException { } assumeTrue(variantAnnotator != null); + String apiKey; + // No token List results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); assertEquals(1, results.size()); @@ -139,41 +137,40 @@ public void useCellBaseTokens() throws VariantAnnotatorException { assertFalse(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); // Using COSMIC token - storageConfiguration.getCellbase().setToken("eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImNvc21pYyI6OTIyMzM3MjAzNjg1NDc3NTgwN30sInZlcnNpb24iOiIxLjAiLCJzdWIiOiJaRVRUQSIsImlhdCI6MTY3NTg3MjQ2Nn0.ByfPJn8Lkh5Sow4suRZcOqVxvWZRmTBBNLDzHEIZQ5U"); - variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); - results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); - assertEquals(1, results.size()); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("cosmic"))); - assertFalse(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); + apiKey = System.getenv("CELLBASE_COSMIC_APIKEY"); + if (StringUtils.isNotEmpty(apiKey)) { + storageConfiguration.getCellbase().setApiKey(apiKey); + variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); + results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); + assertEquals(1, results.size()); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("cosmic"))); + assertFalse(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); + } // Using HGMD token - storageConfiguration.getCellbase().setToken("eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImhnbWQiOjkyMjMzNzIwMzY4NTQ3NzU4MDd9LCJ2ZXJzaW9uIjoiMS4wIiwic3ViIjoiWkVUVEEiLCJpYXQiOjE2NzU4NzI1MDd9.f3JgVRt7_VrifNWTaRMW3aQfrKbtDbIxlzoenJRYJo0"); - variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); - results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); - assertEquals(1, results.size()); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); - assertFalse(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("cosmic"))); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); - - // Using COSMIC = HGMD token - storageConfiguration.getCellbase().setToken("eyJhbGciOiJIUzI1NiJ9.eyJzb3VyY2VzIjp7ImNvc21pYyI6OTIyMzM3MjAzNjg1NDc3NTgwNywiaGdtZCI6OTIyMzM3MjAzNjg1NDc3NTgwN30sInZlcnNpb24iOiIxLjAiLCJzdWIiOiJaRVRUQSIsImlhdCI6MTY3NTg3MjUyN30.NCCFc4SAhjUsN5UU0wXGY6nCZx8jLglvaO1cNZYI0u4"); - variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); - results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); - assertEquals(1, results.size()); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("cosmic"))); - assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); - } + apiKey = System.getenv("CELLBASE_HGMD_APIKEY"); + if (StringUtils.isNotEmpty(apiKey)) { + storageConfiguration.getCellbase().setApiKey(apiKey); + variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); + results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); + assertEquals(1, results.size()); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); + assertFalse(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("cosmic"))); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); + } - private Set getSources(VariantAnnotation variantAnnotation) { - Set sources = new HashSet<>(); - if (variantAnnotation != null && CollectionUtils.isNotEmpty(variantAnnotation.getTraitAssociation())) { - for (EvidenceEntry entry : variantAnnotation.getTraitAssociation()) { - sources.add(entry.getSource().getName()); - } + // Using COSMIC + HGMD token + apiKey = System.getenv("CELLBASE_COSMIC_HGMD_APIKEY"); + if (StringUtils.isNotEmpty(apiKey)) { + storageConfiguration.getCellbase().setApiKey(apiKey); + variantAnnotator = VariantAnnotatorFactory.buildVariantAnnotator(storageConfiguration, projectMetadata, options); + results = variantAnnotator.annotate(Collections.singletonList(new Variant("10:113588287:G:A"))); + assertEquals(1, results.size()); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("clinvar"))); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("cosmic"))); + assertTrue(results.get(0).getTraitAssociation().stream().anyMatch(e -> e.getSource().getName().equals("hgmd"))); } - return sources; } public static class TestCellBaseRestVariantAnnotator extends CellBaseRestVariantAnnotator { diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/app/AbstractMain.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/app/AbstractMain.java index 7c51704a1a8..91d9b6f2388 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/app/AbstractMain.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/app/AbstractMain.java @@ -122,24 +122,52 @@ protected static ObjectMap getArgsMap(String[] args, int firstIdx, String... key ObjectMap argsMap; argsMap = new ObjectMap(); int i = firstIdx; + int offset; while (i < args.length) { - String key = args[i]; - while (key.startsWith("-")) { - key = key.substring(1); + String inputKey = args[i]; + offset = 1; + String key; + String value; + if (inputKey.startsWith("--")) { + key = inputKey.substring(2); + value = safeArg(args, i + 1); + offset++; // one extra value read + } else if (inputKey.startsWith("-")) { + key = inputKey.substring(1, 2); + value = inputKey.substring(2); + if (value.isEmpty()) { + value = safeArg(args, i + 1); + offset++; // one extra value read + } + } else { + throw new IllegalArgumentException("Unknown argument '" + inputKey + "'"); + } + if (value == null || value.startsWith("-")) { + value = "true"; + offset--; // extra value discarded } if (!acceptedKeys.isEmpty()) { if (!acceptedKeys.contains(key)) { - throw new IllegalArgumentException("Unknown argument '" + args[i] + "'"); + throw new IllegalArgumentException("Unknown argument '" + inputKey + "'"); } } - String value = safeArg(args, i + 1); - if (value == null || value.startsWith("-")) { - argsMap.put(key, true); - i += 1; + + if (key.equals("D")) { + ObjectMap dynamic = (ObjectMap) argsMap.computeIfAbsent(key, k -> new ObjectMap()); + String[] split = value.split("=", 2); + if (split.length != 2) { + throw new IllegalArgumentException("Expected '-D key=value'"); + } + if (dynamic.put(split[0], split[1]) != null) { + throw new IllegalArgumentException("Duplicated argument '-D " + value + "'"); + } } else { - argsMap.put(key, value); - i += 2; + if (argsMap.put(key, value) != null) { + throw new IllegalArgumentException("Duplicated param '" + inputKey + "'"); + } } + i += offset; + } return argsMap; } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/app/HBaseMain.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/app/HBaseMain.java index 004f4f8e2ff..4daa7789327 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/app/HBaseMain.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/app/HBaseMain.java @@ -10,14 +10,21 @@ import org.apache.hadoop.hbase.client.SnapshotDescription; import org.apache.hadoop.hbase.client.TableState; import org.apache.hadoop.hbase.exceptions.IllegalArgumentIOException; +import org.apache.tools.ant.types.Commandline; import org.opencb.commons.ProgressLogger; import org.opencb.commons.datastore.core.ObjectMap; import org.opencb.opencga.core.common.TimeUtils; +import org.opencb.opencga.core.config.storage.StorageConfiguration; import org.opencb.opencga.storage.hadoop.utils.HBaseManager; +import org.opencb.opencga.storage.hadoop.variant.HadoopVariantStorageEngine; +import org.opencb.opencga.storage.hadoop.variant.executors.MRExecutor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import java.io.FileInputStream; import java.io.IOException; +import java.nio.file.Path; +import java.nio.file.Paths; import java.time.Instant; import java.util.*; import java.util.stream.Collectors; @@ -36,6 +43,8 @@ public class HBaseMain extends AbstractMain { public static final String SNAPSHOT_TABLE = "snapshot-table"; public static final String DELETE_SNAPSHOTS = "delete-snapshots"; public static final String CLONE_SNAPSHOTS = "clone-snapshots"; + public static final String EXPORT_SNAPSHOTS = "export-snapshots"; + public static final String EXEC = "exec"; public static final String DISABLE_TABLE = "disable-table"; public static final String DROP_TABLE = "drop-table"; public static final String ENABLE_TABLE = "enable-table"; @@ -137,6 +146,25 @@ public void run(String[] args) throws Exception { ); break; } + case EXPORT_SNAPSHOTS: { + ObjectMap argsMap = getArgsMap(args, 1, "dryRun", "snapshot", "copy-to", "copy-to-local", "copy-from", "target", + "mappers", "overwrite", "D"); + exportSnapshot(null, + argsMap.getString("snapshot"), + argsMap.getString("copy-to"), + argsMap.getBoolean("copy-to-local"), + argsMap.getString("copy-from"), + argsMap.getString("target"), + argsMap.getString("mappers"), + argsMap.getBoolean("overwrite"), + argsMap.getBoolean("dryRun"), + argsMap); + break; + } + case EXEC: { + exec(getArg(args, 1), Arrays.asList(args).subList(2, args.length)); + break; + } case DISABLE_TABLE: { ObjectMap argsMap = getArgsMap(args, 2, "dryRun"); disableTables(getArg(args, 1), argsMap.getBoolean("dryRun")); @@ -186,6 +214,25 @@ public void run(String[] args) throws Exception { + "[--onExistingTables [fail|skip|drop] ]"); System.out.println(" Clone all snapshots into tables matching the regex. " + "Generated tables can have a table prefix change."); + System.out.println(" " + EXPORT_SNAPSHOTS + " \n" + + " --dryRun Dry run.\n" + + " --snapshot Snapshot to restore.\n" + + " --copy-to Remote destination hdfs://\n" + + " --copy-to-local Flag to indicate that must copy to local hbase.rootdir (for imports)\n" + + " --copy-from Input folder hdfs:// (default hbase.rootdir)\n" + + " --target Target name for the snapshot.\n" +// + " --no-checksum-verify Do not verify checksum, use name+length only.\n" +// + " --no-target-verify Do not verify the integrity of the exported snapshot.\n" + + " --overwrite Rewrite the snapshot manifest if already exists.\n" +// + " --chuser Change the owner of the files to the specified one.\n" +// + " --chgroup Change the group of the files to the specified one.\n" +// + " --chmod Change the permission of the files to the specified one.\n" +// + " --bandwidth Limit bandwidth to this value in MB/second.\n" + + " --mappers Number of mappers to use during the copy (mapreduce.job.maps).\n" + + " -Dkey=value Other key-value fields"); + System.out.println(" Export a given snapshot an external location."); + System.out.println(" " + EXEC + "[hadoop|yarn|hbase|hdfs]"); + System.out.println(" Execute a MR job on the hadoop cluster. Use \"exec yarn jar ....\""); System.out.println(" " + DISABLE_TABLE + " [--dryRun]"); System.out.println(" Disable all tables matching the regex."); System.out.println(" " + DROP_TABLE + " [--dryRun]"); @@ -199,6 +246,85 @@ public void run(String[] args) throws Exception { } + private void exec(String tool, List args) throws Exception { + Path opencgaHome = Paths.get(System.getProperty("app.home")); + String storageConfigurationPath = opencgaHome.resolve("conf").resolve("storage-configuration.yml").toString(); + StorageConfiguration storageConfiguration; + try (FileInputStream is = new FileInputStream(storageConfigurationPath)) { + storageConfiguration = StorageConfiguration.load(is); + } + + HadoopVariantStorageEngine engine = new HadoopVariantStorageEngine(); + engine.setConfiguration(storageConfiguration, HadoopVariantStorageEngine.STORAGE_ENGINE_ID, ""); + + MRExecutor mrExecutor = engine.getMRExecutor(); + int exitError = mrExecutor.run(tool, args.toArray(new String[0])); + if (exitError != 0) { + throw new Exception("Exec failed with exit number '" + exitError + "'"); + } + } + + private void exportSnapshot(String storageConfigurationPath, String snapshot, String copyTo, boolean copyToLocal, + String copyFrom, String target, + String mappers, boolean overwrite, boolean dryRun, ObjectMap options) throws Exception { + if (storageConfigurationPath == null) { + Path opencgaHome = Paths.get(System.getProperty("app.home")); + storageConfigurationPath = opencgaHome.resolve("conf").resolve("storage-configuration.yml").toString(); + } + StorageConfiguration storageConfiguration; + try (FileInputStream is = new FileInputStream(storageConfigurationPath)) { + storageConfiguration = StorageConfiguration.load(is); + } + + List args = new LinkedList<>(); + args.add(org.apache.hadoop.hbase.snapshot.ExportSnapshot.class.getName()); + for (Map.Entry entry : options.get("D", ObjectMap.class, new ObjectMap()).entrySet()) { + args.add("-D" + entry.getKey() + "=" + entry.getValue().toString()); + } + args.add("--snapshot"); + args.add(snapshot); + + args.add("--copy-to"); + if (StringUtils.isNotEmpty(copyTo)) { + args.add(copyTo); + if (copyToLocal) { + throw new Exception("Incompatible arguments `--copy-to` and `--copy-to-local`. Use only one of them"); + } + } else if (copyToLocal) { + args.add(hBaseManager.getConf().get(HConstants.HBASE_DIR)); + } else { + throw new Exception("Missing copy destination. Add either `--copy-to` or `--copy-to-local`"); + } + if (StringUtils.isNotEmpty(copyFrom)) { + args.add("--copy-from"); + args.add(copyFrom); + } + if (StringUtils.isNotEmpty(target)) { + args.add("--target"); + args.add(target); + } + if (overwrite) { + args.add("--overwrite"); + } + if (StringUtils.isNotEmpty(mappers)) { + args.add("--mappers"); + args.add(mappers); + } + + if (dryRun) { + System.out.println("hbase " + Commandline.toString(args.toArray(new String[0]))); + } else { + HadoopVariantStorageEngine engine = new HadoopVariantStorageEngine(); + engine.setConfiguration(storageConfiguration, HadoopVariantStorageEngine.STORAGE_ENGINE_ID, ""); + + MRExecutor mrExecutor = engine.getMRExecutor(); + int exitError = mrExecutor.run("hbase", args.toArray(new String[0])); + if (exitError != 0) { + throw new Exception("ExportSnapshot failed with exit number '" + exitError + "'"); + } + } + } + private void regionsPerTable(String tableNameStr) throws Exception { // TableName tableName = getTable(tableNameStr); // hBaseManager.act(tableName.getNameAsString(), (table, admin) -> { diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopMRLoadVariantStoragePipeline.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopMRLoadVariantStoragePipeline.java index 06284118162..c508f42e848 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopMRLoadVariantStoragePipeline.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/HadoopMRLoadVariantStoragePipeline.java @@ -35,7 +35,6 @@ import java.io.IOException; import java.net.URI; -import static org.opencb.opencga.storage.hadoop.variant.HadoopVariantStorageOptions.MR_HADOOP_BIN; import static org.opencb.opencga.storage.hadoop.variant.HadoopVariantStorageOptions.INTERMEDIATE_HDFS_DIRECTORY; /** @@ -96,29 +95,11 @@ public URI preLoad(URI input, URI output) throws StorageEngineException { protected void load(URI input, URI outdir, int studyId, int fileId) throws StorageEngineException { URI vcfMeta = URI.create(VariantReaderUtils.getMetaFromTransformedFile(input.toString())); - - String hadoopRoute = options.getString(MR_HADOOP_BIN.key(), MR_HADOOP_BIN.defaultValue()); - String jar = MRExecutor.getJarWithDependencies(getOptions()); - - Class execClass = ArchiveDriver.class; - String executable = hadoopRoute + " jar " + jar + " " + execClass.getName(); String args = ArchiveDriver.buildCommandLineArgs(input, vcfMeta, dbAdaptor.getVariantTable(), getArchiveTable(), studyId, fileId, options); - - long startTime = System.currentTimeMillis(); - logger.info("------------------------------------------------------"); - logger.info("Loading file {} into archive table '{}'", fileId, getArchiveTable()); - logger.debug(executable + " " + args); - logger.info("------------------------------------------------------"); - int exitValue = mrExecutor.run(executable, Commandline.translateCommandline(args)); - logger.info("------------------------------------------------------"); - logger.info("Exit value: {}", exitValue); - logger.info("Total time: {}s", (System.currentTimeMillis() - startTime) / 1000.0); - if (exitValue != 0) { - throw new StorageEngineException("Error loading file " + input + " into archive table \"" - + getArchiveTable() + "\""); - } + mrExecutor.run(ArchiveDriver.class, Commandline.translateCommandline(args), + "Loading file " + fileId + " into archive table '" + getArchiveTable() + "'"); } } diff --git a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/executors/MRExecutorFactory.java b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/executors/MRExecutorFactory.java index 14325ec42ed..29666831779 100644 --- a/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/executors/MRExecutorFactory.java +++ b/opencga-storage/opencga-storage-hadoop/opencga-storage-hadoop-core/src/main/java/org/opencb/opencga/storage/hadoop/variant/executors/MRExecutorFactory.java @@ -10,7 +10,10 @@ * * @author Jacobo Coll <jacobo167@gmail.com> */ -public class MRExecutorFactory { +public final class MRExecutorFactory { + + private MRExecutorFactory() { + } public static MRExecutor getMRExecutor(ObjectMap options) throws StorageEngineException { MRExecutor mrExecutor; diff --git a/pom.xml b/pom.xml index 65d3c35fc7e..890c5a2102b 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ 2.12.0-SNAPSHOT pom OpenCGA - OenCGA projects implements a big data platform for genomic data analysis + OpenCGA projects implements a big data platform for genomic data analysis http://docs.opencb.org/display/opencga/ @@ -42,12 +42,12 @@ - 2.8.4 - 2.8.4 - 5.4.1 - 2.8.0 - 4.8.0 - 2.8.4 + 2.12.0_dev + 2.12.0_dev + 5.8.0-SNAPSHOT + 2.12.0-SNAPSHOT + 4.12.0-SNAPSHOT + 2.12.0-SNAPSHOT 0.2.0