diff --git a/.classpath b/.classpath
deleted file mode 100644
index 1e8fddb84..000000000
--- a/.classpath
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.codecov.yml b/.codecov.yml
index 42c0d62b4..b75b4f7a4 100644
--- a/.codecov.yml
+++ b/.codecov.yml
@@ -26,5 +26,4 @@ comment:
require_changes: no
ignore:
- - "build"
- "deployment"
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..00a51aff5
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,6 @@
+#
+# https://help.github.com/articles/dealing-with-line-endings/
+#
+# These are explicitly windows files and should use crlf
+*.bat text eol=crlf
+
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index ca6fd710e..bb8baaba8 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -45,17 +45,17 @@ jobs:
fail-fast: false
matrix:
include:
- - java: '11'
+ - java: '8' # needs to be compatible so jars can be used w/ java 8
mongo: 'mongodb-linux-x86_64-ubuntu2204-7.0.4'
minio: '2019-05-23T00-29-34Z'
wired_tiger: 'true'
- ant_test: 'test_quick_coverage'
+ gradle_test: 'testQuick'
# the current production setup
- java: '11'
mongo: 'mongodb-linux-x86_64-3.6.13'
minio: '2019-05-23T00-29-34Z'
wired_tiger: 'false'
- ant_test: 'test_quick_coverage'
+ gradle_test: 'testQuick'
steps:
- uses: actions/checkout@v3
@@ -84,10 +84,6 @@ jobs:
# move to parent dir of homedir to install binaries etc
cd ..
- # set up jars
- git clone https://github.com/kbase/jars
- export JARSDIR=$(pwd)/jars/lib/jars/
-
# set up arango
export ARANGODB_VER=3.9.1
export ARANGODB_V=39
@@ -142,7 +138,6 @@ jobs:
sed -i "s#^test.mongo.exe.*#test.mongo.exe=$MONGOD#" test.cfg
sed -i "s#^test.minio.exe.*#test.minio.exe=$MINIO#" test.cfg
sed -i "s#^test.mongo.useWiredTiger.*#test.mongo.useWiredTiger=${{matrix.wired_tiger}}#" test.cfg
- sed -i "s#^test.jars.dir.*#test.jars.dir=$JARSDIR#" test.cfg
sed -i "s#^test.blobstore.exe.*#test.blobstore.exe=$BLOBEXE#" test.cfg
sed -i "s#^test.handleservice.dir.*#test.handleservice.dir=$HSDIR#" test.cfg
sed -i "s#^test.sampleservice.dir.*#test.sampleservice.dir=$SAMPLE_DIR#" test.cfg
@@ -153,10 +148,10 @@ jobs:
- name: Run tests
shell: bash
run: |
- ant javadoc
- ant ${{matrix.ant_test}}
+ ./gradlew ${{matrix.gradle_test}}
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
+ token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
diff --git a/Dockerfile b/Dockerfile
index 27a655ea8..6f1cd55d3 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,16 +1,29 @@
FROM eclipse-temurin:11-jdk as build
-WORKDIR /tmp
RUN apt update -y && \
- apt install -y ant git ca-certificates python3-sphinx && \
- git clone https://github.com/kbase/jars
+ apt install -y git ca-certificates python3-sphinx
-COPY . /tmp/workspace_deluxe
+WORKDIR /tmp/workspace
-RUN cd workspace_deluxe && \
- make docker_deps
+# dependencies take a while to D/L, so D/L & cache before the build so code changes don't cause
+# a new D/L
+# can't glob *gradle because of the .gradle dir
+COPY gradlew settings.gradle /tmp/workspace/
+COPY gradle/ /tmp/workspace/gradle/
+RUN ./gradlew dependencies
+
+# Now build the code
+COPY workspace.spec /tmp/workspace/workspace.spec
+COPY deployment/ /tmp/workspace/deployment/
+COPY docshtml /tmp/workspace/docshtml/
+COPY docsource /tmp/workspace/docsource/
+COPY lib /tmp/workspace/lib/
+COPY service /tmp/workspace/service
+COPY client /tmp/workspace/client
+# for the git commit
+COPY .git /tmp/workspace/.git/
+RUN ./gradlew war
-# updated/slimmed down version of what's in kbase/kb_jre
FROM ubuntu:18.04
# These ARGs values are passed in via the docker build command
@@ -39,11 +52,11 @@ RUN mkdir -p /var/lib/apt/lists/partial && \
tar xvzf dockerize-${DOCKERIZE_VERSION}.tar.gz && \
rm dockerize-${DOCKERIZE_VERSION}.tar.gz
-COPY --from=build /tmp/workspace_deluxe/deployment/ /kb/deployment/
+COPY --from=build /tmp/workspace/deployment/ /kb/deployment/
RUN /usr/bin/${TOMCAT_VERSION}-instance-create /kb/deployment/services/workspace/tomcat && \
- mv /kb/deployment/services/workspace/WorkspaceService.war /kb/deployment/services/workspace/tomcat/webapps/ROOT.war && \
rm -rf /kb/deployment/services/workspace/tomcat/webapps/ROOT
+COPY --from=build /tmp/workspace/service/build/libs/service.war /kb/deployment/services/workspace/tomcat/webapps/ROOT.war
# The BUILD_DATE value seem to bust the docker cache when the timestamp changes, move to
# the end
@@ -54,6 +67,9 @@ LABEL org.label-schema.build-date=$BUILD_DATE \
us.kbase.vcs-branch=$BRANCH \
maintainer="KBase developers engage@kbase.us"
+# TODO BUILD update to no longer use dockerize and take env vars (e.g. like Collections).
+# TODO BUILD Use subsections in the ini file / switch to TOML
+
EXPOSE 7058
ENTRYPOINT [ "/kb/deployment/bin/dockerize" ]
WORKDIR /kb/deployment/services/workspace/tomcat
diff --git a/Makefile b/Makefile
deleted file mode 100644
index 17db74f06..000000000
--- a/Makefile
+++ /dev/null
@@ -1,132 +0,0 @@
-#port is now set in deploy.cfg
-SERVICE = workspace
-SERVICE_CAPS = Workspace
-CLIENT_JAR = WorkspaceClient.jar
-WAR = WorkspaceService.war
-URL = https://kbase.us/services/ws/
-
-#End of user defined variables
-TARGET ?= /kb/deployment
-
-GITCOMMIT := $(shell git rev-parse --short HEAD)
-#TODO use --points-at when git 1.7.10 available
-TAGS := $(shell git tag --contains $(GITCOMMIT))
-
-DEPLOY_RUNTIME ?= /kb/runtime
-JAVA_HOME ?= $(DEPLOY_RUNTIME)/java
-SERVICE_DIR ?= $(TARGET)/services/$(SERVICE)
-GLASSFISH_HOME ?= $(DEPLOY_RUNTIME)/glassfish3
-SERVICE_USER ?= kbase
-
-ASADMIN = $(GLASSFISH_HOME)/glassfish/bin/asadmin
-
-ANT = ant
-
-# make sure our make test works
-.PHONY : test
-
-default: build-libs build-docs
-
-build-libs:
- @#TODO at some point make dependent on compile - checked in for now.
- $(ANT) compile
-
-build-docs:
- -rm -r docs
- $(ANT) javadoc
- pod2html --infile=lib/Bio/KBase/$(SERVICE)/Client.pm --outfile=docs/$(SERVICE)_perl.html
- rm -f pod2htm?.tmp
- sphinx-build docsource/ docs
- cp $(SERVICE).spec docs/.
- cp docshtml/* docs/.
-
-docker_deps: build-libs build-docs
- $(ANT) buildwar
- # cp server_scripts/glassfish_administer_service.py deployment/bin
- # chmod 755 deployment/bin/glassfish_administer_service.py
- mkdir -p deployment/services/workspace/
- cp dist/$(WAR) deployment/services/workspace/
-
-compile: compile-typespec compile-typespec-java compile-html
-
-compile-html:
- kb-sdk compile --html --out docshtml $(SERVICE).spec
-
-compile-typespec-java:
- kb-sdk compile --java --javasrc src --javasrv --out . \
- --url $(URL) $(SERVICE).spec
-
-compile-typespec:
- kb-sdk compile \
- --out lib \
- --jsclname javascript/$(SERVICE)/Client \
- --plclname Bio::KBase::$(SERVICE)::Client \
- --pyclname biokbase.$(SERVICE).client \
- --url $(URL) \
- $(SERVICE).spec
- rm lib/biokbase/workspace/authclient.py
-
-test: test-service
-
-test-service:
- $(ANT) test
-
-test-quick:
- $(ANT) test_quick
-
-deploy: deploy-client deploy-service
-
-deploy-client: deploy-client-libs deploy-docs
-
-deploy-client-libs:
- mkdir -p $(TARGET)/lib/
- cp dist/client/$(CLIENT_JAR) $(TARGET)/lib/
- cp -rv lib/* $(TARGET)/lib/
- echo $(GITCOMMIT) > $(TARGET)/lib/$(SERVICE).clientdist
- echo $(TAGS) >> $(TARGET)/lib/$(SERVICE).clientdist
-
-deploy-docs:
- mkdir -p $(SERVICE_DIR)/webroot
- cp -r docs/* $(SERVICE_DIR)/webroot/.
-
-deploy-service: deploy-service-libs deploy-service-scripts
-
-deploy-service-libs:
- $(ANT) buildwar
- mkdir -p $(SERVICE_DIR)
- cp dist/$(WAR) $(SERVICE_DIR)
- echo $(GITCOMMIT) > $(SERVICE_DIR)/$(SERVICE).serverdist
- echo $(TAGS) >> $(SERVICE_DIR)/$(SERVICE).serverdist
-
-deploy-service-scripts:
- cp server_scripts/glassfish_administer_service.py $(SERVICE_DIR)
- server_scripts/build_server_control_scripts.py $(SERVICE_DIR) $(WAR)\
- $(TARGET) $(JAVA_HOME) deploy.cfg $(ASADMIN) $(SERVICE_CAPS)
-
-deploy-upstart:
- echo "# $(SERVICE) service" > /etc/init/$(SERVICE).conf
- echo "# NOTE: stop $(SERVICE) does not work" >> /etc/init/$(SERVICE).conf
- echo "# Use the standard stop_service script as the $(SERVICE_USER) user" >> /etc/init/$(SERVICE).conf
- echo "#" >> /etc/init/$(SERVICE).conf
- echo "# Make sure to set up the $(SERVICE_USER) user account" >> /etc/init/$(SERVICE).conf
- echo "# shell> groupadd kbase" >> /etc/init/$(SERVICE).conf
- echo "# shell> useradd -r -g $(SERVICE_USER) $(SERVICE_USER)" >> /etc/init/$(SERVICE).conf
- echo "#" >> /etc/init/$(SERVICE).conf
- echo "start on runlevel [23] and started shock" >> /etc/init/$(SERVICE).conf
- echo "stop on runlevel [!23]" >> /etc/init/$(SERVICE).conf
- echo "pre-start exec chown -R $(SERVICE_USER) $(TARGET)/services/$(SERVICE)" >> /etc/init/$(SERVICE).conf
- echo "exec su kbase -c '$(TARGET)/services/$(SERVICE)/start_service'" >> /etc/init/$(SERVICE).conf
-
-undeploy:
- -rm -rf $(SERVICE_DIR)
- -rm -rfv $(TARGET)/lib/Bio/KBase/$(SERVICE)
- -rm -rfv $(TARGET)/lib/biokbase/$(SERVICE)
- -rm -rfv $(TARGET)/lib/javascript/$(SERVICE)
- -rm -rfv $(TARGET)/lib/$(CLIENT_JAR)
-
-clean:
- $(ANT) clean
- -rm -rf docs
- -rm -rf bin
- -rm -rf deployment/services/workspace/*
- @#TODO remove lib once files are generated on the fly
diff --git a/build.xml b/build.xml
deleted file mode 100644
index 5b3af13f7..000000000
--- a/build.xml
+++ /dev/null
@@ -1,355 +0,0 @@
-
-
-
- Build file for the Workspace Service
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- #!/bin/sh
-java -cp ${dist}/${jar.file}:${lib.classpath} us.kbase.workspace.kbase.SchemaUpdaterCLI $@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/client/build.gradle b/client/build.gradle
new file mode 100644
index 000000000..3b61f6926
--- /dev/null
+++ b/client/build.gradle
@@ -0,0 +1,118 @@
+/*
+ * This file was generated by the Gradle 'init' task.
+ */
+
+// TODO TEST switch to Kotlin DSL which is now the default and apparently better
+// TODO TEST avoid early configuration, see
+// https://docs.gradle.org/current/userguide/task_configuration_avoidance.html
+// need to avoid withType as well apparently?
+
+plugins {
+ id 'java'
+ id 'maven-publish'
+}
+
+group = 'com.github.kbase'
+
+var VER_JAVA_COMMON = "0.3.0"
+var VER_AUTH2_CLIENT = "0.5.0"
+
+
+var DEFAULT_URL = "https://ci.kbase.us/services/ws"
+
+var LOC_WS_SPEC = "$rootDir/workspace.spec"
+
+repositories {
+ mavenCentral()
+ maven {
+ name = "Jitpack"
+ url = 'https://jitpack.io'
+ }
+}
+
+compileJava {
+ // build needs to be java 8 compatible so jars can be used in java 8 projects
+ // TODO BUILD remove when we no longer support java 8, use `options.release = 11` if needed
+ java.sourceCompatibility = JavaVersion.VERSION_1_8
+ java.targetCompatibility = JavaVersion.VERSION_1_8
+}
+
+java {
+ withSourcesJar()
+ withJavadocJar()
+}
+
+javadoc {
+ /* TODO DOCS the current sdk documentation looks like invalid html to javadoc
+ * need to go through and remove
+ * also some spots with < / > that need to be wrapped with {@code } in internal code
+ */
+ failOnError = false
+ options {
+ links "https://docs.oracle.com/en/java/javase/11/docs/api/"
+ links "https://javadoc.jitpack.io/com/github/kbase/auth2_client_java/$VER_AUTH2_CLIENT/javadoc/"
+ links "https://javadoc.jitpack.io/com/github/kbase/java_common/$VER_JAVA_COMMON/javadoc/"
+ }
+}
+
+/* SDK compile notes:
+ * kb-sdk starts a docker container in interactive mode. Gradle's commandLine doesn't allocate
+ * a tty so the command fails.
+ * I tried using a ProcessBuilder and
+ * https://docs.oracle.com/en%2Fjava%2Fjavase%2F11%2Fdocs%2Fapi%2F%2F/java.base/java/lang/ProcessBuilder.html#inheritIO()
+ * but that failed also with no useful output.
+ *
+ * The current solution is to precede the kb-sdk call with a script call, which either
+ * allocates a tty or fools kb-sdk into thinking there is one - not quite sure.
+ * https://man7.org/linux/man-pages/man1/script.1.html
+ * I tried to redirect the script log file to /dev/null with -O and --log-out but script didn't
+ * recognize either option, hence the delete.
+ *
+ * This is, generally speaking, a janky mess and if someone can find a better way to do this
+ * that'd be fantastic.
+ */
+
+var LOC_SCRIPT_TYPESCRIPT = "./typescript"
+
+task sdkCompileJava {
+ // TODO GRADLE is there a variable for src/main/java?
+ var cmd = "kb-sdk compile " +
+ "--java " +
+ "--javasrc ${project.projectDir}/src/main/java/ " +
+ "--out . " +
+ "--url $DEFAULT_URL " +
+ LOC_WS_SPEC
+ doLast {
+ exec {
+ commandLine "script", "-qefc", cmd
+ }
+ delete LOC_SCRIPT_TYPESCRIPT
+ }
+}
+
+task sdkCompile {
+ dependsOn sdkCompileJava
+}
+
+task buildAll {
+ dependsOn jar
+}
+
+publishing {
+ publications {
+ maven(MavenPublication) {
+ from components.java
+ artifactId = "workspace-client"
+ }
+ }
+}
+
+dependencies {
+ // using older dependencies to not force upgrades on services that might not be able to
+ // handle them. Need to upgrade the services and then upgrade here
+ implementation "com.fasterxml.jackson.core:jackson-annotations:2.5.4"
+ implementation "com.fasterxml.jackson.core:jackson-databind:2.5.4"
+ implementation "com.github.kbase:auth2_client_java:$VER_AUTH2_CLIENT"
+ implementation "com.github.kbase:java_common:$VER_JAVA_COMMON"
+ implementation 'javax.annotation:javax.annotation-api:1.3.2'
+}
diff --git a/src/us/kbase/common/service/Tuple11.java b/client/src/main/java/us/kbase/common/service/Tuple11.java
similarity index 100%
rename from src/us/kbase/common/service/Tuple11.java
rename to client/src/main/java/us/kbase/common/service/Tuple11.java
diff --git a/src/us/kbase/common/service/Tuple12.java b/client/src/main/java/us/kbase/common/service/Tuple12.java
similarity index 100%
rename from src/us/kbase/common/service/Tuple12.java
rename to client/src/main/java/us/kbase/common/service/Tuple12.java
diff --git a/src/us/kbase/common/service/Tuple7.java b/client/src/main/java/us/kbase/common/service/Tuple7.java
similarity index 100%
rename from src/us/kbase/common/service/Tuple7.java
rename to client/src/main/java/us/kbase/common/service/Tuple7.java
diff --git a/src/us/kbase/common/service/Tuple9.java b/client/src/main/java/us/kbase/common/service/Tuple9.java
similarity index 100%
rename from src/us/kbase/common/service/Tuple9.java
rename to client/src/main/java/us/kbase/common/service/Tuple9.java
diff --git a/src/us/kbase/workspace/AlterAdminObjectMetadataParams.java b/client/src/main/java/us/kbase/workspace/AlterAdminObjectMetadataParams.java
similarity index 100%
rename from src/us/kbase/workspace/AlterAdminObjectMetadataParams.java
rename to client/src/main/java/us/kbase/workspace/AlterAdminObjectMetadataParams.java
diff --git a/src/us/kbase/workspace/AlterWorkspaceMetadataParams.java b/client/src/main/java/us/kbase/workspace/AlterWorkspaceMetadataParams.java
similarity index 100%
rename from src/us/kbase/workspace/AlterWorkspaceMetadataParams.java
rename to client/src/main/java/us/kbase/workspace/AlterWorkspaceMetadataParams.java
diff --git a/src/us/kbase/workspace/CloneWorkspaceParams.java b/client/src/main/java/us/kbase/workspace/CloneWorkspaceParams.java
similarity index 100%
rename from src/us/kbase/workspace/CloneWorkspaceParams.java
rename to client/src/main/java/us/kbase/workspace/CloneWorkspaceParams.java
diff --git a/src/us/kbase/workspace/CopyObjectParams.java b/client/src/main/java/us/kbase/workspace/CopyObjectParams.java
similarity index 100%
rename from src/us/kbase/workspace/CopyObjectParams.java
rename to client/src/main/java/us/kbase/workspace/CopyObjectParams.java
diff --git a/src/us/kbase/workspace/CreateWorkspaceParams.java b/client/src/main/java/us/kbase/workspace/CreateWorkspaceParams.java
similarity index 100%
rename from src/us/kbase/workspace/CreateWorkspaceParams.java
rename to client/src/main/java/us/kbase/workspace/CreateWorkspaceParams.java
diff --git a/src/us/kbase/workspace/ExternalDataUnit.java b/client/src/main/java/us/kbase/workspace/ExternalDataUnit.java
similarity index 100%
rename from src/us/kbase/workspace/ExternalDataUnit.java
rename to client/src/main/java/us/kbase/workspace/ExternalDataUnit.java
diff --git a/src/us/kbase/workspace/FuncInfo.java b/client/src/main/java/us/kbase/workspace/FuncInfo.java
similarity index 100%
rename from src/us/kbase/workspace/FuncInfo.java
rename to client/src/main/java/us/kbase/workspace/FuncInfo.java
diff --git a/src/us/kbase/workspace/GetAdminRoleResults.java b/client/src/main/java/us/kbase/workspace/GetAdminRoleResults.java
similarity index 100%
rename from src/us/kbase/workspace/GetAdminRoleResults.java
rename to client/src/main/java/us/kbase/workspace/GetAdminRoleResults.java
diff --git a/src/us/kbase/workspace/GetModuleInfoParams.java b/client/src/main/java/us/kbase/workspace/GetModuleInfoParams.java
similarity index 100%
rename from src/us/kbase/workspace/GetModuleInfoParams.java
rename to client/src/main/java/us/kbase/workspace/GetModuleInfoParams.java
diff --git a/src/us/kbase/workspace/GetNamesByPrefixParams.java b/client/src/main/java/us/kbase/workspace/GetNamesByPrefixParams.java
similarity index 100%
rename from src/us/kbase/workspace/GetNamesByPrefixParams.java
rename to client/src/main/java/us/kbase/workspace/GetNamesByPrefixParams.java
diff --git a/src/us/kbase/workspace/GetNamesByPrefixResults.java b/client/src/main/java/us/kbase/workspace/GetNamesByPrefixResults.java
similarity index 100%
rename from src/us/kbase/workspace/GetNamesByPrefixResults.java
rename to client/src/main/java/us/kbase/workspace/GetNamesByPrefixResults.java
diff --git a/src/us/kbase/workspace/GetObjectInfo3Params.java b/client/src/main/java/us/kbase/workspace/GetObjectInfo3Params.java
similarity index 100%
rename from src/us/kbase/workspace/GetObjectInfo3Params.java
rename to client/src/main/java/us/kbase/workspace/GetObjectInfo3Params.java
diff --git a/src/us/kbase/workspace/GetObjectInfo3Results.java b/client/src/main/java/us/kbase/workspace/GetObjectInfo3Results.java
similarity index 100%
rename from src/us/kbase/workspace/GetObjectInfo3Results.java
rename to client/src/main/java/us/kbase/workspace/GetObjectInfo3Results.java
diff --git a/src/us/kbase/workspace/GetObjectInfoNewParams.java b/client/src/main/java/us/kbase/workspace/GetObjectInfoNewParams.java
similarity index 100%
rename from src/us/kbase/workspace/GetObjectInfoNewParams.java
rename to client/src/main/java/us/kbase/workspace/GetObjectInfoNewParams.java
diff --git a/src/us/kbase/workspace/GetObjectOutput.java b/client/src/main/java/us/kbase/workspace/GetObjectOutput.java
similarity index 98%
rename from src/us/kbase/workspace/GetObjectOutput.java
rename to client/src/main/java/us/kbase/workspace/GetObjectOutput.java
index 177e3c334..06f5a0324 100644
--- a/src/us/kbase/workspace/GetObjectOutput.java
+++ b/client/src/main/java/us/kbase/workspace/GetObjectOutput.java
@@ -20,7 +20,7 @@
* compatibility.
* UnspecifiedObject data - The object's data.
* object_metadata metadata - Metadata for object retrieved/
- * @deprecated Workspaces.ObjectData
+ * @deprecated Workspace.ObjectData
*
*
*/
diff --git a/src/us/kbase/workspace/GetObjectParams.java b/client/src/main/java/us/kbase/workspace/GetObjectParams.java
similarity index 100%
rename from src/us/kbase/workspace/GetObjectParams.java
rename to client/src/main/java/us/kbase/workspace/GetObjectParams.java
diff --git a/src/us/kbase/workspace/GetObjectmetaParams.java b/client/src/main/java/us/kbase/workspace/GetObjectmetaParams.java
similarity index 100%
rename from src/us/kbase/workspace/GetObjectmetaParams.java
rename to client/src/main/java/us/kbase/workspace/GetObjectmetaParams.java
diff --git a/src/us/kbase/workspace/GetObjects2Params.java b/client/src/main/java/us/kbase/workspace/GetObjects2Params.java
similarity index 100%
rename from src/us/kbase/workspace/GetObjects2Params.java
rename to client/src/main/java/us/kbase/workspace/GetObjects2Params.java
diff --git a/src/us/kbase/workspace/GetObjects2Results.java b/client/src/main/java/us/kbase/workspace/GetObjects2Results.java
similarity index 100%
rename from src/us/kbase/workspace/GetObjects2Results.java
rename to client/src/main/java/us/kbase/workspace/GetObjects2Results.java
diff --git a/src/us/kbase/workspace/GetPermissionsMassParams.java b/client/src/main/java/us/kbase/workspace/GetPermissionsMassParams.java
similarity index 100%
rename from src/us/kbase/workspace/GetPermissionsMassParams.java
rename to client/src/main/java/us/kbase/workspace/GetPermissionsMassParams.java
diff --git a/src/us/kbase/workspace/GetWorkspacemetaParams.java b/client/src/main/java/us/kbase/workspace/GetWorkspacemetaParams.java
similarity index 100%
rename from src/us/kbase/workspace/GetWorkspacemetaParams.java
rename to client/src/main/java/us/kbase/workspace/GetWorkspacemetaParams.java
diff --git a/src/us/kbase/workspace/GrantModuleOwnershipParams.java b/client/src/main/java/us/kbase/workspace/GrantModuleOwnershipParams.java
similarity index 100%
rename from src/us/kbase/workspace/GrantModuleOwnershipParams.java
rename to client/src/main/java/us/kbase/workspace/GrantModuleOwnershipParams.java
diff --git a/src/us/kbase/workspace/ListAllTypesParams.java b/client/src/main/java/us/kbase/workspace/ListAllTypesParams.java
similarity index 100%
rename from src/us/kbase/workspace/ListAllTypesParams.java
rename to client/src/main/java/us/kbase/workspace/ListAllTypesParams.java
diff --git a/src/us/kbase/workspace/ListModuleVersionsParams.java b/client/src/main/java/us/kbase/workspace/ListModuleVersionsParams.java
similarity index 100%
rename from src/us/kbase/workspace/ListModuleVersionsParams.java
rename to client/src/main/java/us/kbase/workspace/ListModuleVersionsParams.java
diff --git a/src/us/kbase/workspace/ListModulesParams.java b/client/src/main/java/us/kbase/workspace/ListModulesParams.java
similarity index 100%
rename from src/us/kbase/workspace/ListModulesParams.java
rename to client/src/main/java/us/kbase/workspace/ListModulesParams.java
diff --git a/src/us/kbase/workspace/ListObjectsParams.java b/client/src/main/java/us/kbase/workspace/ListObjectsParams.java
similarity index 100%
rename from src/us/kbase/workspace/ListObjectsParams.java
rename to client/src/main/java/us/kbase/workspace/ListObjectsParams.java
diff --git a/src/us/kbase/workspace/ListWorkspaceIDsParams.java b/client/src/main/java/us/kbase/workspace/ListWorkspaceIDsParams.java
similarity index 100%
rename from src/us/kbase/workspace/ListWorkspaceIDsParams.java
rename to client/src/main/java/us/kbase/workspace/ListWorkspaceIDsParams.java
diff --git a/src/us/kbase/workspace/ListWorkspaceIDsResults.java b/client/src/main/java/us/kbase/workspace/ListWorkspaceIDsResults.java
similarity index 100%
rename from src/us/kbase/workspace/ListWorkspaceIDsResults.java
rename to client/src/main/java/us/kbase/workspace/ListWorkspaceIDsResults.java
diff --git a/src/us/kbase/workspace/ListWorkspaceInfoParams.java b/client/src/main/java/us/kbase/workspace/ListWorkspaceInfoParams.java
similarity index 100%
rename from src/us/kbase/workspace/ListWorkspaceInfoParams.java
rename to client/src/main/java/us/kbase/workspace/ListWorkspaceInfoParams.java
diff --git a/src/us/kbase/workspace/ListWorkspaceObjectsParams.java b/client/src/main/java/us/kbase/workspace/ListWorkspaceObjectsParams.java
similarity index 100%
rename from src/us/kbase/workspace/ListWorkspaceObjectsParams.java
rename to client/src/main/java/us/kbase/workspace/ListWorkspaceObjectsParams.java
diff --git a/src/us/kbase/workspace/ListWorkspacesParams.java b/client/src/main/java/us/kbase/workspace/ListWorkspacesParams.java
similarity index 100%
rename from src/us/kbase/workspace/ListWorkspacesParams.java
rename to client/src/main/java/us/kbase/workspace/ListWorkspacesParams.java
diff --git a/src/us/kbase/workspace/ModuleInfo.java b/client/src/main/java/us/kbase/workspace/ModuleInfo.java
similarity index 100%
rename from src/us/kbase/workspace/ModuleInfo.java
rename to client/src/main/java/us/kbase/workspace/ModuleInfo.java
diff --git a/src/us/kbase/workspace/ModuleVersions.java b/client/src/main/java/us/kbase/workspace/ModuleVersions.java
similarity index 100%
rename from src/us/kbase/workspace/ModuleVersions.java
rename to client/src/main/java/us/kbase/workspace/ModuleVersions.java
diff --git a/src/us/kbase/workspace/ObjectData.java b/client/src/main/java/us/kbase/workspace/ObjectData.java
similarity index 100%
rename from src/us/kbase/workspace/ObjectData.java
rename to client/src/main/java/us/kbase/workspace/ObjectData.java
diff --git a/src/us/kbase/workspace/ObjectIdentity.java b/client/src/main/java/us/kbase/workspace/ObjectIdentity.java
similarity index 100%
rename from src/us/kbase/workspace/ObjectIdentity.java
rename to client/src/main/java/us/kbase/workspace/ObjectIdentity.java
diff --git a/src/us/kbase/workspace/ObjectInfo.java b/client/src/main/java/us/kbase/workspace/ObjectInfo.java
similarity index 100%
rename from src/us/kbase/workspace/ObjectInfo.java
rename to client/src/main/java/us/kbase/workspace/ObjectInfo.java
diff --git a/src/us/kbase/workspace/ObjectMetadataUpdate.java b/client/src/main/java/us/kbase/workspace/ObjectMetadataUpdate.java
similarity index 100%
rename from src/us/kbase/workspace/ObjectMetadataUpdate.java
rename to client/src/main/java/us/kbase/workspace/ObjectMetadataUpdate.java
diff --git a/src/us/kbase/workspace/ObjectProvenanceInfo.java b/client/src/main/java/us/kbase/workspace/ObjectProvenanceInfo.java
similarity index 100%
rename from src/us/kbase/workspace/ObjectProvenanceInfo.java
rename to client/src/main/java/us/kbase/workspace/ObjectProvenanceInfo.java
diff --git a/src/us/kbase/workspace/ObjectSaveData.java b/client/src/main/java/us/kbase/workspace/ObjectSaveData.java
similarity index 100%
rename from src/us/kbase/workspace/ObjectSaveData.java
rename to client/src/main/java/us/kbase/workspace/ObjectSaveData.java
diff --git a/src/us/kbase/workspace/ObjectSpecification.java b/client/src/main/java/us/kbase/workspace/ObjectSpecification.java
similarity index 100%
rename from src/us/kbase/workspace/ObjectSpecification.java
rename to client/src/main/java/us/kbase/workspace/ObjectSpecification.java
diff --git a/src/us/kbase/workspace/ProvenanceAction.java b/client/src/main/java/us/kbase/workspace/ProvenanceAction.java
similarity index 100%
rename from src/us/kbase/workspace/ProvenanceAction.java
rename to client/src/main/java/us/kbase/workspace/ProvenanceAction.java
diff --git a/src/us/kbase/workspace/RegisterTypespecCopyParams.java b/client/src/main/java/us/kbase/workspace/RegisterTypespecCopyParams.java
similarity index 100%
rename from src/us/kbase/workspace/RegisterTypespecCopyParams.java
rename to client/src/main/java/us/kbase/workspace/RegisterTypespecCopyParams.java
diff --git a/src/us/kbase/workspace/RegisterTypespecParams.java b/client/src/main/java/us/kbase/workspace/RegisterTypespecParams.java
similarity index 100%
rename from src/us/kbase/workspace/RegisterTypespecParams.java
rename to client/src/main/java/us/kbase/workspace/RegisterTypespecParams.java
diff --git a/src/us/kbase/workspace/RemoveModuleOwnershipParams.java b/client/src/main/java/us/kbase/workspace/RemoveModuleOwnershipParams.java
similarity index 100%
rename from src/us/kbase/workspace/RemoveModuleOwnershipParams.java
rename to client/src/main/java/us/kbase/workspace/RemoveModuleOwnershipParams.java
diff --git a/src/us/kbase/workspace/RenameObjectParams.java b/client/src/main/java/us/kbase/workspace/RenameObjectParams.java
similarity index 100%
rename from src/us/kbase/workspace/RenameObjectParams.java
rename to client/src/main/java/us/kbase/workspace/RenameObjectParams.java
diff --git a/src/us/kbase/workspace/RenameWorkspaceParams.java b/client/src/main/java/us/kbase/workspace/RenameWorkspaceParams.java
similarity index 100%
rename from src/us/kbase/workspace/RenameWorkspaceParams.java
rename to client/src/main/java/us/kbase/workspace/RenameWorkspaceParams.java
diff --git a/src/us/kbase/workspace/SaveObjectParams.java b/client/src/main/java/us/kbase/workspace/SaveObjectParams.java
similarity index 100%
rename from src/us/kbase/workspace/SaveObjectParams.java
rename to client/src/main/java/us/kbase/workspace/SaveObjectParams.java
diff --git a/src/us/kbase/workspace/SaveObjectsParams.java b/client/src/main/java/us/kbase/workspace/SaveObjectsParams.java
similarity index 100%
rename from src/us/kbase/workspace/SaveObjectsParams.java
rename to client/src/main/java/us/kbase/workspace/SaveObjectsParams.java
diff --git a/src/us/kbase/workspace/SetGlobalPermissionsParams.java b/client/src/main/java/us/kbase/workspace/SetGlobalPermissionsParams.java
similarity index 100%
rename from src/us/kbase/workspace/SetGlobalPermissionsParams.java
rename to client/src/main/java/us/kbase/workspace/SetGlobalPermissionsParams.java
diff --git a/src/us/kbase/workspace/SetPermissionsParams.java b/client/src/main/java/us/kbase/workspace/SetPermissionsParams.java
similarity index 100%
rename from src/us/kbase/workspace/SetPermissionsParams.java
rename to client/src/main/java/us/kbase/workspace/SetPermissionsParams.java
diff --git a/src/us/kbase/workspace/SetWorkspaceDescriptionParams.java b/client/src/main/java/us/kbase/workspace/SetWorkspaceDescriptionParams.java
similarity index 100%
rename from src/us/kbase/workspace/SetWorkspaceDescriptionParams.java
rename to client/src/main/java/us/kbase/workspace/SetWorkspaceDescriptionParams.java
diff --git a/src/us/kbase/workspace/SubAction.java b/client/src/main/java/us/kbase/workspace/SubAction.java
similarity index 100%
rename from src/us/kbase/workspace/SubAction.java
rename to client/src/main/java/us/kbase/workspace/SubAction.java
diff --git a/src/us/kbase/workspace/SubObjectIdentity.java b/client/src/main/java/us/kbase/workspace/SubObjectIdentity.java
similarity index 100%
rename from src/us/kbase/workspace/SubObjectIdentity.java
rename to client/src/main/java/us/kbase/workspace/SubObjectIdentity.java
diff --git a/src/us/kbase/workspace/TypeInfo.java b/client/src/main/java/us/kbase/workspace/TypeInfo.java
similarity index 100%
rename from src/us/kbase/workspace/TypeInfo.java
rename to client/src/main/java/us/kbase/workspace/TypeInfo.java
diff --git a/src/us/kbase/workspace/WorkspaceClient.java b/client/src/main/java/us/kbase/workspace/WorkspaceClient.java
similarity index 99%
rename from src/us/kbase/workspace/WorkspaceClient.java
rename to client/src/main/java/us/kbase/workspace/WorkspaceClient.java
index dfb672bcb..cd462c68b 100644
--- a/src/us/kbase/workspace/WorkspaceClient.java
+++ b/client/src/main/java/us/kbase/workspace/WorkspaceClient.java
@@ -42,7 +42,7 @@ public class WorkspaceClient {
private static URL DEFAULT_URL = null;
static {
try {
- DEFAULT_URL = new URL("https://kbase.us/services/ws/");
+ DEFAULT_URL = new URL("https://ci.kbase.us/services/ws");
} catch (MalformedURLException mue) {
throw new RuntimeException("Compile error in client - bad url compiled");
}
diff --git a/src/us/kbase/workspace/WorkspaceIdentity.java b/client/src/main/java/us/kbase/workspace/WorkspaceIdentity.java
similarity index 100%
rename from src/us/kbase/workspace/WorkspaceIdentity.java
rename to client/src/main/java/us/kbase/workspace/WorkspaceIdentity.java
diff --git a/src/us/kbase/workspace/WorkspacePermissions.java b/client/src/main/java/us/kbase/workspace/WorkspacePermissions.java
similarity index 100%
rename from src/us/kbase/workspace/WorkspacePermissions.java
rename to client/src/main/java/us/kbase/workspace/WorkspacePermissions.java
diff --git a/docshtml/Workspace.html b/docshtml/Workspace.html
index d66311dfb..ec64532bb 100644
--- a/docshtml/Workspace.html
+++ b/docshtml/Workspace.html
@@ -1 +1 @@
-
Workspace module Workspace { typedef int boolean ;
typedef int ws_id ;
typedef string ws_name ;
typedef string permission ;
typedef string username ;
typedef string timestamp ;
typedef int epoch ;
typedef string type_string ;
typedef string id_type ;
typedef string ;
typedef mapping < string , string > usermeta ;
typedef string lock_status ;
typedef structure { } WorkspaceIdentity ; typedef int obj_id ;
typedef string obj_name ;
typedef int obj_ver ;
typedef string obj_ref ;
typedef structure { } ObjectIdentity ; typedef string ref_string ;
typedef string object_path ;
typedef structure { } ObjectSpecification ; typedef tuple < obj_name id , type_string type , timestamp moddate , int instance , string command , username lastmodifier , username owner , ws_name workspace , string ref , string chsum , usermeta metadata , obj_id objid > object_metadata ; typedef tuple < obj_id objid , obj_name name , type_string type , timestamp save_date , int version , username saved_by , ws_id wsid , ws_name workspace , string chsum , int size , usermeta meta > object_info ; typedef structure { int version ;
string chsum ;
int size ;
} ObjectInfo ; typedef structure { string resource_name ;
string resource_url ;
string resource_version ;
epoch resource_release_epoch ; string data_url ;
string data_id ;
string description ;
} ExternalDataUnit ; typedef structure { string name ;
string ver ;
string code_url ;
string commit ;
string endpoint_url ;
} SubAction ; typedef structure { string caller ;
string service ;
string service_ver ;
string method ;
list < UnspecifiedObject > method_params ;
string script ;
string script_ver ;
string script_command_line ;
list < string > intermediate_incoming ;
list < string > intermediate_outgoing ;
mapping < string , string > custom ;
string description ;
} ProvenanceAction ; funcdef ver ( ) returns ( string ver ) authentication none ;
typedef structure { string description ;
} CreateWorkspaceParams ; typedef structure { list < string > remove ;
} AlterWorkspaceMetadataParams ; typedef structure { string description ;
} CloneWorkspaceParams ; funcdef get_workspace_description ( WorkspaceIdentity wsi ) returns ( string description ) authentication optional ; typedef structure { } SetPermissionsParams ; typedef structure { } SetGlobalPermissionsParams ; typedef structure { string description ;
} SetWorkspaceDescriptionParams ; typedef structure { } GetPermissionsMassParams ; typedef structure { } WorkspacePermissions ; typedef structure { UnspecifiedObject data ;
mapping < string , string > metadata ;
string auth ;
} save_object_params ; typedef structure { UnspecifiedObject data ;
} ObjectSaveData ; typedef structure { } SaveObjectsParams ; typedef structure { string handle_error ;
string handle_stacktrace ;
} ObjectProvenanceInfo ; typedef structure { UnspecifiedObject data ;
string handle_error ;
string handle_stacktrace ;
} ObjectData ; typedef structure { boolean skip_external_system_updates ; boolean batch_external_system_updates ; } GetObjects2Params ; typedef structure { } GetObjects2Results ; funcdef list_referencing_objects ( list < ObjectIdentity > object_ids ) returns ( list < list < object_info > > referrers ) authentication optional ; funcdef list_referencing_object_counts ( list < ObjectIdentity > object_ids ) returns ( list < int > counts ) authentication optional ; typedef structure { } ListWorkspaceInfoParams ; typedef structure { } ListWorkspaceIDsParams ; typedef structure { list < int > workspaces ;
list < int > pub ;
} ListWorkspaceIDsResults ; typedef structure { string startafter ;
int limit ;
} ListObjectsParams ; typedef structure { } GetObjectInfo3Params ; typedef structure { } GetObjectInfo3Results ; typedef structure { } RenameWorkspaceParams ; typedef structure { } RenameObjectParams ; typedef structure { } CopyObjectParams ; typedef structure { string prefix ;
} GetNamesByPrefixParams ; typedef structure { } GetNamesByPrefixResults ; funcdef hide_objects ( list < ObjectIdentity > object_ids ) returns ( ) authentication required ; funcdef unhide_objects ( list < ObjectIdentity > object_ids ) returns ( ) authentication required ; funcdef delete_objects ( list < ObjectIdentity > object_ids ) returns ( ) authentication required ; funcdef undelete_objects ( list < ObjectIdentity > object_ids ) returns ( ) authentication required ; typedef string typespec ;
typedef string modulename ;
typedef string typename ;
typedef string typever ;
typedef string func_string ;
typedef int spec_version ;
typedef string jsonschema ;
funcdef request_module_ownership ( modulename mod ) returns ( ) authentication required ; typedef structure { } RegisterTypespecParams ; typedef structure { string external_workspace_url ;
} RegisterTypespecCopyParams ; typedef structure { } ListModulesParams ; typedef structure { } ListModuleVersionsParams ; typedef structure { } ModuleVersions ; typedef structure { } GetModuleInfoParams ; typedef structure { string description ;
string chsum ;
} ModuleInfo ; typedef structure { string description ;
string spec_def ;
string parsing_structure ;
} TypeInfo ; typedef structure { string description ;
string spec_def ;
string parsing_structure ;
} FuncInfo ; typedef structure { } GrantModuleOwnershipParams ; typedef structure { } RemoveModuleOwnershipParams ; typedef structure { } ListAllTypesParams ; typedef structure { string adminrole ;
} GetAdminRoleResults ; typedef structure { list < string > remove ;
} ObjectMetadataUpdate ; typedef structure { } AlterAdminObjectMetadataParams ; funcdef administer ( UnspecifiedObject command ) returns ( UnspecifiedObject response ) authentication required ;
} ;
\ No newline at end of file
+Workspace module Workspace { typedef int boolean ;
typedef int ws_id ;
typedef string ws_name ;
typedef string permission ;
typedef string username ;
typedef string timestamp ;
typedef int epoch ;
typedef string type_string ;
typedef string id_type ;
typedef string ;
typedef mapping < string , string > usermeta ;
typedef string lock_status ;
typedef structure { } WorkspaceIdentity ; typedef int obj_id ;
typedef string obj_name ;
typedef int obj_ver ;
typedef string obj_ref ;
typedef structure { } ObjectIdentity ; typedef string ref_string ;
typedef string object_path ;
typedef structure { } ObjectSpecification ; typedef tuple < obj_name id , type_string type , timestamp moddate , int instance , string command , username lastmodifier , username owner , ws_name workspace , string ref , string chsum , usermeta metadata , obj_id objid > object_metadata ; typedef tuple < obj_id objid , obj_name name , type_string type , timestamp save_date , int version , username saved_by , ws_id wsid , ws_name workspace , string chsum , int size , usermeta meta > object_info ; typedef structure { int version ;
string chsum ;
int size ;
} ObjectInfo ; typedef structure { string resource_name ;
string resource_url ;
string resource_version ;
epoch resource_release_epoch ; string data_url ;
string data_id ;
string description ;
} ExternalDataUnit ; typedef structure { string name ;
string ver ;
string code_url ;
string commit ;
string endpoint_url ;
} SubAction ; typedef structure { string caller ;
string service ;
string service_ver ;
string method ;
list < UnspecifiedObject > method_params ;
string script ;
string script_ver ;
string script_command_line ;
list < string > intermediate_incoming ;
list < string > intermediate_outgoing ;
mapping < string , string > custom ;
string description ;
} ProvenanceAction ; funcdef ver ( ) returns ( string ver ) authentication none ;
typedef structure { string description ;
} CreateWorkspaceParams ; typedef structure { list < string > remove ;
} AlterWorkspaceMetadataParams ; typedef structure { string description ;
} CloneWorkspaceParams ; funcdef get_workspace_description ( WorkspaceIdentity wsi ) returns ( string description ) authentication optional ; typedef structure { } SetPermissionsParams ; typedef structure { } SetGlobalPermissionsParams ; typedef structure { string description ;
} SetWorkspaceDescriptionParams ; typedef structure { } GetPermissionsMassParams ; typedef structure { } WorkspacePermissions ; typedef structure { UnspecifiedObject data ;
mapping < string , string > metadata ;
string auth ;
} save_object_params ; typedef structure { UnspecifiedObject data ;
} ObjectSaveData ; typedef structure { } SaveObjectsParams ; typedef structure { string handle_error ;
string handle_stacktrace ;
} ObjectProvenanceInfo ; typedef structure { UnspecifiedObject data ;
string handle_error ;
string handle_stacktrace ;
} ObjectData ; typedef structure { boolean skip_external_system_updates ; boolean batch_external_system_updates ; } GetObjects2Params ; typedef structure { } GetObjects2Results ; funcdef list_referencing_objects ( list < ObjectIdentity > object_ids ) returns ( list < list < object_info > > referrers ) authentication optional ; funcdef list_referencing_object_counts ( list < ObjectIdentity > object_ids ) returns ( list < int > counts ) authentication optional ; typedef structure { } ListWorkspaceInfoParams ; typedef structure { } ListWorkspaceIDsParams ; typedef structure { list < int > workspaces ;
list < int > pub ;
} ListWorkspaceIDsResults ; typedef structure { string startafter ;
int limit ;
} ListObjectsParams ; typedef structure { } GetObjectInfo3Params ; typedef structure { } GetObjectInfo3Results ; typedef structure { } RenameWorkspaceParams ; typedef structure { } RenameObjectParams ; typedef structure { } CopyObjectParams ; typedef structure { string prefix ;
} GetNamesByPrefixParams ; typedef structure { } GetNamesByPrefixResults ; funcdef hide_objects ( list < ObjectIdentity > object_ids ) returns ( ) authentication required ; funcdef unhide_objects ( list < ObjectIdentity > object_ids ) returns ( ) authentication required ; funcdef delete_objects ( list < ObjectIdentity > object_ids ) returns ( ) authentication required ; funcdef undelete_objects ( list < ObjectIdentity > object_ids ) returns ( ) authentication required ; typedef string typespec ;
typedef string modulename ;
typedef string typename ;
typedef string typever ;
typedef string func_string ;
typedef int spec_version ;
typedef string jsonschema ;
funcdef request_module_ownership ( modulename mod ) returns ( ) authentication required ; typedef structure { } RegisterTypespecParams ; typedef structure { string external_workspace_url ;
} RegisterTypespecCopyParams ; typedef structure { } ListModulesParams ; typedef structure { } ListModuleVersionsParams ; typedef structure { } ModuleVersions ; typedef structure { } GetModuleInfoParams ; typedef structure { string description ;
string chsum ;
} ModuleInfo ; typedef structure { string description ;
string spec_def ;
string parsing_structure ;
} TypeInfo ; typedef structure { string description ;
string spec_def ;
string parsing_structure ;
} FuncInfo ; typedef structure { } GrantModuleOwnershipParams ; typedef structure { } RemoveModuleOwnershipParams ; typedef structure { } ListAllTypesParams ; typedef structure { string adminrole ;
} GetAdminRoleResults ; typedef structure { list < string > remove ;
} ObjectMetadataUpdate ; typedef structure { } AlterAdminObjectMetadataParams ; funcdef administer ( UnspecifiedObject command ) returns ( UnspecifiedObject response ) authentication required ;
} ;
\ No newline at end of file
diff --git a/docsource/buildandconfigure.rst b/docsource/buildandconfigure.rst
index 4001e515e..8233d16c5 100644
--- a/docsource/buildandconfigure.rst
+++ b/docsource/buildandconfigure.rst
@@ -3,79 +3,30 @@
Build, configure, and deploy
============================
-These instructions assume the reader is familiar with the process of deploying
-a KBase module, including the `runtime `_
-and `dev_container `_, and has access to
-a system with the KBase runtime installed. These instructions are based on the
-``kbase-image-v26`` runtime image.
-
-Unlike many modules the WSS can be built and tested outside the
-``dev_container``, but the ``dev_container`` is required to build and test the
-scripts. These instructions are for deploying the server and so do not
-address the scripts. Building outside the ``dev_container`` means the Makefile
-uses several default values for deployment - if you wish to use other values
-deploy from the ``dev_container`` as usual.
-
Build the workspace service
---------------------------
-First checkout the ``dev_container``::
+Get the code::
- /kb$ sudo git clone https://github.com/kbase/dev_container
- Cloning into 'dev_container'...
- remote: Counting objects: 1097, done.
- remote: Total 1097 (delta 0), reused 0 (delta 0), pack-reused 1097
- Receiving objects: 100% (1097/1097), 138.81 KiB, done.
- Resolving deltas: 100% (661/661), done.
-.. note::
- In the v26 image, ``/kb`` is owned by ``root``. As an alternative to
- repetitive ``sudo`` s, ``chown`` ``/kb`` to the user.
-
-Bootstrap and source the user environment file, which sets up Java and Perl
-paths which the WSS build needs::
-
- /kb$ cd dev_container/
- /kb/dev_container$ sudo ./bootstrap /kb/runtime/
- /kb/dev_container$ source user-env.sh
-
-Now the WSS may be built. If building inside the ``dev_container`` all the
-dependencies from the ``DEPENDENCIES`` file are required, but to build outside
-the ``dev_container``, only the ``jars`` and ``workspace_deluxe`` repos are
-necessary::
-
- ~$ mkdir kb
- ~$ cd kb
- ~/kb$ git clone https://github.com/kbase/workspace_deluxe
- Cloning into 'workspace_deluxe'...
- remote: Counting objects: 21961, done.
- remote: Compressing objects: 100% (40/40), done.
- remote: Total 21961 (delta 20), reused 0 (delta 0), pack-reused 21921
- Receiving objects: 100% (21961/21961), 21.42 MiB | 16.27 MiB/s, done.
- Resolving deltas: 100% (13979/13979), done.
-
- ~/kb$ git clone https://github.com/kbase/jars
- Cloning into 'jars'...
- remote: Counting objects: 1466, done.
- remote: Total 1466 (delta 0), reused 0 (delta 0), pack-reused 1466
- Receiving objects: 100% (1466/1466), 59.43 MiB | 21.49 MiB/s, done.
- Resolving deltas: 100% (626/626), done.
-
- ~/kb$ cd workspace_deluxe/
- ~/kb/workspace_deluxe$ make
- *snip*
+ ~$ git clone https://github.com/kbase/workspace_deluxe
-``make`` will build:
+Build::
-* A workspace client jar in ``/dist/client``
-* A workspace server jar in ``/dist``
-* This documentation in ``/docs``
+ ~$ cd workspace_deluxe/
+ ~/workspace_deluxe$ ./gradlew buildAll
+ *snip*
-.. note::
- If the build fails due to a sphinx error, sphinx may require an upgrade to
- >= 1.3::
+``buildAll`` will build several artifacts:
- $ sudo pip install sphinx --upgrade
+* A workspace client jar at ``client/build/libs/client.jar``
+* A workspace server WAR file at ``service/build/libs/service.war``
+* A workspace shadow jar containing all test code at
+ ``service/build/libs/service-test-shadow-all.jar``. This is useful for starting a workpace server
+ from other processes without needing a docker container, but should **only** be used for testing.
+
+It will also build the ``service/build/update_workspace_database_schema`` script which is used to
+update the workspace schema if it changes from one version to another.
.. _servicedeps:
@@ -133,10 +84,7 @@ to create the file.
It is especially important to protect the credentials that the WSS uses
to talk to S3 (``backend-token``) as they can be used to delete
or corrupt the workspace data. At minimum, only the user that runs the WSS (which
- should **not** be ``root``) should have read access to ``deploy.cfg``. Also be
- aware that the ``deploy.cfg`` contents are copied to, by default,
- ``/kb/deployment/deployment.cfg`` when the workspace is deployed from the
- ``dev_container``.
+ should **not** be ``root``) should have read access to ``deploy.cfg``.
.. _configurationparameters:
@@ -338,9 +286,6 @@ is checked against ``bytestream-user``, and if the names differ, the server will
.. warning:: Once any data containing Shock node IDs has been saved by the workspace, changing the
shock user will result in unspecified behavior, including data corruption.
-.. note:: It is strongly encouraged to use different accounts for the backend shock user and
- the linking shock user so that core workspace data can be distinguished from linked data.
-
bytestream-token
""""""""""""""""
**Required**: If linking WSS objects to Shock nodes is desired.
@@ -408,6 +353,17 @@ for a request, in order of precedence, is 1) the first address in
Deploy and start the server
---------------------------
+.. todo::
+ This section needs an entire rewrite from scratch with Tomcat as the application server and
+ a clean, easy install instruction set or a script to set things up correctly (e.g.
+ the port and memory settings in the ``deploy.cfg`` file are currently ignored).
+ Currently, the easiest way to run the service locally is via ``docker compose up -d --build``
+ which will start a KBase auth server in testmode and the workspace. If deploying outside
+ a docker container is required, the best option for now is to inspect the Dockerfile and
+ attempt to follow the steps there.
+
+ Also, the developer and administrator server startup documentation should be unified.
+
To avoid various issues when deploying, ``chown`` the deployment directory
to the user. Alternatively, chown ``/kb/`` to the user, or deploy as root.
::
diff --git a/docsource/builddocs.rst b/docsource/builddocs.rst
index 3bb3c2cdf..ea4e37bc7 100644
--- a/docsource/builddocs.rst
+++ b/docsource/builddocs.rst
@@ -1,9 +1,8 @@
Build documentation
===================
-This documentation assumes the documentation build occurs on Ubuntu 12.04LTS,
-but things should work similarly on other distributions. It does **not**
-assume that the KBase runtime or ``dev_container`` are installed.
+This documentation assumes the documentation build occurs on Ubuntu 18.04LTS,
+but things should work similarly on other distributions.
Requirements
------------
@@ -12,43 +11,17 @@ The build requires:
Java JDK 11
-`Java ant `_::
+`Python `_ `Sphinx `_ 1.3+
- sudo apt-get install ant
-
-`Python `_ `Sphinx `_ 1.3+::
-
-Either
-
- sudo apt-get install python3-sphinx
-
-or, if the `python3-sphinx` package is not available for your distribution
-
- curl https://bootstrap.pypa.io/get-pip.py > get-pip.py
- sudo python get-pip.py
- sudo pip install sphinx --upgrade
.. _getcode:
Getting the code
----------------
-Clone the jars and workspace_deluxe repos::
-
- bareubuntu@bu:~/ws$ git clone https://github.com/kbase/jars
- Cloning into 'jars'...
- remote: Counting objects: 1466, done.
- remote: Total 1466 (delta 0), reused 0 (delta 0), pack-reused 1466
- Receiving objects: 100% (1466/1466), 59.43 MiB | 2.43 MiB/s, done.
- Resolving deltas: 100% (626/626), done.
+Clone the workspace_deluxe repo::
bareubuntu@bu:~/ws$ git clone https://github.com/kbase/workspace_deluxe
- Cloning into 'workspace_deluxe'...
- remote: Counting objects: 22004, done.
- remote: Compressing objects: 100% (82/82), done.
- remote: Total 22004 (delta 41), reused 0 (delta 0), pack-reused 21921
- Receiving objects: 100% (22004/22004), 21.44 MiB | 2.44 MiB/s, done.
- Resolving deltas: 100% (14000/14000), done.
Build
-----
@@ -56,6 +29,6 @@ Build
Build the documentation::
bareubuntu@bu:~/ws$ cd workspace_deluxe/
- bareubuntu@bu:~/ws/workspace_deluxe$ make build-docs
+ bareubuntu@bu:~/ws/workspace_deluxe$ ./gradlew buildDocs
-The build directory is ``docs``.
+The build directory is ``service/build/docs``.
diff --git a/docsource/buildinitclient.rst b/docsource/buildinitclient.rst
index 9921255e9..25456555e 100644
--- a/docsource/buildinitclient.rst
+++ b/docsource/buildinitclient.rst
@@ -4,40 +4,21 @@ Build and initialize the workspace client
=========================================
This documentation describes how to build and initialize the workspace clients.
-It assumes the documentation build occurs on Ubuntu 12.04LTS,
-but things should work similarly on other distributions. It assumes that the
-``workspace_deluxe`` and ``jars`` repos have been cloned (see :ref:`getcode`)
-but does **not** assume that the KBase runtime or ``dev_container`` are
-installed.
+It assumes the build occurs on Ubuntu 18.04LTS. It assumes that the
+``workspace_deluxe`` repo has been cloned (see :ref:`getcode`).
Python client
-------------
-Currently the Python client only supports Python 2.7. The Python client checked
-into ``libs/biokbase/workspace/client.py`` does not
-require a build, but does require the ``requests`` (v 2+) 3rd party library, which,
-depending on the Python version, can be
-`tricky to install securely `_.
-The following incantation worked for the author::
-
- sudo apt-get install python-dev libffi-dev libssl-dev
- curl https://bootstrap.pypa.io/get-pip.py > get-pip.py
- sudo python get-pip.py
- sudo pip install --upgrade requests
- sudo pip install --upgrade requests[security]
-
-For python 2.7.9+ ``sudo pip install --upgrade requests`` should
-work.
+The Python client checked into ``libs/biokbase/workspace/client.py`` does not
+require a build, but does require the `requests `_ library.
Change the working directory to the lib directory::
bareubuntu@bu:~/ws$ cd workspace_deluxe/lib/
bareubuntu@bu:~/ws/workspace_deluxe/lib$
-Alternatively, add this directory to the ``PYTHONPATH``. If deploying with
-the ``dev_container``, the client will be copied to
-``/kb/deployment/lib/biokbase/workspace/client.py`` and the ``user-env`` script
-will set up the ``PYTHONPATH``.
+Alternatively, add this directory to the ``PYTHONPATH``.
Here we use the iPython interpreter to demonstrate initializing the client,
but the standard python interpreter will also work::
@@ -47,57 +28,50 @@ but the standard python interpreter will also work::
.. code-block:: python
In [1]: from biokbase.workspace.client import Workspace
- In [2]: ws = Workspace('https://kbase.us/services/ws', user_id='kbasetest', password=[redacted])
+ In [2]: ws = Workspace('https://kbase.us/services/ws', token=[redacted])
In [3]: ws.ver()
- Out[3]: u'0.3.5'
+ Out[3]: u'0.14.2'
+
+Developer tokens are available from the Account page of the KBase Narrative for approved developers
+or can be created in the testmode API of the
+`KBase authentication server `_ if running a local workspace and
+auth server.
Java client
-----------
-The Java client build requires:
-
-Java JDK 6+ (`install instructions `_)
+The easiest way to use the client is with a build tool like Gradle or Maven, fetching the client
+via https://jitpack.io/#kbase/workspace_deluxe.
-`Java ant `_::
+If you want to build the client manually read on.
- sudo apt-get install ant
+The Java client build requires Java JDK 11+.
Build the client::
- bareubuntu@bu:~/ws/workspace_deluxe$ make compile-java-client
- ant compile_client
- Buildfile: /home/bareubuntu/ws/workspace_deluxe/build.xml
+ bareubuntu@bu:~/ws/workspace_deluxe$ ./gradlew jar
- compile_client:
- [mkdir] Created dir: /home/bareubuntu/ws/workspace_deluxe/client_classes
- [javac] Compiling 48 source files to /home/bareubuntu/ws/workspace_deluxe/client_classes
- [jar] Building jar: /home/bareubuntu/ws/workspace_deluxe/dist/client/WorkspaceClient.jar
- [delete] Deleting directory /home/bareubuntu/ws/workspace_deluxe/client_classes
+The client jar is created in ``client/build/libs/client.jar``.
- BUILD SUCCESSFUL
- Total time: 3 seconds
+For simplicity, copy the required jars into a single directory. You will also need the following
+jars, which can be downloaded from a maven repository or https://jitpack.io:
-The client jar is created in ``dist/client/WorkspaceClient.jar``.
+* The `Jackson `_ annotations, core, and databind jars
+ (maven)
+* The javax annotation api jar (maven)
+* The `KBase auth client jar `_
+* The `KBase java_common jar `_
-For simplicity, copy the required jars into a single directory::
+::
bareubuntu@bu:~/ws$ mkdir tryjavaclient
bareubuntu@bu:~/ws$ cd tryjavaclient/
- bareubuntu@bu:~/ws/tryjavaclient$ cp ../workspace_deluxe/dist/client/WorkspaceClient.jar .
- bareubuntu@bu:~/ws/tryjavaclient$ cp ../jars/lib/jars/jackson/jackson-annotations-2.5.4.jar .
- bareubuntu@bu:~/ws/tryjavaclient$ cp ../jars/lib/jars/jackson/jackson-core-2.5.4.jar .
- bareubuntu@bu:~/ws/tryjavaclient$ cp ../jars/lib/jars/jackson/jackson-databind-2.5.4.jar .
- bareubuntu@bu:~/ws/tryjavaclient$ cp ../jars/lib/jars/kbase/auth/kbase-auth-0.4.4.jar .
- bareubuntu@bu:~/ws/tryjavaclient$ cp ../jars/lib/jars/kbase/common/kbase-common-0.0.24.jar .
bareubuntu@bu:~/ws/tryjavaclient$ ls
- jackson-annotations-2.5.4.jar kbase-auth-0.4.4.jar
- jackson-core-2.5.4.jar kbase-common-0.0.24.jar
- jackson-databind-2.5.4.jar WorkspaceClient.jar
-
-
-When creating an application using the WSS it's advisable to use a build tool
-like ``ant``, ``maven``, or ``gradle`` to organize the required jars.
+ auth2_client_java-0.5.0.jar java_common-0.3.0.jar
+ jackson-annotations-2.9.9.jar javax.annotation-api-1.3.2.jar
+ jackson-core-2.9.9.jar client.jar
+ jackson-databind-2.9.9.jar
This simple program initializes and calls a method on the WSS client::
@@ -105,26 +79,23 @@ This simple program initializes and calls a method on the WSS client::
.. code-block:: java
+ import java.net.URI;
import java.net.URL;
- import us.kbase.auth.AuthConfig;
- import us.kbase.workspace.WorkspaceClient;
- import us.kbase.auth.ConfigurableAuthService;
import us.kbase.auth.AuthToken;
+ import us.kbase.auth.client.AuthClient;
+ import us.kbase.workspace.WorkspaceClient;
public class TryWorkspaceClient {
public static void main(String[] args) throws Exception {
- String authUrl =
- "https://ci.kbase.us/services/auth/api/legacy/KBase/Sessions/Login/";
-
- ConfigurableAuthService authService = new ConfigurableAuthService(
- new AuthConfig().withKBaseAuthServerURL(new URL(authUrl));
+ final String authUrl = "https://appdev.kbase.us/services/auth/";
+ final AuthClient authcli = AuthClient.from(new URI(authUrl));
- String tokenString = YOUR_AUTH_TOKEN_HERE;
- AuthToken token = authService.validateToken(tokenString);
+ final String tokenString = args[0];
+ final AuthToken token = authcli.validateToken(tokenString);
- WorkspaceClient client = new WorkspaceClient(
- new URL("https://ci.kbase.us/services/ws/"),
+ final WorkspaceClient client = new WorkspaceClient(
+ new URL("https://appdev.kbase.us/services/ws/"),
token);
System.out.println(client.ver());
}
@@ -133,18 +104,11 @@ This simple program initializes and calls a method on the WSS client::
Compile and run::
bareubuntu@bu:~/ws/tryjavaclient$ javac -cp "./*" TryWorkspaceClient.java
- bareubuntu@bu:~/ws/tryjavaclient$ java -cp "./:./*" TryWorkspaceClient
- 0.8.0
+ bareubuntu@bu:~/ws/tryjavaclient$ java -cp "./:./*" TryWorkspaceClient $KBASE_TOKEN
+ 0.14.2
For more client initialization and configuration options, see :ref:`apidocs`.
-Perl client
------------
-
-.. todo::
- Build and initialization instructions for the Perl client. If this can
- be done without the KBase runtime & dev_container that'd be ideal.
-
Javascript client
-----------------
diff --git a/docsource/conf.py b/docsource/conf.py
index 62b8d1086..d7f6497c9 100644
--- a/docsource/conf.py
+++ b/docsource/conf.py
@@ -50,9 +50,9 @@
# built documents.
#
# The short X.Y version.
-version = '0.14'
+version = '0.15'
# The full version, including alpha/beta/rc tags.
-release = '0.14.3'
+release = '0.15.0'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff --git a/docsource/developers.rst b/docsource/developers.rst
index 2e027c5fa..cff1baa31 100644
--- a/docsource/developers.rst
+++ b/docsource/developers.rst
@@ -22,9 +22,15 @@ Branches:
Recompiling the generated code
------------------------------
-To compile, simply run ``make compile``. The
-`kb-sdk `_ executable must be in the system
-path.
+To compile the Workspace generated code from ``workspace.spec``, run ``./gradlew sdkCompile``.
+
+Note that:
+
+* The `kb-sdk `_ executable must be in the system path.
+* The WorkspaceServer class compiled in constructor has been commented out in order to use
+ a custom constructor. In order for the compile to succeed, the custom constructor must be
+ commented out and the compiled in constructor uncommented. When the compile is complete the
+ constructors must be switched back.
Release checklist
-----------------
@@ -52,6 +58,16 @@ Release checklist
Deploying the Workspace Service locally
----------------------------------------
+
+.. todo::
+ This section needs an entire rewrite from scratch with Tomcat as the application server.
+ Currently, the easiest way to run the service locally is via ``docker compose up -d --build``
+ which will start a KBase auth server in testmode and the workspace. If deploying outside
+ a docker container is required, the best option for now is to inspect the Dockerfile and
+ attempt to follow the steps there.
+
+ Also, the developer and administrator server startup documentation should be unified.
+
These instructions are known to work on Ubuntu 16.04 LTS.
1. Install the dependencies `Java8 `_, `Apache Ant `_, pymongo v2.8, `GlassFish v3.1.2.2 `_ , `mongodb >=v2.6.* `_, `kb-sdk `_ and the `KBase Jars `_ directory.
diff --git a/docsource/releasenotes.rst b/docsource/releasenotes.rst
index 6d67c630c..728cfbd9a 100644
--- a/docsource/releasenotes.rst
+++ b/docsource/releasenotes.rst
@@ -3,13 +3,24 @@
Workspace service release notes
===============================
-VERSION: 0.14.3 (Released 2/22/2024)
+VERSION: 0.15.0 (Released TBD)
------------------------------------
-UPDATES:
+BACKWARDS INCOMPATIBILIES:
-* The MongoDB clients have been updated to the most recent version and the service tested against Mongo 7.
+* The Docserver now logs to standard out in the same way as the workspace server.
+
+UPDATES:
+* The MongoDB clients have been updated to the most recent version and the service tested
+ against Mongo 7.
+* Gradle has replaced Ant as the build tool. As a consequence, all the built artifacts are now
+ located in Gradle build directories, including the ``update_workspace_database_schema`` script.
+* Client and test shadow jars have been published on jitpack.io.
+ * The shadow jar is intended for supporting tests in other repos.
+ This allows for starting the workspace service from a single jar in other applications.
+ All dependencies are included in the jar in shadow namespaces so they don't conflict with
+ different versions of the dependencies in the application under test.
VERSION: 0.14.2 (Released 11/9/2023)
------------------------------------
diff --git a/docsource/test.rst b/docsource/test.rst
index 68ca62ce1..9992a62bc 100644
--- a/docsource/test.rst
+++ b/docsource/test.rst
@@ -8,6 +8,10 @@ In order to run tests:
* A Linux Shock binary is provided in ``shock_builds``.
+.. todo::
+ Update these instructions for the `Blobstore `_,
+ which has replaced Shock.
+
* Minio must be installed, but not necessarily running.
* Minio version must be greater than 2019-05-23T00-29-34Z.
@@ -15,11 +19,12 @@ In order to run tests:
* The Handle Service must be installed, but not necessarily running. See ``test.cfg.example``
for setup instructions.
-* The KBase Jars repo must be cloned into the parent directory of the workspace repo directory,
- e.g::
+* The Sample Service must be installed, but not necessarily running. See ``test.cfg.example``
+ for setup instructions.
+
+* `ArangoDB `_ must be installed but not necessarily running as it is a
+ requirement of the Sample Service.
- ls
- jars workspace_deluxe
See :ref:`servicedeps` for more information about these test dependencies.
@@ -30,7 +35,9 @@ Then::
cd python_dependencies/
pipenv shell
cd ..
- make test
+ ./gradlew test
-The tests currently take 20-30 minutes to run on spinning disks, or 8-10 minutes on SSDs.
+The ``testQuick`` target is substantially faster but does not run all tests.
+.. todo::
+ Move to developer documentation vs. server administrator documenation.
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 000000000..41d9927a4
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 000000000..17655d0ef
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,5 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100755
index 000000000..1b6c78733
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,234 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
+
+APP_NAME="Gradle"
+APP_BASE_NAME=${0##*/}
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+# Collect all arguments for the java command;
+# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+# shell script including quotes and variable substitutions, so put them in
+# double quotes to make sure that they get re-expanded; and
+# * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ org.gradle.wrapper.GradleWrapperMain \
+ "$@"
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/lib/Bio/KBase/workspace/Client.pm b/lib/Bio/KBase/workspace/Client.pm
index 133e004a7..9e57b24c6 100644
--- a/lib/Bio/KBase/workspace/Client.pm
+++ b/lib/Bio/KBase/workspace/Client.pm
@@ -48,7 +48,7 @@ sub new
if (!defined($url))
{
- $url = 'https://kbase.us/services/ws/';
+ $url = 'https://ci.kbase.us/services/ws';
}
my $self = {
@@ -10783,7 +10783,7 @@ compatibility.
UnspecifiedObject data - The object's data.
object_metadata metadata - Metadata for object retrieved/
-@deprecated Workspaces.ObjectData
+@deprecated Workspace.ObjectData
=item Definition
diff --git a/lib/biokbase/workspace/client.py b/lib/biokbase/workspace/client.py
index c5be1a5f2..d15ad017a 100644
--- a/lib/biokbase/workspace/client.py
+++ b/lib/biokbase/workspace/client.py
@@ -25,7 +25,7 @@ def __init__(
trust_all_ssl_certificates=False,
auth_svc='https://ci.kbase.us/services/auth/api/legacy/KBase/Sessions/Login'):
if url is None:
- url = 'https://kbase.us/services/ws/'
+ url = 'https://ci.kbase.us/services/ws'
self._service_ver = None
self._client = _BaseClient(
url, timeout=timeout, user_id=user_id, password=password,
@@ -914,7 +914,7 @@ def get_object(self, params, context=None):
the "get_object" function. Provided for backwards compatibility.
UnspecifiedObject data - The object's data. object_metadata
metadata - Metadata for object retrieved/ @deprecated
- Workspaces.ObjectData) -> structure: parameter "data" of
+ Workspace.ObjectData) -> structure: parameter "data" of
unspecified object, parameter "metadata" of type "object_metadata"
(Meta data associated with an object stored in a workspace.
Provided for backwards compatibility. obj_name id - name of the
diff --git a/lib/javascript/workspace/Client.js b/lib/javascript/workspace/Client.js
index aab26a3a1..db77dfadd 100644
--- a/lib/javascript/workspace/Client.js
+++ b/lib/javascript/workspace/Client.js
@@ -17,7 +17,7 @@ function Workspace(url, auth, auth_cb, timeout, async_job_check_time_ms, service
this.service_version = service_version;
if (typeof(_url) != "string" || _url.length == 0) {
- _url = "https://kbase.us/services/ws/";
+ _url = "https://ci.kbase.us/services/ws";
}
var _auth = auth ? auth : { 'token' : '', 'user_id' : ''};
var _auth_cb = auth_cb;
diff --git a/readme.md b/readme.md
index 6f084a149..7be8a53aa 100644
--- a/readme.md
+++ b/readme.md
@@ -22,7 +22,7 @@ use the WSS. The easiest way to read the documentation is to find an already
built instance online:
* [KBase Continuous Integration](https://ci.kbase.us/services/ws/docs/)
-* [KBase Next](https://next.kbase.us/services/ws/docs/)
+* [KBase Appdev](https://appdev.kbase.us/services/ws/docs/)
* [KBase Production](https://kbase.us/services/ws/docs/)
The documentation can also be read on Github as
@@ -37,53 +37,25 @@ yourself.
### Building documentation
-This documentation assumes the documentation build occurs on Ubuntu 12.04LTS,
-but things should work similarly on other distributions. It does **not**
-assume that the KBase runtime or `dev_container` are installed.
+This documentation assumes the documentation build occurs on Ubuntu 18.04LTS,
+but things should work similarly on other distributions.
The build requires:
Java JDK 11
-[Java ant](http://ant.apache.org):
+[Python](https://www.python.org) [Sphinx](http://sphinx-doc.org/) 1.3+
- sudo apt-get install ant
-
-[Python](https://www.python.org) [Sphinx](http://sphinx-doc.org/) 1.3+:
-
-Either
-
- sudo apt-get install python3-sphinx
-
-or
-
- curl https://bootstrap.pypa.io/get-pip.py > get-pip.py
- sudo python get-pip.py
- sudo pip install sphinx --upgrade
-
-Clone the jars and workspace_deluxe repos:
-
- bareubuntu@bu:~/ws$ git clone https://github.com/kbase/jars
- Cloning into 'jars'...
- remote: Counting objects: 1466, done.
- remote: Total 1466 (delta 0), reused 0 (delta 0), pack-reused 1466
- Receiving objects: 100% (1466/1466), 59.43 MiB | 2.43 MiB/s, done.
- Resolving deltas: 100% (626/626), done.
+Clone the workspace_deluxe repos:
bareubuntu@bu:~/ws$ git clone https://github.com/kbase/workspace_deluxe
- Cloning into 'workspace_deluxe'...
- remote: Counting objects: 22004, done.
- remote: Compressing objects: 100% (82/82), done.
- remote: Total 22004 (delta 41), reused 0 (delta 0), pack-reused 21921
- Receiving objects: 100% (22004/22004), 21.44 MiB | 2.44 MiB/s, done.
- Resolving deltas: 100% (14000/14000), done.
Build the documentation:
bareubuntu@bu:~/ws$ cd workspace_deluxe/
- bareubuntu@bu:~/ws/workspace_deluxe$ make build-docs
+ bareubuntu@bu:~/ws/workspace_deluxe$ ./gradlew buildDocs
-The build directory is `docs`.
+The build directory is `service/build/docs`.
### Notes on GitHub Actions automated tests
@@ -94,24 +66,25 @@ Therefore, run the full test suite locally at least prior to every release.
### Downloading the Docker image
-The latest `workspace_deluxe` image is available from the GitHub Container Repository; it can be downloaded [from the repository releases page](https://github.com/kbase/workspace_deluxe/releases/latest) or on the command line:
+The latest `workspace_deluxe` image is available from the GitHub Container Repository:
docker login ghcr.io
docker pull ghcr.io/kbase/workspace_deluxe:latest
### Setting up a local instance
-The included [docker-compose file](docker-compose.yml) allows developers to stand up a local workspace instance with an [auth2](http://github.com/kbase/auth2) instance in test mode. To mount the images:
+The included [docker-compose file](docker-compose.yml) allows developers to stand up a local
+workspace instance with an [auth2](http://github.com/kbase/auth2) instance in test mode:
- # build the workspace docker image
- docker compose build
- # mount the images
- docker compose up
+ docker compose up --build -d
-The workspace has started up when the logs show a line that looks like
+The workspace has started when the logs show a line that looks like
INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 3198ms
-Developers can then create a user and token using the auth2 service and use one of the clients in the [`lib/`](lib/) directory to interact with the workspace. See [workspace_container_test.py](scripts/workspace_container_test.py) as an example of this process.
+Developers can then create a user and token using the auth2 service and use one of the clients
+in the [`lib/`](lib/) directory to interact with the workspace. See
+[workspace_container_test.py](scripts/workspace_container_test.py) as an example of this process.
-See the [auth2 documentation](http://github.com/kbase/auth2) for details of the test mode interface.
+See the [auth2 documentation](http://github.com/kbase/auth2) for details of the test mode
+interface.
diff --git a/server_scripts/README.md b/server_scripts/README.md
new file mode 100644
index 000000000..6c7181b3b
--- /dev/null
+++ b/server_scripts/README.md
@@ -0,0 +1,4 @@
+These scripts are deprecated in favor of a tomcat based deployment via Dockerfile.
+
+TODO: Redo the dockerfile with a clean install of an updated Tomcat installation
+TODO: Redo server startup instructions in the docs cleanly, step by step
\ No newline at end of file
diff --git a/service/build.gradle b/service/build.gradle
new file mode 100644
index 000000000..e10182650
--- /dev/null
+++ b/service/build.gradle
@@ -0,0 +1,391 @@
+/*
+ * This file was generated by the Gradle 'init' task.
+ */
+
+// TODO TEST switch to Kotlin DSL which is now the default and apparently better
+// TODO TEST avoid early configuration, see
+// https://docs.gradle.org/current/userguide/task_configuration_avoidance.html
+// need to avoid withType as well apparently?
+
+plugins {
+ id 'java'
+ id 'war'
+ id 'jacoco'
+ id 'maven-publish'
+ id 'org.ajoberstar.grgit' version '4.1.1'
+ id 'com.github.johnrengelman.shadow' version '8.1.1'
+}
+
+group = 'com.github.kbase'
+
+var VER_JAVA_COMMON = "0.3.0"
+var VER_AUTH2_CLIENT = "0.5.0"
+var VER_AUTH2_SHADOW = "0.7.1"
+var VER_JACKSON = "2.9.9"
+
+
+var DEFAULT_URL = "https://ci.kbase.us/services/ws"
+
+var BUILD_DOC_ROOT = "$buildDir/docs/"
+var BUILD_JAVA_DOC_DIR = "$BUILD_DOC_ROOT/javadoc"
+var BUILD_OTHER_DOC_DIR = "$BUILD_DOC_ROOT/otherdoc/"
+// This is where the DocServer will look for docs, if it changes it needs to change
+// in deploy.cfg as well
+// TODO DOCS just get rid of configuring this in the DocServer, make things hardcoded
+// or pass in constructor when we subume into a Jersey style service
+var IN_JAR_DOC_DIR = "/server_docs"
+var IN_JAR_JAVA_DOC_DIR = "$IN_JAR_DOC_DIR/javadoc"
+
+var LOC_WS_SPEC = "$rootDir/workspace.spec"
+var LOC_DOC_HTML = "$rootDir/docshtml"
+
+repositories {
+ mavenCentral()
+ maven {
+ name = "Jitpack"
+ url = 'https://jitpack.io'
+ }
+ maven {
+ name = "Clojars"
+ url = "https://repo.clojars.org/"
+ }
+}
+
+task buildGitCommitFile {
+ doLast {
+ def commitId = grgit.head().id
+ // is there a variable for builddir/classes/java/main?
+ file("$buildDir/classes/java/main/us/kbase/workspace/gitcommit/gitcommit").text = commitId
+ }
+}
+
+compileJava {
+ // build needs to be java 8 compatible so jars can be used in java 8 projects
+ // TODO BUILD remove when we no longer support java 8, use `options.release = 11` if needed
+ java.sourceCompatibility = JavaVersion.VERSION_1_8
+ java.targetCompatibility = JavaVersion.VERSION_1_8
+ finalizedBy buildGitCommitFile
+}
+
+javadoc {
+ /* We don't actually need the full javadoc for anything, so just hijack this task for
+ * building the client javadocs. If we ever need the full javadocs make a new task for the
+ * client java docs
+ */
+ /* TODO DOCS the current sdk documentation looks like invalid html to javadoc
+ * need to go through and remove
+ * also some spots with < / > that need to be wrapped with {@code } in internal code
+ */
+ failOnError = false
+ options {
+ links "https://docs.oracle.com/en/java/javase/11/docs/api/"
+ links "https://javadoc.jitpack.io/com/github/kbase/auth2_client_java/$VER_AUTH2_CLIENT/javadoc/"
+ links "https://javadoc.jitpack.io/com/github/kbase/java_common/$VER_JAVA_COMMON/javadoc/"
+ }
+ include "**/workspace/*.java"
+ exclude "**/workspace/WorkspaceServer.java"
+ include "**/common/service/Tuple*.java"
+}
+
+task buildDocs {
+ // ideally we'd add the inputs and outputs spec but that's too much work for too little gain
+ dependsOn javadoc
+ doLast {
+ // need to make sure we remove any docs that no longer exist in the source
+ delete BUILD_OTHER_DOC_DIR
+ // not needed locally, fails w/o it in docker build. *shrug*
+ mkdir BUILD_OTHER_DOC_DIR
+ copy {
+ from LOC_WS_SPEC into BUILD_OTHER_DOC_DIR
+ }
+ copy {
+ from LOC_DOC_HTML into BUILD_OTHER_DOC_DIR include "*"
+ }
+ exec {
+ commandLine "pod2html", "--infile=$rootDir/lib/Bio/KBase/workspace/Client.pm", "--outfile=$BUILD_OTHER_DOC_DIR/workspace_perl.html"
+ }
+ exec {
+ commandLine "sphinx-build", "$rootDir/docsource/", BUILD_OTHER_DOC_DIR
+ }
+ delete fileTree(".").matching { include "pod2htm*.tmp" }
+ }
+}
+
+tasks.withType(Test) {
+ /*
+ * TODO TEST Figure out why tests fail without this and remove. Might have something to do
+ * with the stfuLoggers() call in many of the tests, might kill logging for tests that
+ * require it
+ * Although it seems to make Mongo start up correctly as well which is odd
+ */
+ forkEvery = 1
+ /*
+ * TODO TEST split tests into mongo wrapper tests & all other tests (incl. integration).
+ * Set up GHA to run the non-mongo tests with a single version of mongo and run the
+ * mongo tests with matrixed mongo versions. Combine coverage at the end somehow
+ */
+ systemProperty "test.cfg", "$rootDir/test.cfg"
+ maxHeapSize = "3G"
+ testLogging {
+ exceptionFormat = 'full'
+ showStandardStreams = true
+ }
+ filter {
+ // gradle thinks that classes annotated with @RunWith are tests
+ excludeTestsMatching "*Tester"
+ }
+}
+
+tasks.withType(JacocoReport) {
+ reports {
+ xml.required = true
+ csv.required = true
+ }
+}
+
+test {
+ finalizedBy jacocoTestReport
+}
+
+task testQuick(type: Test) {
+ // for Gradle 9.0 compatibility
+ testClassesDirs = testing.suites.test.sources.output.classesDirs
+ classpath = testing.suites.test.sources.runtimeClasspath
+
+ filter {
+ excludeTestsMatching "*LongTest"
+ }
+ finalizedBy "jacocoTestQuickReport" // must be a string, see TODOs at head of file
+}
+
+task jacocoTestQuickReport(type: JacocoReport, dependsOn: testQuick) {
+ sourceSets sourceSets.main
+ executionData(testQuick)
+}
+
+shadowJar {
+ // Be careful when updating jars - you may want to set the duplicates strategy to WARN
+ // to see if any of the jars are shadowing the others when building the fat jar, which
+ // has been the case in the past
+ // Can't include the full documentation as jitpack doesn't have sphinx installed
+ dependsOn javadoc
+ duplicatesStrategy = DuplicatesStrategy.EXCLUDE
+ archiveAppendix = 'test-shadow'
+ from sourceSets.test.output
+
+ // don't shadow the shadow jar, don't need it and it's big
+ dependencies {
+ exclude(dependency("com.github.kbase:auth2:$VER_AUTH2_SHADOW"))
+ }
+
+ enableRelocation true
+ relocationPrefix 'us.kbase.workspace.shadow'
+
+ mergeServiceFiles()
+
+ from(BUILD_JAVA_DOC_DIR) { into IN_JAR_JAVA_DOC_DIR }
+ from(BUILD_OTHER_DOC_DIR) { into IN_JAR_DOC_DIR }
+}
+
+war {
+ dependsOn buildDocs
+ webXml = file('war/web.xml')
+ from(BUILD_JAVA_DOC_DIR) { into "/WEB-INF/classes/$IN_JAR_JAVA_DOC_DIR" }
+ from(BUILD_OTHER_DOC_DIR) { into "/WEB-INF/classes/$IN_JAR_DOC_DIR" }
+}
+
+// This is a filthy hack to get jitpack.io to not try to build the war file.
+// Since the war depends on buildDocs which depends on sphinx, the build will fail
+// It'd be better if it didn't call assemble and just publishToMavenLocal,
+// but no such luck
+gradle.taskGraph.whenReady { taskGraph ->
+ def tasks = taskGraph.getAllTasks()
+ if (tasks.find {it.name == 'assemble'}) {
+ tasks.findAll {it.name == 'war' || it.name == "buildDocs"}.each { task ->
+ task.enabled = false
+ }
+ }
+}
+
+/* SDK compile notes:
+ * kb-sdk starts a docker container in interactive mode. Gradle's commandLine doesn't allocate
+ * a tty so the command fails.
+ * I tried using a ProcessBuilder and
+ * https://docs.oracle.com/en%2Fjava%2Fjavase%2F11%2Fdocs%2Fapi%2F%2F/java.base/java/lang/ProcessBuilder.html#inheritIO()
+ * but that failed also with no useful output.
+ *
+ * The current solution is to precede the kb-sdk call with a script call, which either
+ * allocates a tty or fools kb-sdk into thinking there is one - not quite sure.
+ * https://man7.org/linux/man-pages/man1/script.1.html
+ * I tried to redirect the script log file to /dev/null with -O and --log-out but script didn't
+ * recognize either option, hence the delete.
+ *
+ * This is, generally speaking, a janky mess and if someone can find a better way to do this
+ * that'd be fantastic.
+ */
+
+ var LOC_SCRIPT_TYPESCRIPT = "./typescript"
+
+// TODO GRADLE is there some way to DRY these 3 compile tasks up? Not a huge deal
+task sdkCompileHTML {
+ // We want to check in the HTML so we don't put it in the build dir
+ var cmd = "kb-sdk compile --html --out $LOC_DOC_HTML $LOC_WS_SPEC"
+ doLast {
+ exec {
+ commandLine "script", "-qefc", cmd
+ }
+ delete LOC_SCRIPT_TYPESCRIPT
+ }
+}
+
+task sdkCompileLibs {
+ var cmd = "kb-sdk compile " +
+ "--out $rootDir/lib " +
+ "--jsclname javascript/workspace/Client " +
+ "--plclname Bio::KBase::workspace::Client " +
+ "--pyclname biokbase.workspace.client " +
+ "--url $DEFAULT_URL " +
+ LOC_WS_SPEC
+ doLast {
+ exec {
+ commandLine "script", "-qefc", cmd
+ }
+ delete LOC_SCRIPT_TYPESCRIPT
+ delete "$rootDir/lib/biokbase/workspace/authclient.py"
+ }
+}
+
+task sdkCompileJava {
+ // TODO GRADLE is there a variable for src/main/java?
+ var cmd = "kb-sdk compile " +
+ "--java " +
+ "--javasrc ${project.projectDir}/src/main/java/ " +
+ "--javasrv " +
+ "--out . " +
+ "--url $DEFAULT_URL " +
+ LOC_WS_SPEC
+ doLast {
+ exec {
+ commandLine "script", "-qefc", cmd
+ }
+ delete LOC_SCRIPT_TYPESCRIPT
+ }
+}
+
+task sdkCompile {
+ dependsOn sdkCompileHTML
+ dependsOn sdkCompileJava
+ dependsOn sdkCompileLibs
+}
+
+task generateUpdateSchemaScript {
+ dependsOn compileJava
+ doLast {
+ def dependencies = configurations.runtimeClasspath.collect { File file ->
+ file.absolutePath
+ }
+
+ def classpath = dependencies.join(':')
+
+ def scriptContent = """#!/bin/sh
+
+CLASSPATH=$classpath
+
+java -cp $buildDir/classes/java/main:\$CLASSPATH us.kbase.workspace.kbase.SchemaUpdaterCLI \$@
+"""
+ def outfile = "$buildDir/update_workspace_database_schema"
+ file(outfile).text = scriptContent
+ file(outfile).setExecutable(true)
+ }
+}
+
+task buildAll {
+ dependsOn buildDocs
+ dependsOn jar
+ dependsOn war
+ dependsOn shadowJar
+ dependsOn generateUpdateSchemaScript
+}
+
+configurations {
+ // can't directly access testImplementation, so extend and access
+ testimpl.extendsFrom testImplementation
+}
+
+publishing {
+ publications {
+ shadow(MavenPublication) { publication ->
+ project.shadow.component(publication)
+ artifactId = "workspace_deluxe-test-shadow-all"
+ }
+ }
+}
+
+dependencies {
+
+ // ### General application dependencies ###
+
+ implementation 'ch.qos.logback:logback-classic:1.1.2'
+ implementation 'com.github.ben-manes.caffeine:caffeine:2.9.3'
+ implementation "com.github.kbase:auth2_client_java:$VER_AUTH2_CLIENT"
+ implementation("com.github.kbase:handle_service2:1.0.6") {
+ exclude group: 'net.java.dev.jna' // breaks shadow jar
+ }
+ implementation "com.github.kbase:java_kidl:0.1.0"
+ implementation("com.github.kbase:sample_service:0.2.6") {
+ exclude group: 'net.java.dev.jna' // breaks shadow jar
+ }
+ implementation "com.github.kbase:shock_java_client:0.2.0"
+ implementation 'com.google.guava:guava:14.0.1'
+ implementation 'commons-codec:commons-codec:1.8'
+ implementation 'commons-io:commons-io:2.4'
+ implementation "com.fasterxml.jackson.core:jackson-annotations:$VER_JACKSON"
+ implementation "com.fasterxml.jackson.core:jackson-databind:$VER_JACKSON"
+ implementation 'info.picocli:picocli:4.6.1'
+ implementation 'org.apache.commons:commons-lang3:3.1'
+ implementation 'org.apache.httpcomponents:httpclient:4.5.9'
+ implementation 'org.apache.kafka:kafka-clients:2.1.0'
+ implementation 'org.ini4j:ini4j:0.5.2'
+ implementation 'org.mongodb:bson:4.11.1'
+ implementation 'org.mongodb:bson-record-codec:4.11.1'
+ implementation 'org.mongodb:mongodb-driver-core:4.11.1'
+ implementation 'org.mongodb:mongodb-driver-sync:4.11.1'
+ implementation 'org.slf4j:slf4j-api:1.7.30'
+
+ // ### Server dependencies for java_common JsonServerServlet & WorkspaceServer ###
+
+ implementation("com.github.kbase:java_common:$VER_JAVA_COMMON") {
+ exclude group: 'net.java.dev.jna' // breaks shadow jar
+ }
+ // TODO DEPS Need to rework the java common logger to not use syslog4j at all since it's
+ // abandonware and has a ton of CVEs, even in the newer versions.
+ implementation "org.syslog4j:syslog4j:0.9.46"
+ implementation 'javax.annotation:javax.annotation-api:1.3.2'
+ implementation 'javax.servlet:servlet-api:2.5'
+ // this is OOOOOOLD. But that probably means updating java_common
+ implementation 'org.eclipse.jetty.aggregate:jetty-all:7.0.0.v20091005'
+
+ // ### Amazon S3 ###
+
+ implementation('software.amazon.awssdk:s3:2.17.214') {
+ exclude module: 'apache-client'
+ exclude module: 'netty-nio-client'
+ }
+ implementation 'software.amazon.awssdk:url-connection-client:2.17.214'
+
+ // ### Test ###
+
+ testImplementation 'com.arangodb:arangodb-java-driver:6.7.2'
+ testImplementation 'com.github.kbase:java_test_utilities:0.1.0'
+ testImplementation "com.github.kbase:auth2:$VER_AUTH2_SHADOW"
+ testImplementation 'com.github.zafarkhaja:java-semver:0.9.0'
+ testImplementation 'junit:junit:4.12'
+ testImplementation 'nl.jqno.equalsverifier:equalsverifier:3.1.10'
+ testImplementation 'org.mockito:mockito-core:3.0.0'
+}
+
+task showTestClassPath {
+ doLast {
+ configurations.testimpl.each { println it }
+ }
+}
diff --git a/service/src/main/java/us/kbase/common/service/Tuple11.java b/service/src/main/java/us/kbase/common/service/Tuple11.java
new file mode 100644
index 000000000..9535aa90a
--- /dev/null
+++ b/service/src/main/java/us/kbase/common/service/Tuple11.java
@@ -0,0 +1,179 @@
+package us.kbase.common.service;
+
+import java.util.HashMap;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+
+public class Tuple11 {
+ private T1 e1;
+ private T2 e2;
+ private T3 e3;
+ private T4 e4;
+ private T5 e5;
+ private T6 e6;
+ private T7 e7;
+ private T8 e8;
+ private T9 e9;
+ private T10 e10;
+ private T11 e11;
+ private Map additionalProperties = new HashMap();
+
+ public T1 getE1() {
+ return e1;
+ }
+
+ public void setE1(T1 e1) {
+ this.e1 = e1;
+ }
+
+ public Tuple11 withE1(T1 e1) {
+ this.e1 = e1;
+ return this;
+ }
+
+ public T2 getE2() {
+ return e2;
+ }
+
+ public void setE2(T2 e2) {
+ this.e2 = e2;
+ }
+
+ public Tuple11 withE2(T2 e2) {
+ this.e2 = e2;
+ return this;
+ }
+
+ public T3 getE3() {
+ return e3;
+ }
+
+ public void setE3(T3 e3) {
+ this.e3 = e3;
+ }
+
+ public Tuple11 withE3(T3 e3) {
+ this.e3 = e3;
+ return this;
+ }
+
+ public T4 getE4() {
+ return e4;
+ }
+
+ public void setE4(T4 e4) {
+ this.e4 = e4;
+ }
+
+ public Tuple11 withE4(T4 e4) {
+ this.e4 = e4;
+ return this;
+ }
+
+ public T5 getE5() {
+ return e5;
+ }
+
+ public void setE5(T5 e5) {
+ this.e5 = e5;
+ }
+
+ public Tuple11 withE5(T5 e5) {
+ this.e5 = e5;
+ return this;
+ }
+
+ public T6 getE6() {
+ return e6;
+ }
+
+ public void setE6(T6 e6) {
+ this.e6 = e6;
+ }
+
+ public Tuple11 withE6(T6 e6) {
+ this.e6 = e6;
+ return this;
+ }
+
+ public T7 getE7() {
+ return e7;
+ }
+
+ public void setE7(T7 e7) {
+ this.e7 = e7;
+ }
+
+ public Tuple11 withE7(T7 e7) {
+ this.e7 = e7;
+ return this;
+ }
+
+ public T8 getE8() {
+ return e8;
+ }
+
+ public void setE8(T8 e8) {
+ this.e8 = e8;
+ }
+
+ public Tuple11 withE8(T8 e8) {
+ this.e8 = e8;
+ return this;
+ }
+
+ public T9 getE9() {
+ return e9;
+ }
+
+ public void setE9(T9 e9) {
+ this.e9 = e9;
+ }
+
+ public Tuple11 withE9(T9 e9) {
+ this.e9 = e9;
+ return this;
+ }
+
+ public T10 getE10() {
+ return e10;
+ }
+
+ public void setE10(T10 e10) {
+ this.e10 = e10;
+ }
+
+ public Tuple11 withE10(T10 e10) {
+ this.e10 = e10;
+ return this;
+ }
+
+ public T11 getE11() {
+ return e11;
+ }
+
+ public void setE11(T11 e11) {
+ this.e11 = e11;
+ }
+
+ public Tuple11 withE11(T11 e11) {
+ this.e11 = e11;
+ return this;
+ }
+
+ @Override
+ public String toString() {
+ return "Tuple11 [e1=" + e1 + ", e2=" + e2 + ", e3=" + e3 + ", e4=" + e4 + ", e5=" + e5 + ", e6=" + e6 + ", e7=" + e7 + ", e8=" + e8 + ", e9=" + e9 + ", e10=" + e10 + ", e11=" + e11 + "]";
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+}
diff --git a/service/src/main/java/us/kbase/common/service/Tuple12.java b/service/src/main/java/us/kbase/common/service/Tuple12.java
new file mode 100644
index 000000000..36396e4d1
--- /dev/null
+++ b/service/src/main/java/us/kbase/common/service/Tuple12.java
@@ -0,0 +1,193 @@
+package us.kbase.common.service;
+
+import java.util.HashMap;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+
+public class Tuple12 {
+ private T1 e1;
+ private T2 e2;
+ private T3 e3;
+ private T4 e4;
+ private T5 e5;
+ private T6 e6;
+ private T7 e7;
+ private T8 e8;
+ private T9 e9;
+ private T10 e10;
+ private T11 e11;
+ private T12 e12;
+ private Map additionalProperties = new HashMap();
+
+ public T1 getE1() {
+ return e1;
+ }
+
+ public void setE1(T1 e1) {
+ this.e1 = e1;
+ }
+
+ public Tuple12 withE1(T1 e1) {
+ this.e1 = e1;
+ return this;
+ }
+
+ public T2 getE2() {
+ return e2;
+ }
+
+ public void setE2(T2 e2) {
+ this.e2 = e2;
+ }
+
+ public Tuple12 withE2(T2 e2) {
+ this.e2 = e2;
+ return this;
+ }
+
+ public T3 getE3() {
+ return e3;
+ }
+
+ public void setE3(T3 e3) {
+ this.e3 = e3;
+ }
+
+ public Tuple12 withE3(T3 e3) {
+ this.e3 = e3;
+ return this;
+ }
+
+ public T4 getE4() {
+ return e4;
+ }
+
+ public void setE4(T4 e4) {
+ this.e4 = e4;
+ }
+
+ public Tuple12 withE4(T4 e4) {
+ this.e4 = e4;
+ return this;
+ }
+
+ public T5 getE5() {
+ return e5;
+ }
+
+ public void setE5(T5 e5) {
+ this.e5 = e5;
+ }
+
+ public Tuple12 withE5(T5 e5) {
+ this.e5 = e5;
+ return this;
+ }
+
+ public T6 getE6() {
+ return e6;
+ }
+
+ public void setE6(T6 e6) {
+ this.e6 = e6;
+ }
+
+ public Tuple12 withE6(T6 e6) {
+ this.e6 = e6;
+ return this;
+ }
+
+ public T7 getE7() {
+ return e7;
+ }
+
+ public void setE7(T7 e7) {
+ this.e7 = e7;
+ }
+
+ public Tuple12 withE7(T7 e7) {
+ this.e7 = e7;
+ return this;
+ }
+
+ public T8 getE8() {
+ return e8;
+ }
+
+ public void setE8(T8 e8) {
+ this.e8 = e8;
+ }
+
+ public Tuple12 withE8(T8 e8) {
+ this.e8 = e8;
+ return this;
+ }
+
+ public T9 getE9() {
+ return e9;
+ }
+
+ public void setE9(T9 e9) {
+ this.e9 = e9;
+ }
+
+ public Tuple12 withE9(T9 e9) {
+ this.e9 = e9;
+ return this;
+ }
+
+ public T10 getE10() {
+ return e10;
+ }
+
+ public void setE10(T10 e10) {
+ this.e10 = e10;
+ }
+
+ public Tuple12 withE10(T10 e10) {
+ this.e10 = e10;
+ return this;
+ }
+
+ public T11 getE11() {
+ return e11;
+ }
+
+ public void setE11(T11 e11) {
+ this.e11 = e11;
+ }
+
+ public Tuple12 withE11(T11 e11) {
+ this.e11 = e11;
+ return this;
+ }
+
+ public T12 getE12() {
+ return e12;
+ }
+
+ public void setE12(T12 e12) {
+ this.e12 = e12;
+ }
+
+ public Tuple12 withE12(T12 e12) {
+ this.e12 = e12;
+ return this;
+ }
+
+ @Override
+ public String toString() {
+ return "Tuple12 [e1=" + e1 + ", e2=" + e2 + ", e3=" + e3 + ", e4=" + e4 + ", e5=" + e5 + ", e6=" + e6 + ", e7=" + e7 + ", e8=" + e8 + ", e9=" + e9 + ", e10=" + e10 + ", e11=" + e11 + ", e12=" + e12 + "]";
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+}
diff --git a/service/src/main/java/us/kbase/common/service/Tuple7.java b/service/src/main/java/us/kbase/common/service/Tuple7.java
new file mode 100644
index 000000000..959546037
--- /dev/null
+++ b/service/src/main/java/us/kbase/common/service/Tuple7.java
@@ -0,0 +1,123 @@
+package us.kbase.common.service;
+
+import java.util.HashMap;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+
+public class Tuple7 {
+ private T1 e1;
+ private T2 e2;
+ private T3 e3;
+ private T4 e4;
+ private T5 e5;
+ private T6 e6;
+ private T7 e7;
+ private Map additionalProperties = new HashMap();
+
+ public T1 getE1() {
+ return e1;
+ }
+
+ public void setE1(T1 e1) {
+ this.e1 = e1;
+ }
+
+ public Tuple7 withE1(T1 e1) {
+ this.e1 = e1;
+ return this;
+ }
+
+ public T2 getE2() {
+ return e2;
+ }
+
+ public void setE2(T2 e2) {
+ this.e2 = e2;
+ }
+
+ public Tuple7 withE2(T2 e2) {
+ this.e2 = e2;
+ return this;
+ }
+
+ public T3 getE3() {
+ return e3;
+ }
+
+ public void setE3(T3 e3) {
+ this.e3 = e3;
+ }
+
+ public Tuple7 withE3(T3 e3) {
+ this.e3 = e3;
+ return this;
+ }
+
+ public T4 getE4() {
+ return e4;
+ }
+
+ public void setE4(T4 e4) {
+ this.e4 = e4;
+ }
+
+ public Tuple7 withE4(T4 e4) {
+ this.e4 = e4;
+ return this;
+ }
+
+ public T5 getE5() {
+ return e5;
+ }
+
+ public void setE5(T5 e5) {
+ this.e5 = e5;
+ }
+
+ public Tuple7 withE5(T5 e5) {
+ this.e5 = e5;
+ return this;
+ }
+
+ public T6 getE6() {
+ return e6;
+ }
+
+ public void setE6(T6 e6) {
+ this.e6 = e6;
+ }
+
+ public Tuple7 withE6(T6 e6) {
+ this.e6 = e6;
+ return this;
+ }
+
+ public T7 getE7() {
+ return e7;
+ }
+
+ public void setE7(T7 e7) {
+ this.e7 = e7;
+ }
+
+ public Tuple7 withE7(T7 e7) {
+ this.e7 = e7;
+ return this;
+ }
+
+ @Override
+ public String toString() {
+ return "Tuple7 [e1=" + e1 + ", e2=" + e2 + ", e3=" + e3 + ", e4=" + e4 + ", e5=" + e5 + ", e6=" + e6 + ", e7=" + e7 + "]";
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+}
diff --git a/service/src/main/java/us/kbase/common/service/Tuple9.java b/service/src/main/java/us/kbase/common/service/Tuple9.java
new file mode 100644
index 000000000..61091a046
--- /dev/null
+++ b/service/src/main/java/us/kbase/common/service/Tuple9.java
@@ -0,0 +1,151 @@
+package us.kbase.common.service;
+
+import java.util.HashMap;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+
+public class Tuple9 {
+ private T1 e1;
+ private T2 e2;
+ private T3 e3;
+ private T4 e4;
+ private T5 e5;
+ private T6 e6;
+ private T7 e7;
+ private T8 e8;
+ private T9 e9;
+ private Map additionalProperties = new HashMap();
+
+ public T1 getE1() {
+ return e1;
+ }
+
+ public void setE1(T1 e1) {
+ this.e1 = e1;
+ }
+
+ public Tuple9 withE1(T1 e1) {
+ this.e1 = e1;
+ return this;
+ }
+
+ public T2 getE2() {
+ return e2;
+ }
+
+ public void setE2(T2 e2) {
+ this.e2 = e2;
+ }
+
+ public Tuple9 withE2(T2 e2) {
+ this.e2 = e2;
+ return this;
+ }
+
+ public T3 getE3() {
+ return e3;
+ }
+
+ public void setE3(T3 e3) {
+ this.e3 = e3;
+ }
+
+ public Tuple9 withE3(T3 e3) {
+ this.e3 = e3;
+ return this;
+ }
+
+ public T4 getE4() {
+ return e4;
+ }
+
+ public void setE4(T4 e4) {
+ this.e4 = e4;
+ }
+
+ public Tuple9 withE4(T4 e4) {
+ this.e4 = e4;
+ return this;
+ }
+
+ public T5 getE5() {
+ return e5;
+ }
+
+ public void setE5(T5 e5) {
+ this.e5 = e5;
+ }
+
+ public Tuple9 withE5(T5 e5) {
+ this.e5 = e5;
+ return this;
+ }
+
+ public T6 getE6() {
+ return e6;
+ }
+
+ public void setE6(T6 e6) {
+ this.e6 = e6;
+ }
+
+ public Tuple9 withE6(T6 e6) {
+ this.e6 = e6;
+ return this;
+ }
+
+ public T7 getE7() {
+ return e7;
+ }
+
+ public void setE7(T7 e7) {
+ this.e7 = e7;
+ }
+
+ public Tuple9 withE7(T7 e7) {
+ this.e7 = e7;
+ return this;
+ }
+
+ public T8 getE8() {
+ return e8;
+ }
+
+ public void setE8(T8 e8) {
+ this.e8 = e8;
+ }
+
+ public Tuple9 withE8(T8 e8) {
+ this.e8 = e8;
+ return this;
+ }
+
+ public T9 getE9() {
+ return e9;
+ }
+
+ public void setE9(T9 e9) {
+ this.e9 = e9;
+ }
+
+ public Tuple9 withE9(T9 e9) {
+ this.e9 = e9;
+ return this;
+ }
+
+ @Override
+ public String toString() {
+ return "Tuple9 [e1=" + e1 + ", e2=" + e2 + ", e3=" + e3 + ", e4=" + e4 + ", e5=" + e5 + ", e6=" + e6 + ", e7=" + e7 + ", e8=" + e8 + ", e9=" + e9 + "]";
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+}
diff --git a/src/us/kbase/common/utils/Counter.java b/service/src/main/java/us/kbase/common/utils/Counter.java
similarity index 100%
rename from src/us/kbase/common/utils/Counter.java
rename to service/src/main/java/us/kbase/common/utils/Counter.java
diff --git a/src/us/kbase/common/utils/SizeUtils.java b/service/src/main/java/us/kbase/common/utils/SizeUtils.java
similarity index 100%
rename from src/us/kbase/common/utils/SizeUtils.java
rename to service/src/main/java/us/kbase/common/utils/SizeUtils.java
diff --git a/src/us/kbase/typedobj/core/AbsoluteTypeDefId.java b/service/src/main/java/us/kbase/typedobj/core/AbsoluteTypeDefId.java
similarity index 100%
rename from src/us/kbase/typedobj/core/AbsoluteTypeDefId.java
rename to service/src/main/java/us/kbase/typedobj/core/AbsoluteTypeDefId.java
diff --git a/src/us/kbase/typedobj/core/ExtractedMetadata.java b/service/src/main/java/us/kbase/typedobj/core/ExtractedMetadata.java
similarity index 100%
rename from src/us/kbase/typedobj/core/ExtractedMetadata.java
rename to service/src/main/java/us/kbase/typedobj/core/ExtractedMetadata.java
diff --git a/src/us/kbase/typedobj/core/IdRefTokenSequenceProvider.java b/service/src/main/java/us/kbase/typedobj/core/IdRefTokenSequenceProvider.java
similarity index 100%
rename from src/us/kbase/typedobj/core/IdRefTokenSequenceProvider.java
rename to service/src/main/java/us/kbase/typedobj/core/IdRefTokenSequenceProvider.java
diff --git a/src/us/kbase/typedobj/core/JsonDocumentLocation.java b/service/src/main/java/us/kbase/typedobj/core/JsonDocumentLocation.java
similarity index 100%
rename from src/us/kbase/typedobj/core/JsonDocumentLocation.java
rename to service/src/main/java/us/kbase/typedobj/core/JsonDocumentLocation.java
diff --git a/src/us/kbase/typedobj/core/JsonPointerParseException.java b/service/src/main/java/us/kbase/typedobj/core/JsonPointerParseException.java
similarity index 100%
rename from src/us/kbase/typedobj/core/JsonPointerParseException.java
rename to service/src/main/java/us/kbase/typedobj/core/JsonPointerParseException.java
diff --git a/src/us/kbase/typedobj/core/JsonTokenStreamWriter.java b/service/src/main/java/us/kbase/typedobj/core/JsonTokenStreamWriter.java
similarity index 100%
rename from src/us/kbase/typedobj/core/JsonTokenStreamWriter.java
rename to service/src/main/java/us/kbase/typedobj/core/JsonTokenStreamWriter.java
diff --git a/src/us/kbase/typedobj/core/JsonTokenValidationException.java b/service/src/main/java/us/kbase/typedobj/core/JsonTokenValidationException.java
similarity index 100%
rename from src/us/kbase/typedobj/core/JsonTokenValidationException.java
rename to service/src/main/java/us/kbase/typedobj/core/JsonTokenValidationException.java
diff --git a/src/us/kbase/typedobj/core/JsonTokenValidationListener.java b/service/src/main/java/us/kbase/typedobj/core/JsonTokenValidationListener.java
similarity index 100%
rename from src/us/kbase/typedobj/core/JsonTokenValidationListener.java
rename to service/src/main/java/us/kbase/typedobj/core/JsonTokenValidationListener.java
diff --git a/src/us/kbase/typedobj/core/JsonTokenValidationSchema.java b/service/src/main/java/us/kbase/typedobj/core/JsonTokenValidationSchema.java
similarity index 100%
rename from src/us/kbase/typedobj/core/JsonTokenValidationSchema.java
rename to service/src/main/java/us/kbase/typedobj/core/JsonTokenValidationSchema.java
diff --git a/src/us/kbase/typedobj/core/LocalTypeProvider.java b/service/src/main/java/us/kbase/typedobj/core/LocalTypeProvider.java
similarity index 100%
rename from src/us/kbase/typedobj/core/LocalTypeProvider.java
rename to service/src/main/java/us/kbase/typedobj/core/LocalTypeProvider.java
diff --git a/src/us/kbase/typedobj/core/MD5.java b/service/src/main/java/us/kbase/typedobj/core/MD5.java
similarity index 100%
rename from src/us/kbase/typedobj/core/MD5.java
rename to service/src/main/java/us/kbase/typedobj/core/MD5.java
diff --git a/src/us/kbase/typedobj/core/MetadataExtractionHandler.java b/service/src/main/java/us/kbase/typedobj/core/MetadataExtractionHandler.java
similarity index 100%
rename from src/us/kbase/typedobj/core/MetadataExtractionHandler.java
rename to service/src/main/java/us/kbase/typedobj/core/MetadataExtractionHandler.java
diff --git a/src/us/kbase/typedobj/core/MetadataExtractor.java b/service/src/main/java/us/kbase/typedobj/core/MetadataExtractor.java
similarity index 100%
rename from src/us/kbase/typedobj/core/MetadataExtractor.java
rename to service/src/main/java/us/kbase/typedobj/core/MetadataExtractor.java
diff --git a/src/us/kbase/typedobj/core/MetadataNode.java b/service/src/main/java/us/kbase/typedobj/core/MetadataNode.java
similarity index 100%
rename from src/us/kbase/typedobj/core/MetadataNode.java
rename to service/src/main/java/us/kbase/typedobj/core/MetadataNode.java
diff --git a/src/us/kbase/typedobj/core/NullJsonGenerator.java b/service/src/main/java/us/kbase/typedobj/core/NullJsonGenerator.java
similarity index 99%
rename from src/us/kbase/typedobj/core/NullJsonGenerator.java
rename to service/src/main/java/us/kbase/typedobj/core/NullJsonGenerator.java
index 37c45470a..ecc57981a 100644
--- a/src/us/kbase/typedobj/core/NullJsonGenerator.java
+++ b/service/src/main/java/us/kbase/typedobj/core/NullJsonGenerator.java
@@ -240,6 +240,7 @@ public int getFeatureMask() {
}
@Override
+ @Deprecated
public JsonGenerator setFeatureMask(int values) {
return null;
}
diff --git a/src/us/kbase/typedobj/core/Restreamable.java b/service/src/main/java/us/kbase/typedobj/core/Restreamable.java
similarity index 100%
rename from src/us/kbase/typedobj/core/Restreamable.java
rename to service/src/main/java/us/kbase/typedobj/core/Restreamable.java
diff --git a/src/us/kbase/typedobj/core/SubdataExtractionNode.java b/service/src/main/java/us/kbase/typedobj/core/SubdataExtractionNode.java
similarity index 100%
rename from src/us/kbase/typedobj/core/SubdataExtractionNode.java
rename to service/src/main/java/us/kbase/typedobj/core/SubdataExtractionNode.java
diff --git a/src/us/kbase/typedobj/core/SubdataExtractor.java b/service/src/main/java/us/kbase/typedobj/core/SubdataExtractor.java
similarity index 100%
rename from src/us/kbase/typedobj/core/SubdataExtractor.java
rename to service/src/main/java/us/kbase/typedobj/core/SubdataExtractor.java
diff --git a/src/us/kbase/typedobj/core/SubsetSelection.java b/service/src/main/java/us/kbase/typedobj/core/SubsetSelection.java
similarity index 100%
rename from src/us/kbase/typedobj/core/SubsetSelection.java
rename to service/src/main/java/us/kbase/typedobj/core/SubsetSelection.java
diff --git a/src/us/kbase/typedobj/core/TempFileListener.java b/service/src/main/java/us/kbase/typedobj/core/TempFileListener.java
similarity index 100%
rename from src/us/kbase/typedobj/core/TempFileListener.java
rename to service/src/main/java/us/kbase/typedobj/core/TempFileListener.java
diff --git a/src/us/kbase/typedobj/core/TempFilesManager.java b/service/src/main/java/us/kbase/typedobj/core/TempFilesManager.java
similarity index 100%
rename from src/us/kbase/typedobj/core/TempFilesManager.java
rename to service/src/main/java/us/kbase/typedobj/core/TempFilesManager.java
diff --git a/src/us/kbase/typedobj/core/TokenSequenceProvider.java b/service/src/main/java/us/kbase/typedobj/core/TokenSequenceProvider.java
similarity index 100%
rename from src/us/kbase/typedobj/core/TokenSequenceProvider.java
rename to service/src/main/java/us/kbase/typedobj/core/TokenSequenceProvider.java
diff --git a/src/us/kbase/typedobj/core/TypeDefId.java b/service/src/main/java/us/kbase/typedobj/core/TypeDefId.java
similarity index 100%
rename from src/us/kbase/typedobj/core/TypeDefId.java
rename to service/src/main/java/us/kbase/typedobj/core/TypeDefId.java
diff --git a/src/us/kbase/typedobj/core/TypeDefName.java b/service/src/main/java/us/kbase/typedobj/core/TypeDefName.java
similarity index 100%
rename from src/us/kbase/typedobj/core/TypeDefName.java
rename to service/src/main/java/us/kbase/typedobj/core/TypeDefName.java
diff --git a/src/us/kbase/typedobj/core/TypeProvider.java b/service/src/main/java/us/kbase/typedobj/core/TypeProvider.java
similarity index 100%
rename from src/us/kbase/typedobj/core/TypeProvider.java
rename to service/src/main/java/us/kbase/typedobj/core/TypeProvider.java
diff --git a/src/us/kbase/typedobj/core/TypedObjectValidator.java b/service/src/main/java/us/kbase/typedobj/core/TypedObjectValidator.java
similarity index 100%
rename from src/us/kbase/typedobj/core/TypedObjectValidator.java
rename to service/src/main/java/us/kbase/typedobj/core/TypedObjectValidator.java
diff --git a/src/us/kbase/typedobj/core/ValidatedTypedObject.java b/service/src/main/java/us/kbase/typedobj/core/ValidatedTypedObject.java
similarity index 100%
rename from src/us/kbase/typedobj/core/ValidatedTypedObject.java
rename to service/src/main/java/us/kbase/typedobj/core/ValidatedTypedObject.java
diff --git a/src/us/kbase/typedobj/db/FileTypeStorage.java b/service/src/main/java/us/kbase/typedobj/db/FileTypeStorage.java
similarity index 100%
rename from src/us/kbase/typedobj/db/FileTypeStorage.java
rename to service/src/main/java/us/kbase/typedobj/db/FileTypeStorage.java
diff --git a/src/us/kbase/typedobj/db/FuncDetailedInfo.java b/service/src/main/java/us/kbase/typedobj/db/FuncDetailedInfo.java
similarity index 100%
rename from src/us/kbase/typedobj/db/FuncDetailedInfo.java
rename to service/src/main/java/us/kbase/typedobj/db/FuncDetailedInfo.java
diff --git a/src/us/kbase/typedobj/db/FuncInfo.java b/service/src/main/java/us/kbase/typedobj/db/FuncInfo.java
similarity index 100%
rename from src/us/kbase/typedobj/db/FuncInfo.java
rename to service/src/main/java/us/kbase/typedobj/db/FuncInfo.java
diff --git a/src/us/kbase/typedobj/db/KidlUtil.java b/service/src/main/java/us/kbase/typedobj/db/KidlUtil.java
similarity index 76%
rename from src/us/kbase/typedobj/db/KidlUtil.java
rename to service/src/main/java/us/kbase/typedobj/db/KidlUtil.java
index 02bfc00a6..d90b675c2 100644
--- a/src/us/kbase/typedobj/db/KidlUtil.java
+++ b/service/src/main/java/us/kbase/typedobj/db/KidlUtil.java
@@ -1,8 +1,5 @@
package us.kbase.typedobj.db;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertThat;
-
import java.io.BufferedReader;
import java.io.IOException;
import java.io.StringReader;
@@ -37,30 +34,6 @@ public static boolean compareJson(Map, ?> parse1, Map, ?> parse2, String hea
return ok;
}
- public static boolean compareJsonSchemas(Map> schemas1,
- Map> schemas2, String header) throws IOException,
- JsonParseException, JsonMappingException, JsonGenerationException,
- Exception {
- boolean ok = true;
- assertThat(schemas1.keySet(), is(schemas2.keySet()));
- for (String moduleName : schemas1.keySet()) {
- assertThat(schemas1.get(moduleName).keySet(), is(schemas2.get(moduleName).keySet()));
- for (Map.Entry entry : schemas1.get(moduleName).entrySet()) {
- String schema1 = rewriteJson(entry.getValue());
- String schema2 = rewriteJson(schemas2.get(moduleName).get(entry.getKey()));
- if (!schema1.equals(schema2)) {
- ok = false;
- System.out.println(header + " (" + moduleName + "." + entry.getKey() + "):");
- System.out.println("--------------------------------------------------------");
- showDiff(schema1, schema2);
- System.out.println();
- System.out.println("*");
- }
- }
- }
- return ok;
- }
-
private static void showDiff(String origText, String newText) throws Exception {
List origLn = getLines(origText);
List newLn = getLines(newText);
diff --git a/src/us/kbase/typedobj/db/ModuleDefId.java b/service/src/main/java/us/kbase/typedobj/db/ModuleDefId.java
similarity index 100%
rename from src/us/kbase/typedobj/db/ModuleDefId.java
rename to service/src/main/java/us/kbase/typedobj/db/ModuleDefId.java
diff --git a/src/us/kbase/typedobj/db/ModuleInfo.java b/service/src/main/java/us/kbase/typedobj/db/ModuleInfo.java
similarity index 100%
rename from src/us/kbase/typedobj/db/ModuleInfo.java
rename to service/src/main/java/us/kbase/typedobj/db/ModuleInfo.java
diff --git a/src/us/kbase/typedobj/db/MongoTypeStorage.java b/service/src/main/java/us/kbase/typedobj/db/MongoTypeStorage.java
similarity index 100%
rename from src/us/kbase/typedobj/db/MongoTypeStorage.java
rename to service/src/main/java/us/kbase/typedobj/db/MongoTypeStorage.java
diff --git a/src/us/kbase/typedobj/db/OwnerInfo.java b/service/src/main/java/us/kbase/typedobj/db/OwnerInfo.java
similarity index 100%
rename from src/us/kbase/typedobj/db/OwnerInfo.java
rename to service/src/main/java/us/kbase/typedobj/db/OwnerInfo.java
diff --git a/src/us/kbase/typedobj/db/RefInfo.java b/service/src/main/java/us/kbase/typedobj/db/RefInfo.java
similarity index 100%
rename from src/us/kbase/typedobj/db/RefInfo.java
rename to service/src/main/java/us/kbase/typedobj/db/RefInfo.java
diff --git a/src/us/kbase/typedobj/db/SemanticVersion.java b/service/src/main/java/us/kbase/typedobj/db/SemanticVersion.java
similarity index 100%
rename from src/us/kbase/typedobj/db/SemanticVersion.java
rename to service/src/main/java/us/kbase/typedobj/db/SemanticVersion.java
diff --git a/src/us/kbase/typedobj/db/TypeChange.java b/service/src/main/java/us/kbase/typedobj/db/TypeChange.java
similarity index 100%
rename from src/us/kbase/typedobj/db/TypeChange.java
rename to service/src/main/java/us/kbase/typedobj/db/TypeChange.java
diff --git a/src/us/kbase/typedobj/db/TypeDefinitionDB.java b/service/src/main/java/us/kbase/typedobj/db/TypeDefinitionDB.java
similarity index 100%
rename from src/us/kbase/typedobj/db/TypeDefinitionDB.java
rename to service/src/main/java/us/kbase/typedobj/db/TypeDefinitionDB.java
diff --git a/src/us/kbase/typedobj/db/TypeDetailedInfo.java b/service/src/main/java/us/kbase/typedobj/db/TypeDetailedInfo.java
similarity index 100%
rename from src/us/kbase/typedobj/db/TypeDetailedInfo.java
rename to service/src/main/java/us/kbase/typedobj/db/TypeDetailedInfo.java
diff --git a/src/us/kbase/typedobj/db/TypeInfo.java b/service/src/main/java/us/kbase/typedobj/db/TypeInfo.java
similarity index 100%
rename from src/us/kbase/typedobj/db/TypeInfo.java
rename to service/src/main/java/us/kbase/typedobj/db/TypeInfo.java
diff --git a/src/us/kbase/typedobj/db/TypeStorage.java b/service/src/main/java/us/kbase/typedobj/db/TypeStorage.java
similarity index 100%
rename from src/us/kbase/typedobj/db/TypeStorage.java
rename to service/src/main/java/us/kbase/typedobj/db/TypeStorage.java
diff --git a/src/us/kbase/typedobj/exceptions/ExceededMaxMetadataSizeException.java b/service/src/main/java/us/kbase/typedobj/exceptions/ExceededMaxMetadataSizeException.java
similarity index 100%
rename from src/us/kbase/typedobj/exceptions/ExceededMaxMetadataSizeException.java
rename to service/src/main/java/us/kbase/typedobj/exceptions/ExceededMaxMetadataSizeException.java
diff --git a/src/us/kbase/typedobj/exceptions/ExceededMaxSubsetSizeException.java b/service/src/main/java/us/kbase/typedobj/exceptions/ExceededMaxSubsetSizeException.java
similarity index 100%
rename from src/us/kbase/typedobj/exceptions/ExceededMaxSubsetSizeException.java
rename to service/src/main/java/us/kbase/typedobj/exceptions/ExceededMaxSubsetSizeException.java
diff --git a/src/us/kbase/typedobj/exceptions/NoSuchFuncException.java b/service/src/main/java/us/kbase/typedobj/exceptions/NoSuchFuncException.java
similarity index 100%
rename from src/us/kbase/typedobj/exceptions/NoSuchFuncException.java
rename to service/src/main/java/us/kbase/typedobj/exceptions/NoSuchFuncException.java
diff --git a/src/us/kbase/typedobj/exceptions/NoSuchModuleException.java b/service/src/main/java/us/kbase/typedobj/exceptions/NoSuchModuleException.java
similarity index 100%
rename from src/us/kbase/typedobj/exceptions/NoSuchModuleException.java
rename to service/src/main/java/us/kbase/typedobj/exceptions/NoSuchModuleException.java
diff --git a/src/us/kbase/typedobj/exceptions/NoSuchPrivilegeException.java b/service/src/main/java/us/kbase/typedobj/exceptions/NoSuchPrivilegeException.java
similarity index 100%
rename from src/us/kbase/typedobj/exceptions/NoSuchPrivilegeException.java
rename to service/src/main/java/us/kbase/typedobj/exceptions/NoSuchPrivilegeException.java
diff --git a/src/us/kbase/typedobj/exceptions/NoSuchTypeException.java b/service/src/main/java/us/kbase/typedobj/exceptions/NoSuchTypeException.java
similarity index 100%
rename from src/us/kbase/typedobj/exceptions/NoSuchTypeException.java
rename to service/src/main/java/us/kbase/typedobj/exceptions/NoSuchTypeException.java
diff --git a/src/us/kbase/typedobj/exceptions/SpecParseException.java b/service/src/main/java/us/kbase/typedobj/exceptions/SpecParseException.java
similarity index 100%
rename from src/us/kbase/typedobj/exceptions/SpecParseException.java
rename to service/src/main/java/us/kbase/typedobj/exceptions/SpecParseException.java
diff --git a/src/us/kbase/typedobj/exceptions/TypeStorageException.java b/service/src/main/java/us/kbase/typedobj/exceptions/TypeStorageException.java
similarity index 100%
rename from src/us/kbase/typedobj/exceptions/TypeStorageException.java
rename to service/src/main/java/us/kbase/typedobj/exceptions/TypeStorageException.java
diff --git a/src/us/kbase/typedobj/exceptions/TypedObjectException.java b/service/src/main/java/us/kbase/typedobj/exceptions/TypedObjectException.java
similarity index 100%
rename from src/us/kbase/typedobj/exceptions/TypedObjectException.java
rename to service/src/main/java/us/kbase/typedobj/exceptions/TypedObjectException.java
diff --git a/src/us/kbase/typedobj/exceptions/TypedObjectExtractionException.java b/service/src/main/java/us/kbase/typedobj/exceptions/TypedObjectExtractionException.java
similarity index 100%
rename from src/us/kbase/typedobj/exceptions/TypedObjectExtractionException.java
rename to service/src/main/java/us/kbase/typedobj/exceptions/TypedObjectExtractionException.java
diff --git a/src/us/kbase/typedobj/exceptions/TypedObjectSchemaException.java b/service/src/main/java/us/kbase/typedobj/exceptions/TypedObjectSchemaException.java
similarity index 100%
rename from src/us/kbase/typedobj/exceptions/TypedObjectSchemaException.java
rename to service/src/main/java/us/kbase/typedobj/exceptions/TypedObjectSchemaException.java
diff --git a/src/us/kbase/typedobj/exceptions/TypedObjectValidationException.java b/service/src/main/java/us/kbase/typedobj/exceptions/TypedObjectValidationException.java
similarity index 100%
rename from src/us/kbase/typedobj/exceptions/TypedObjectValidationException.java
rename to service/src/main/java/us/kbase/typedobj/exceptions/TypedObjectValidationException.java
diff --git a/src/us/kbase/typedobj/idref/DefaultRemappedId.java b/service/src/main/java/us/kbase/typedobj/idref/DefaultRemappedId.java
similarity index 100%
rename from src/us/kbase/typedobj/idref/DefaultRemappedId.java
rename to service/src/main/java/us/kbase/typedobj/idref/DefaultRemappedId.java
diff --git a/src/us/kbase/typedobj/idref/IdReference.java b/service/src/main/java/us/kbase/typedobj/idref/IdReference.java
similarity index 100%
rename from src/us/kbase/typedobj/idref/IdReference.java
rename to service/src/main/java/us/kbase/typedobj/idref/IdReference.java
diff --git a/src/us/kbase/typedobj/idref/IdReferenceHandlerSet.java b/service/src/main/java/us/kbase/typedobj/idref/IdReferenceHandlerSet.java
similarity index 100%
rename from src/us/kbase/typedobj/idref/IdReferenceHandlerSet.java
rename to service/src/main/java/us/kbase/typedobj/idref/IdReferenceHandlerSet.java
diff --git a/src/us/kbase/typedobj/idref/IdReferenceHandlerSetFactory.java b/service/src/main/java/us/kbase/typedobj/idref/IdReferenceHandlerSetFactory.java
similarity index 100%
rename from src/us/kbase/typedobj/idref/IdReferenceHandlerSetFactory.java
rename to service/src/main/java/us/kbase/typedobj/idref/IdReferenceHandlerSetFactory.java
diff --git a/src/us/kbase/typedobj/idref/IdReferenceHandlerSetFactoryBuilder.java b/service/src/main/java/us/kbase/typedobj/idref/IdReferenceHandlerSetFactoryBuilder.java
similarity index 100%
rename from src/us/kbase/typedobj/idref/IdReferenceHandlerSetFactoryBuilder.java
rename to service/src/main/java/us/kbase/typedobj/idref/IdReferenceHandlerSetFactoryBuilder.java
diff --git a/src/us/kbase/typedobj/idref/IdReferencePermissionHandlerSet.java b/service/src/main/java/us/kbase/typedobj/idref/IdReferencePermissionHandlerSet.java
similarity index 100%
rename from src/us/kbase/typedobj/idref/IdReferencePermissionHandlerSet.java
rename to service/src/main/java/us/kbase/typedobj/idref/IdReferencePermissionHandlerSet.java
diff --git a/src/us/kbase/typedobj/idref/IdReferenceType.java b/service/src/main/java/us/kbase/typedobj/idref/IdReferenceType.java
similarity index 100%
rename from src/us/kbase/typedobj/idref/IdReferenceType.java
rename to service/src/main/java/us/kbase/typedobj/idref/IdReferenceType.java
diff --git a/src/us/kbase/typedobj/idref/NoSuchIdReferenceHandlerException.java b/service/src/main/java/us/kbase/typedobj/idref/NoSuchIdReferenceHandlerException.java
similarity index 100%
rename from src/us/kbase/typedobj/idref/NoSuchIdReferenceHandlerException.java
rename to service/src/main/java/us/kbase/typedobj/idref/NoSuchIdReferenceHandlerException.java
diff --git a/src/us/kbase/typedobj/idref/RemappedId.java b/service/src/main/java/us/kbase/typedobj/idref/RemappedId.java
similarity index 100%
rename from src/us/kbase/typedobj/idref/RemappedId.java
rename to service/src/main/java/us/kbase/typedobj/idref/RemappedId.java
diff --git a/src/us/kbase/typedobj/idref/SimpleRemappedId.java b/service/src/main/java/us/kbase/typedobj/idref/SimpleRemappedId.java
similarity index 100%
rename from src/us/kbase/typedobj/idref/SimpleRemappedId.java
rename to service/src/main/java/us/kbase/typedobj/idref/SimpleRemappedId.java
diff --git a/service/src/main/java/us/kbase/workspace/AlterAdminObjectMetadataParams.java b/service/src/main/java/us/kbase/workspace/AlterAdminObjectMetadataParams.java
new file mode 100644
index 000000000..62c056ca7
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/AlterAdminObjectMetadataParams.java
@@ -0,0 +1,66 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: AlterAdminObjectMetadataParams
+ *
+ * Input parameters for the alter_admin_object_metadata method.
+ * updates - the metadata updates to apply to the objects. If the same object is specified
+ * twice in the list, the update order is unspecified. At most 1000 updates are allowed
+ * in one call.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "updates"
+})
+public class AlterAdminObjectMetadataParams {
+
+ @JsonProperty("updates")
+ private List updates;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("updates")
+ public List getUpdates() {
+ return updates;
+ }
+
+ @JsonProperty("updates")
+ public void setUpdates(List updates) {
+ this.updates = updates;
+ }
+
+ public AlterAdminObjectMetadataParams withUpdates(List updates) {
+ this.updates = updates;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((("AlterAdminObjectMetadataParams"+" [updates=")+ updates)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/AlterWorkspaceMetadataParams.java b/service/src/main/java/us/kbase/workspace/AlterWorkspaceMetadataParams.java
new file mode 100644
index 000000000..c063c903f
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/AlterWorkspaceMetadataParams.java
@@ -0,0 +1,136 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: AlterWorkspaceMetadataParams
+ *
+ * Input parameters for the "alter_workspace_metadata" function.
+ * Required arguments:
+ * WorkspaceIdentity wsi - the workspace to be altered
+ * One or both of the following arguments are required:
+ * usermeta new - metadata to assign to the workspace. Duplicate keys will
+ * be overwritten.
+ * list remove - these keys will be removed from the workspace
+ * metadata key/value pairs.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "wsi",
+ "new",
+ "remove"
+})
+public class AlterWorkspaceMetadataParams {
+
+ /**
+ * Original spec-file type: WorkspaceIdentity
+ *
+ * A workspace identifier.
+ * Select a workspace by one, and only one, of the numerical id or name.
+ * ws_id id - the numerical ID of the workspace.
+ * ws_name workspace - the name of the workspace.
+ *
+ *
+ */
+ @JsonProperty("wsi")
+ private WorkspaceIdentity wsi;
+ @JsonProperty("new")
+ private Map _new;
+ @JsonProperty("remove")
+ private List remove;
+ private Map additionalProperties = new HashMap();
+
+ /**
+ * Original spec-file type: WorkspaceIdentity
+ *
+ * A workspace identifier.
+ * Select a workspace by one, and only one, of the numerical id or name.
+ * ws_id id - the numerical ID of the workspace.
+ * ws_name workspace - the name of the workspace.
+ *
+ *
+ */
+ @JsonProperty("wsi")
+ public WorkspaceIdentity getWsi() {
+ return wsi;
+ }
+
+ /**
+ * Original spec-file type: WorkspaceIdentity
+ *
+ * A workspace identifier.
+ * Select a workspace by one, and only one, of the numerical id or name.
+ * ws_id id - the numerical ID of the workspace.
+ * ws_name workspace - the name of the workspace.
+ *
+ *
+ */
+ @JsonProperty("wsi")
+ public void setWsi(WorkspaceIdentity wsi) {
+ this.wsi = wsi;
+ }
+
+ public AlterWorkspaceMetadataParams withWsi(WorkspaceIdentity wsi) {
+ this.wsi = wsi;
+ return this;
+ }
+
+ @JsonProperty("new")
+ public Map getNew() {
+ return _new;
+ }
+
+ @JsonProperty("new")
+ public void setNew(Map _new) {
+ this._new = _new;
+ }
+
+ public AlterWorkspaceMetadataParams withNew(Map _new) {
+ this._new = _new;
+ return this;
+ }
+
+ @JsonProperty("remove")
+ public List getRemove() {
+ return remove;
+ }
+
+ @JsonProperty("remove")
+ public void setRemove(List remove) {
+ this.remove = remove;
+ }
+
+ public AlterWorkspaceMetadataParams withRemove(List remove) {
+ this.remove = remove;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(java.lang.String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ return ((((((((("AlterWorkspaceMetadataParams"+" [wsi=")+ wsi)+", _new=")+ _new)+", remove=")+ remove)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/CloneWorkspaceParams.java b/service/src/main/java/us/kbase/workspace/CloneWorkspaceParams.java
new file mode 100644
index 000000000..44f6e73a7
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/CloneWorkspaceParams.java
@@ -0,0 +1,200 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: CloneWorkspaceParams
+ *
+ * Input parameters for the "clone_workspace" function.
+ * Note that deleted objects are not cloned, although hidden objects are
+ * and remain hidden in the new workspace.
+ * Required arguments:
+ * WorkspaceIdentity wsi - the workspace to be cloned.
+ * ws_name workspace - name of the workspace to be cloned into. This must
+ * be a non-existant workspace name.
+ * Optional arguments:
+ * permission globalread - 'r' to set the new workspace globally readable,
+ * default 'n'.
+ * string description - A free-text description of the new workspace, 1000
+ * characters max. Longer strings will be mercilessly and brutally
+ * truncated.
+ * usermeta meta - arbitrary user-supplied metadata for the workspace.
+ * list exclude - exclude the specified objects from the
+ * cloned workspace. Either an object ID or a object name must be
+ * specified in each ObjectIdentity - any supplied reference strings,
+ * workspace names or IDs, and versions are ignored.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "wsi",
+ "workspace",
+ "globalread",
+ "description",
+ "meta",
+ "exclude"
+})
+public class CloneWorkspaceParams {
+
+ /**
+ * Original spec-file type: WorkspaceIdentity
+ *
+ * A workspace identifier.
+ * Select a workspace by one, and only one, of the numerical id or name.
+ * ws_id id - the numerical ID of the workspace.
+ * ws_name workspace - the name of the workspace.
+ *
+ *
+ */
+ @JsonProperty("wsi")
+ private WorkspaceIdentity wsi;
+ @JsonProperty("workspace")
+ private java.lang.String workspace;
+ @JsonProperty("globalread")
+ private java.lang.String globalread;
+ @JsonProperty("description")
+ private java.lang.String description;
+ @JsonProperty("meta")
+ private Map meta;
+ @JsonProperty("exclude")
+ private List exclude;
+ private Map additionalProperties = new HashMap();
+
+ /**
+ * Original spec-file type: WorkspaceIdentity
+ *
+ * A workspace identifier.
+ * Select a workspace by one, and only one, of the numerical id or name.
+ * ws_id id - the numerical ID of the workspace.
+ * ws_name workspace - the name of the workspace.
+ *
+ *
+ */
+ @JsonProperty("wsi")
+ public WorkspaceIdentity getWsi() {
+ return wsi;
+ }
+
+ /**
+ * Original spec-file type: WorkspaceIdentity
+ *
+ * A workspace identifier.
+ * Select a workspace by one, and only one, of the numerical id or name.
+ * ws_id id - the numerical ID of the workspace.
+ * ws_name workspace - the name of the workspace.
+ *
+ *
+ */
+ @JsonProperty("wsi")
+ public void setWsi(WorkspaceIdentity wsi) {
+ this.wsi = wsi;
+ }
+
+ public CloneWorkspaceParams withWsi(WorkspaceIdentity wsi) {
+ this.wsi = wsi;
+ return this;
+ }
+
+ @JsonProperty("workspace")
+ public java.lang.String getWorkspace() {
+ return workspace;
+ }
+
+ @JsonProperty("workspace")
+ public void setWorkspace(java.lang.String workspace) {
+ this.workspace = workspace;
+ }
+
+ public CloneWorkspaceParams withWorkspace(java.lang.String workspace) {
+ this.workspace = workspace;
+ return this;
+ }
+
+ @JsonProperty("globalread")
+ public java.lang.String getGlobalread() {
+ return globalread;
+ }
+
+ @JsonProperty("globalread")
+ public void setGlobalread(java.lang.String globalread) {
+ this.globalread = globalread;
+ }
+
+ public CloneWorkspaceParams withGlobalread(java.lang.String globalread) {
+ this.globalread = globalread;
+ return this;
+ }
+
+ @JsonProperty("description")
+ public java.lang.String getDescription() {
+ return description;
+ }
+
+ @JsonProperty("description")
+ public void setDescription(java.lang.String description) {
+ this.description = description;
+ }
+
+ public CloneWorkspaceParams withDescription(java.lang.String description) {
+ this.description = description;
+ return this;
+ }
+
+ @JsonProperty("meta")
+ public Map getMeta() {
+ return meta;
+ }
+
+ @JsonProperty("meta")
+ public void setMeta(Map meta) {
+ this.meta = meta;
+ }
+
+ public CloneWorkspaceParams withMeta(Map meta) {
+ this.meta = meta;
+ return this;
+ }
+
+ @JsonProperty("exclude")
+ public List getExclude() {
+ return exclude;
+ }
+
+ @JsonProperty("exclude")
+ public void setExclude(List exclude) {
+ this.exclude = exclude;
+ }
+
+ public CloneWorkspaceParams withExclude(List exclude) {
+ this.exclude = exclude;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(java.lang.String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ return ((((((((((((((("CloneWorkspaceParams"+" [wsi=")+ wsi)+", workspace=")+ workspace)+", globalread=")+ globalread)+", description=")+ description)+", meta=")+ meta)+", exclude=")+ exclude)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/CopyObjectParams.java b/service/src/main/java/us/kbase/workspace/CopyObjectParams.java
new file mode 100644
index 000000000..2a1ecab67
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/CopyObjectParams.java
@@ -0,0 +1,202 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: CopyObjectParams
+ *
+ * Input parameters for the 'copy_object' function.
+ * If the 'from' ObjectIdentity includes no version and the object is
+ * copied to a new name, the entire version history of the object is
+ * copied. In all other cases only the version specified, or the latest
+ * version if no version is specified, is copied.
+ * The version from the 'to' ObjectIdentity is always ignored.
+ * Required arguments:
+ * ObjectIdentity from - the object to copy.
+ * ObjectIdentity to - where to copy the object.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "from",
+ "to"
+})
+public class CopyObjectParams {
+
+ /**
+ * Original spec-file type: ObjectIdentity
+ *
+ * An object identifier.
+ * Select an object by either:
+ * One, and only one, of the numerical id or name of the workspace.
+ * ws_id wsid - the numerical ID of the workspace.
+ * ws_name workspace - the name of the workspace.
+ * AND
+ * One, and only one, of the numerical id or name of the object.
+ * obj_id objid- the numerical ID of the object.
+ * obj_name name - name of the object.
+ * OPTIONALLY
+ * obj_ver ver - the version of the object.
+ * OR an object reference string:
+ * obj_ref ref - an object reference string.
+ *
+ *
+ */
+ @JsonProperty("from")
+ private ObjectIdentity from;
+ /**
+ * Original spec-file type: ObjectIdentity
+ *
+ * An object identifier.
+ * Select an object by either:
+ * One, and only one, of the numerical id or name of the workspace.
+ * ws_id wsid - the numerical ID of the workspace.
+ * ws_name workspace - the name of the workspace.
+ * AND
+ * One, and only one, of the numerical id or name of the object.
+ * obj_id objid- the numerical ID of the object.
+ * obj_name name - name of the object.
+ * OPTIONALLY
+ * obj_ver ver - the version of the object.
+ * OR an object reference string:
+ * obj_ref ref - an object reference string.
+ *
+ *
+ */
+ @JsonProperty("to")
+ private ObjectIdentity to;
+ private Map additionalProperties = new HashMap();
+
+ /**
+ * Original spec-file type: ObjectIdentity
+ *
+ * An object identifier.
+ * Select an object by either:
+ * One, and only one, of the numerical id or name of the workspace.
+ * ws_id wsid - the numerical ID of the workspace.
+ * ws_name workspace - the name of the workspace.
+ * AND
+ * One, and only one, of the numerical id or name of the object.
+ * obj_id objid- the numerical ID of the object.
+ * obj_name name - name of the object.
+ * OPTIONALLY
+ * obj_ver ver - the version of the object.
+ * OR an object reference string:
+ * obj_ref ref - an object reference string.
+ *
+ *
+ */
+ @JsonProperty("from")
+ public ObjectIdentity getFrom() {
+ return from;
+ }
+
+ /**
+ * Original spec-file type: ObjectIdentity
+ *
+ * An object identifier.
+ * Select an object by either:
+ * One, and only one, of the numerical id or name of the workspace.
+ * ws_id wsid - the numerical ID of the workspace.
+ * ws_name workspace - the name of the workspace.
+ * AND
+ * One, and only one, of the numerical id or name of the object.
+ * obj_id objid- the numerical ID of the object.
+ * obj_name name - name of the object.
+ * OPTIONALLY
+ * obj_ver ver - the version of the object.
+ * OR an object reference string:
+ * obj_ref ref - an object reference string.
+ *
+ *
+ */
+ @JsonProperty("from")
+ public void setFrom(ObjectIdentity from) {
+ this.from = from;
+ }
+
+ public CopyObjectParams withFrom(ObjectIdentity from) {
+ this.from = from;
+ return this;
+ }
+
+ /**
+ * Original spec-file type: ObjectIdentity
+ *
+ * An object identifier.
+ * Select an object by either:
+ * One, and only one, of the numerical id or name of the workspace.
+ * ws_id wsid - the numerical ID of the workspace.
+ * ws_name workspace - the name of the workspace.
+ * AND
+ * One, and only one, of the numerical id or name of the object.
+ * obj_id objid- the numerical ID of the object.
+ * obj_name name - name of the object.
+ * OPTIONALLY
+ * obj_ver ver - the version of the object.
+ * OR an object reference string:
+ * obj_ref ref - an object reference string.
+ *
+ *
+ */
+ @JsonProperty("to")
+ public ObjectIdentity getTo() {
+ return to;
+ }
+
+ /**
+ * Original spec-file type: ObjectIdentity
+ *
+ * An object identifier.
+ * Select an object by either:
+ * One, and only one, of the numerical id or name of the workspace.
+ * ws_id wsid - the numerical ID of the workspace.
+ * ws_name workspace - the name of the workspace.
+ * AND
+ * One, and only one, of the numerical id or name of the object.
+ * obj_id objid- the numerical ID of the object.
+ * obj_name name - name of the object.
+ * OPTIONALLY
+ * obj_ver ver - the version of the object.
+ * OR an object reference string:
+ * obj_ref ref - an object reference string.
+ *
+ *
+ */
+ @JsonProperty("to")
+ public void setTo(ObjectIdentity to) {
+ this.to = to;
+ }
+
+ public CopyObjectParams withTo(ObjectIdentity to) {
+ this.to = to;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((((("CopyObjectParams"+" [from=")+ from)+", to=")+ to)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/CreateWorkspaceParams.java b/service/src/main/java/us/kbase/workspace/CreateWorkspaceParams.java
new file mode 100644
index 000000000..0639920bc
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/CreateWorkspaceParams.java
@@ -0,0 +1,125 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: CreateWorkspaceParams
+ *
+ * Input parameters for the "create_workspace" function.
+ * Required arguments:
+ * ws_name workspace - name of the workspace to be created.
+ * Optional arguments:
+ * permission globalread - 'r' to set the new workspace globally readable,
+ * default 'n'.
+ * string description - A free-text description of the new workspace, 1000
+ * characters max. Longer strings will be mercilessly and brutally
+ * truncated.
+ * usermeta meta - arbitrary user-supplied metadata for the workspace.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "workspace",
+ "globalread",
+ "description",
+ "meta"
+})
+public class CreateWorkspaceParams {
+
+ @JsonProperty("workspace")
+ private java.lang.String workspace;
+ @JsonProperty("globalread")
+ private java.lang.String globalread;
+ @JsonProperty("description")
+ private java.lang.String description;
+ @JsonProperty("meta")
+ private Map meta;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("workspace")
+ public java.lang.String getWorkspace() {
+ return workspace;
+ }
+
+ @JsonProperty("workspace")
+ public void setWorkspace(java.lang.String workspace) {
+ this.workspace = workspace;
+ }
+
+ public CreateWorkspaceParams withWorkspace(java.lang.String workspace) {
+ this.workspace = workspace;
+ return this;
+ }
+
+ @JsonProperty("globalread")
+ public java.lang.String getGlobalread() {
+ return globalread;
+ }
+
+ @JsonProperty("globalread")
+ public void setGlobalread(java.lang.String globalread) {
+ this.globalread = globalread;
+ }
+
+ public CreateWorkspaceParams withGlobalread(java.lang.String globalread) {
+ this.globalread = globalread;
+ return this;
+ }
+
+ @JsonProperty("description")
+ public java.lang.String getDescription() {
+ return description;
+ }
+
+ @JsonProperty("description")
+ public void setDescription(java.lang.String description) {
+ this.description = description;
+ }
+
+ public CreateWorkspaceParams withDescription(java.lang.String description) {
+ this.description = description;
+ return this;
+ }
+
+ @JsonProperty("meta")
+ public Map getMeta() {
+ return meta;
+ }
+
+ @JsonProperty("meta")
+ public void setMeta(Map meta) {
+ this.meta = meta;
+ }
+
+ public CreateWorkspaceParams withMeta(Map meta) {
+ this.meta = meta;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(java.lang.String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ return ((((((((((("CreateWorkspaceParams"+" [workspace=")+ workspace)+", globalread=")+ globalread)+", description=")+ description)+", meta=")+ meta)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/ExternalDataUnit.java b/service/src/main/java/us/kbase/workspace/ExternalDataUnit.java
new file mode 100644
index 000000000..179733cb1
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/ExternalDataUnit.java
@@ -0,0 +1,204 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: ExternalDataUnit
+ *
+ * An external data unit. A piece of data from a source outside the
+ * Workspace.
+ * On input, only one of the resource_release_date or
+ * resource_release_epoch may be supplied. Both are supplied on output.
+ * All fields are optional, but at least one field must be present.
+ * string resource_name - the name of the resource, for example JGI.
+ * string resource_url - the url of the resource, for example
+ * http://genome.jgi.doe.gov
+ * string resource_version - version of the resource
+ * timestamp resource_release_date - the release date of the resource
+ * epoch resource_release_epoch - the release date of the resource
+ * string data_url - the url of the data, for example
+ * http://genome.jgi.doe.gov/pages/dynamicOrganismDownload.jsf?
+ * organism=BlaspURHD0036
+ * string data_id - the id of the data, for example
+ * 7625.2.79179.AGTTCC.adnq.fastq.gz
+ * string description - a free text description of the data.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "resource_name",
+ "resource_url",
+ "resource_version",
+ "resource_release_date",
+ "resource_release_epoch",
+ "data_url",
+ "data_id",
+ "description"
+})
+public class ExternalDataUnit {
+
+ @JsonProperty("resource_name")
+ private String resourceName;
+ @JsonProperty("resource_url")
+ private String resourceUrl;
+ @JsonProperty("resource_version")
+ private String resourceVersion;
+ @JsonProperty("resource_release_date")
+ private String resourceReleaseDate;
+ @JsonProperty("resource_release_epoch")
+ private Long resourceReleaseEpoch;
+ @JsonProperty("data_url")
+ private String dataUrl;
+ @JsonProperty("data_id")
+ private String dataId;
+ @JsonProperty("description")
+ private String description;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("resource_name")
+ public String getResourceName() {
+ return resourceName;
+ }
+
+ @JsonProperty("resource_name")
+ public void setResourceName(String resourceName) {
+ this.resourceName = resourceName;
+ }
+
+ public ExternalDataUnit withResourceName(String resourceName) {
+ this.resourceName = resourceName;
+ return this;
+ }
+
+ @JsonProperty("resource_url")
+ public String getResourceUrl() {
+ return resourceUrl;
+ }
+
+ @JsonProperty("resource_url")
+ public void setResourceUrl(String resourceUrl) {
+ this.resourceUrl = resourceUrl;
+ }
+
+ public ExternalDataUnit withResourceUrl(String resourceUrl) {
+ this.resourceUrl = resourceUrl;
+ return this;
+ }
+
+ @JsonProperty("resource_version")
+ public String getResourceVersion() {
+ return resourceVersion;
+ }
+
+ @JsonProperty("resource_version")
+ public void setResourceVersion(String resourceVersion) {
+ this.resourceVersion = resourceVersion;
+ }
+
+ public ExternalDataUnit withResourceVersion(String resourceVersion) {
+ this.resourceVersion = resourceVersion;
+ return this;
+ }
+
+ @JsonProperty("resource_release_date")
+ public String getResourceReleaseDate() {
+ return resourceReleaseDate;
+ }
+
+ @JsonProperty("resource_release_date")
+ public void setResourceReleaseDate(String resourceReleaseDate) {
+ this.resourceReleaseDate = resourceReleaseDate;
+ }
+
+ public ExternalDataUnit withResourceReleaseDate(String resourceReleaseDate) {
+ this.resourceReleaseDate = resourceReleaseDate;
+ return this;
+ }
+
+ @JsonProperty("resource_release_epoch")
+ public Long getResourceReleaseEpoch() {
+ return resourceReleaseEpoch;
+ }
+
+ @JsonProperty("resource_release_epoch")
+ public void setResourceReleaseEpoch(Long resourceReleaseEpoch) {
+ this.resourceReleaseEpoch = resourceReleaseEpoch;
+ }
+
+ public ExternalDataUnit withResourceReleaseEpoch(Long resourceReleaseEpoch) {
+ this.resourceReleaseEpoch = resourceReleaseEpoch;
+ return this;
+ }
+
+ @JsonProperty("data_url")
+ public String getDataUrl() {
+ return dataUrl;
+ }
+
+ @JsonProperty("data_url")
+ public void setDataUrl(String dataUrl) {
+ this.dataUrl = dataUrl;
+ }
+
+ public ExternalDataUnit withDataUrl(String dataUrl) {
+ this.dataUrl = dataUrl;
+ return this;
+ }
+
+ @JsonProperty("data_id")
+ public String getDataId() {
+ return dataId;
+ }
+
+ @JsonProperty("data_id")
+ public void setDataId(String dataId) {
+ this.dataId = dataId;
+ }
+
+ public ExternalDataUnit withDataId(String dataId) {
+ this.dataId = dataId;
+ return this;
+ }
+
+ @JsonProperty("description")
+ public String getDescription() {
+ return description;
+ }
+
+ @JsonProperty("description")
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public ExternalDataUnit withDescription(String description) {
+ this.description = description;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((((((((((((((((("ExternalDataUnit"+" [resourceName=")+ resourceName)+", resourceUrl=")+ resourceUrl)+", resourceVersion=")+ resourceVersion)+", resourceReleaseDate=")+ resourceReleaseDate)+", resourceReleaseEpoch=")+ resourceReleaseEpoch)+", dataUrl=")+ dataUrl)+", dataId=")+ dataId)+", description=")+ description)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/FuncInfo.java b/service/src/main/java/us/kbase/workspace/FuncInfo.java
new file mode 100644
index 000000000..84058009b
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/FuncInfo.java
@@ -0,0 +1,208 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: FuncInfo
+ *
+ * DEPRECATED
+ * @deprecated
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "func_def",
+ "description",
+ "spec_def",
+ "parsing_structure",
+ "module_vers",
+ "released_module_vers",
+ "func_vers",
+ "released_func_vers",
+ "used_type_defs"
+})
+public class FuncInfo {
+
+ @JsonProperty("func_def")
+ private java.lang.String funcDef;
+ @JsonProperty("description")
+ private java.lang.String description;
+ @JsonProperty("spec_def")
+ private java.lang.String specDef;
+ @JsonProperty("parsing_structure")
+ private java.lang.String parsingStructure;
+ @JsonProperty("module_vers")
+ private List moduleVers;
+ @JsonProperty("released_module_vers")
+ private List releasedModuleVers;
+ @JsonProperty("func_vers")
+ private List funcVers;
+ @JsonProperty("released_func_vers")
+ private List releasedFuncVers;
+ @JsonProperty("used_type_defs")
+ private List usedTypeDefs;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("func_def")
+ public java.lang.String getFuncDef() {
+ return funcDef;
+ }
+
+ @JsonProperty("func_def")
+ public void setFuncDef(java.lang.String funcDef) {
+ this.funcDef = funcDef;
+ }
+
+ public FuncInfo withFuncDef(java.lang.String funcDef) {
+ this.funcDef = funcDef;
+ return this;
+ }
+
+ @JsonProperty("description")
+ public java.lang.String getDescription() {
+ return description;
+ }
+
+ @JsonProperty("description")
+ public void setDescription(java.lang.String description) {
+ this.description = description;
+ }
+
+ public FuncInfo withDescription(java.lang.String description) {
+ this.description = description;
+ return this;
+ }
+
+ @JsonProperty("spec_def")
+ public java.lang.String getSpecDef() {
+ return specDef;
+ }
+
+ @JsonProperty("spec_def")
+ public void setSpecDef(java.lang.String specDef) {
+ this.specDef = specDef;
+ }
+
+ public FuncInfo withSpecDef(java.lang.String specDef) {
+ this.specDef = specDef;
+ return this;
+ }
+
+ @JsonProperty("parsing_structure")
+ public java.lang.String getParsingStructure() {
+ return parsingStructure;
+ }
+
+ @JsonProperty("parsing_structure")
+ public void setParsingStructure(java.lang.String parsingStructure) {
+ this.parsingStructure = parsingStructure;
+ }
+
+ public FuncInfo withParsingStructure(java.lang.String parsingStructure) {
+ this.parsingStructure = parsingStructure;
+ return this;
+ }
+
+ @JsonProperty("module_vers")
+ public List getModuleVers() {
+ return moduleVers;
+ }
+
+ @JsonProperty("module_vers")
+ public void setModuleVers(List moduleVers) {
+ this.moduleVers = moduleVers;
+ }
+
+ public FuncInfo withModuleVers(List moduleVers) {
+ this.moduleVers = moduleVers;
+ return this;
+ }
+
+ @JsonProperty("released_module_vers")
+ public List getReleasedModuleVers() {
+ return releasedModuleVers;
+ }
+
+ @JsonProperty("released_module_vers")
+ public void setReleasedModuleVers(List releasedModuleVers) {
+ this.releasedModuleVers = releasedModuleVers;
+ }
+
+ public FuncInfo withReleasedModuleVers(List releasedModuleVers) {
+ this.releasedModuleVers = releasedModuleVers;
+ return this;
+ }
+
+ @JsonProperty("func_vers")
+ public List getFuncVers() {
+ return funcVers;
+ }
+
+ @JsonProperty("func_vers")
+ public void setFuncVers(List funcVers) {
+ this.funcVers = funcVers;
+ }
+
+ public FuncInfo withFuncVers(List funcVers) {
+ this.funcVers = funcVers;
+ return this;
+ }
+
+ @JsonProperty("released_func_vers")
+ public List getReleasedFuncVers() {
+ return releasedFuncVers;
+ }
+
+ @JsonProperty("released_func_vers")
+ public void setReleasedFuncVers(List releasedFuncVers) {
+ this.releasedFuncVers = releasedFuncVers;
+ }
+
+ public FuncInfo withReleasedFuncVers(List releasedFuncVers) {
+ this.releasedFuncVers = releasedFuncVers;
+ return this;
+ }
+
+ @JsonProperty("used_type_defs")
+ public List getUsedTypeDefs() {
+ return usedTypeDefs;
+ }
+
+ @JsonProperty("used_type_defs")
+ public void setUsedTypeDefs(List usedTypeDefs) {
+ this.usedTypeDefs = usedTypeDefs;
+ }
+
+ public FuncInfo withUsedTypeDefs(List usedTypeDefs) {
+ this.usedTypeDefs = usedTypeDefs;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(java.lang.String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ return ((((((((((((((((((((("FuncInfo"+" [funcDef=")+ funcDef)+", description=")+ description)+", specDef=")+ specDef)+", parsingStructure=")+ parsingStructure)+", moduleVers=")+ moduleVers)+", releasedModuleVers=")+ releasedModuleVers)+", funcVers=")+ funcVers)+", releasedFuncVers=")+ releasedFuncVers)+", usedTypeDefs=")+ usedTypeDefs)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetAdminRoleResults.java b/service/src/main/java/us/kbase/workspace/GetAdminRoleResults.java
new file mode 100644
index 000000000..24f4f5d55
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetAdminRoleResults.java
@@ -0,0 +1,63 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: GetAdminRoleResults
+ *
+ * The results of the get_admin_role call.
+ * adminrole - the users's administration role, one of `none`, `read`, or `full`.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "adminrole"
+})
+public class GetAdminRoleResults {
+
+ @JsonProperty("adminrole")
+ private String adminrole;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("adminrole")
+ public String getAdminrole() {
+ return adminrole;
+ }
+
+ @JsonProperty("adminrole")
+ public void setAdminrole(String adminrole) {
+ this.adminrole = adminrole;
+ }
+
+ public GetAdminRoleResults withAdminrole(String adminrole) {
+ this.adminrole = adminrole;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((("GetAdminRoleResults"+" [adminrole=")+ adminrole)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetModuleInfoParams.java b/service/src/main/java/us/kbase/workspace/GetModuleInfoParams.java
new file mode 100644
index 000000000..45c8c1ff7
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetModuleInfoParams.java
@@ -0,0 +1,85 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: GetModuleInfoParams
+ *
+ * Parameters for the get_module_info function.
+ * Required arguments:
+ * modulename mod - the name of the module to retrieve.
+ * Optional arguments:
+ * spec_version ver - the version of the module to retrieve. Defaults to
+ * the latest version.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "mod",
+ "ver"
+})
+public class GetModuleInfoParams {
+
+ @JsonProperty("mod")
+ private String mod;
+ @JsonProperty("ver")
+ private Long ver;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("mod")
+ public String getMod() {
+ return mod;
+ }
+
+ @JsonProperty("mod")
+ public void setMod(String mod) {
+ this.mod = mod;
+ }
+
+ public GetModuleInfoParams withMod(String mod) {
+ this.mod = mod;
+ return this;
+ }
+
+ @JsonProperty("ver")
+ public Long getVer() {
+ return ver;
+ }
+
+ @JsonProperty("ver")
+ public void setVer(Long ver) {
+ this.ver = ver;
+ }
+
+ public GetModuleInfoParams withVer(Long ver) {
+ this.ver = ver;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((((("GetModuleInfoParams"+" [mod=")+ mod)+", ver=")+ ver)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetNamesByPrefixParams.java b/service/src/main/java/us/kbase/workspace/GetNamesByPrefixParams.java
new file mode 100644
index 000000000..b5bc8c289
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetNamesByPrefixParams.java
@@ -0,0 +1,105 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: GetNamesByPrefixParams
+ *
+ * Input parameters for the get_names_by_prefix function.
+ * Required arguments:
+ * list workspaces - the workspaces to search.
+ * string prefix - the prefix of the object names to return.
+ * Optional arguments:
+ * boolean includeHidden - include names of hidden objects in the results.
+ * Default false.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "workspaces",
+ "prefix",
+ "includeHidden"
+})
+public class GetNamesByPrefixParams {
+
+ @JsonProperty("workspaces")
+ private List workspaces;
+ @JsonProperty("prefix")
+ private String prefix;
+ @JsonProperty("includeHidden")
+ private Long includeHidden;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("workspaces")
+ public List getWorkspaces() {
+ return workspaces;
+ }
+
+ @JsonProperty("workspaces")
+ public void setWorkspaces(List workspaces) {
+ this.workspaces = workspaces;
+ }
+
+ public GetNamesByPrefixParams withWorkspaces(List workspaces) {
+ this.workspaces = workspaces;
+ return this;
+ }
+
+ @JsonProperty("prefix")
+ public String getPrefix() {
+ return prefix;
+ }
+
+ @JsonProperty("prefix")
+ public void setPrefix(String prefix) {
+ this.prefix = prefix;
+ }
+
+ public GetNamesByPrefixParams withPrefix(String prefix) {
+ this.prefix = prefix;
+ return this;
+ }
+
+ @JsonProperty("includeHidden")
+ public Long getIncludeHidden() {
+ return includeHidden;
+ }
+
+ @JsonProperty("includeHidden")
+ public void setIncludeHidden(Long includeHidden) {
+ this.includeHidden = includeHidden;
+ }
+
+ public GetNamesByPrefixParams withIncludeHidden(Long includeHidden) {
+ this.includeHidden = includeHidden;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((((((("GetNamesByPrefixParams"+" [workspaces=")+ workspaces)+", prefix=")+ prefix)+", includeHidden=")+ includeHidden)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetNamesByPrefixResults.java b/service/src/main/java/us/kbase/workspace/GetNamesByPrefixResults.java
new file mode 100644
index 000000000..a4421eb9b
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetNamesByPrefixResults.java
@@ -0,0 +1,65 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: GetNamesByPrefixResults
+ *
+ * Results object for the get_names_by_prefix function.
+ * list> names - the names matching the provided prefix,
+ * listed in order of the input workspaces.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "names"
+})
+public class GetNamesByPrefixResults {
+
+ @JsonProperty("names")
+ private List> names;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("names")
+ public List> getNames() {
+ return names;
+ }
+
+ @JsonProperty("names")
+ public void setNames(List> names) {
+ this.names = names;
+ }
+
+ public GetNamesByPrefixResults withNames(List> names) {
+ this.names = names;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(java.lang.String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ return ((((("GetNamesByPrefixResults"+" [names=")+ names)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetObjectInfo3Params.java b/service/src/main/java/us/kbase/workspace/GetObjectInfo3Params.java
new file mode 100644
index 000000000..e1704a5da
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetObjectInfo3Params.java
@@ -0,0 +1,129 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: GetObjectInfo3Params
+ *
+ * Input parameters for the "get_object_info3" function.
+ * Required arguments:
+ * list objects - the objects for which the
+ * information should be fetched. Subsetting related parameters are
+ * ignored.
+ * Optional arguments:
+ * boolean infostruct - return information about the object as a structure rather than a tuple.
+ * Default false. If true, infos and paths will be null.
+ * boolean includeMetadata - include the user and admin metadata in the returned
+ * information. Default false.
+ * boolean ignoreErrors - Don't throw an exception if an object cannot
+ * be accessed; return null for that object's information and path instead.
+ * Default false.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "objects",
+ "infostruct",
+ "includeMetadata",
+ "ignoreErrors"
+})
+public class GetObjectInfo3Params {
+
+ @JsonProperty("objects")
+ private List objects;
+ @JsonProperty("infostruct")
+ private Long infostruct;
+ @JsonProperty("includeMetadata")
+ private Long includeMetadata;
+ @JsonProperty("ignoreErrors")
+ private Long ignoreErrors;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("objects")
+ public List getObjects() {
+ return objects;
+ }
+
+ @JsonProperty("objects")
+ public void setObjects(List objects) {
+ this.objects = objects;
+ }
+
+ public GetObjectInfo3Params withObjects(List objects) {
+ this.objects = objects;
+ return this;
+ }
+
+ @JsonProperty("infostruct")
+ public Long getInfostruct() {
+ return infostruct;
+ }
+
+ @JsonProperty("infostruct")
+ public void setInfostruct(Long infostruct) {
+ this.infostruct = infostruct;
+ }
+
+ public GetObjectInfo3Params withInfostruct(Long infostruct) {
+ this.infostruct = infostruct;
+ return this;
+ }
+
+ @JsonProperty("includeMetadata")
+ public Long getIncludeMetadata() {
+ return includeMetadata;
+ }
+
+ @JsonProperty("includeMetadata")
+ public void setIncludeMetadata(Long includeMetadata) {
+ this.includeMetadata = includeMetadata;
+ }
+
+ public GetObjectInfo3Params withIncludeMetadata(Long includeMetadata) {
+ this.includeMetadata = includeMetadata;
+ return this;
+ }
+
+ @JsonProperty("ignoreErrors")
+ public Long getIgnoreErrors() {
+ return ignoreErrors;
+ }
+
+ @JsonProperty("ignoreErrors")
+ public void setIgnoreErrors(Long ignoreErrors) {
+ this.ignoreErrors = ignoreErrors;
+ }
+
+ public GetObjectInfo3Params withIgnoreErrors(Long ignoreErrors) {
+ this.ignoreErrors = ignoreErrors;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((((((((("GetObjectInfo3Params"+" [objects=")+ objects)+", infostruct=")+ infostruct)+", includeMetadata=")+ includeMetadata)+", ignoreErrors=")+ ignoreErrors)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetObjectInfo3Results.java b/service/src/main/java/us/kbase/workspace/GetObjectInfo3Results.java
new file mode 100644
index 000000000..2e652ecb3
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetObjectInfo3Results.java
@@ -0,0 +1,104 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import us.kbase.common.service.Tuple11;
+
+
+/**
+ * Original spec-file type: GetObjectInfo3Results
+ *
+ * Output from the get_object_info3 function.
+ * list infos - the object_info data for each object.
+ * list paths - the path to the object through the object reference graph for
+ * each object. All the references in the path are absolute.
+ * list infostructs - the ObjectInfo data for each object.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "infos",
+ "paths",
+ "infostructs"
+})
+public class GetObjectInfo3Results {
+
+ @JsonProperty("infos")
+ private List>> infos;
+ @JsonProperty("paths")
+ private List> paths;
+ @JsonProperty("infostructs")
+ private List infostructs;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("infos")
+ public List>> getInfos() {
+ return infos;
+ }
+
+ @JsonProperty("infos")
+ public void setInfos(List>> infos) {
+ this.infos = infos;
+ }
+
+ public GetObjectInfo3Results withInfos(List>> infos) {
+ this.infos = infos;
+ return this;
+ }
+
+ @JsonProperty("paths")
+ public List> getPaths() {
+ return paths;
+ }
+
+ @JsonProperty("paths")
+ public void setPaths(List> paths) {
+ this.paths = paths;
+ }
+
+ public GetObjectInfo3Results withPaths(List> paths) {
+ this.paths = paths;
+ return this;
+ }
+
+ @JsonProperty("infostructs")
+ public List getInfostructs() {
+ return infostructs;
+ }
+
+ @JsonProperty("infostructs")
+ public void setInfostructs(List infostructs) {
+ this.infostructs = infostructs;
+ }
+
+ public GetObjectInfo3Results withInfostructs(List infostructs) {
+ this.infostructs = infostructs;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(java.lang.String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ return ((((((((("GetObjectInfo3Results"+" [infos=")+ infos)+", paths=")+ paths)+", infostructs=")+ infostructs)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetObjectInfoNewParams.java b/service/src/main/java/us/kbase/workspace/GetObjectInfoNewParams.java
new file mode 100644
index 000000000..fe1d8974e
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetObjectInfoNewParams.java
@@ -0,0 +1,110 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: GetObjectInfoNewParams
+ *
+ * Input parameters for the "get_object_info_new" function.
+ * Required arguments:
+ * list objects - the objects for which the
+ * information should be fetched. Subsetting related parameters are
+ * ignored.
+ * Optional arguments:
+ * boolean includeMetadata - include the object metadata in the returned
+ * information. Default false.
+ * boolean ignoreErrors - Don't throw an exception if an object cannot
+ * be accessed; return null for that object's information instead.
+ * Default false.
+ * @deprecated Workspace.GetObjectInfo3Params
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "objects",
+ "includeMetadata",
+ "ignoreErrors"
+})
+public class GetObjectInfoNewParams {
+
+ @JsonProperty("objects")
+ private List objects;
+ @JsonProperty("includeMetadata")
+ private Long includeMetadata;
+ @JsonProperty("ignoreErrors")
+ private Long ignoreErrors;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("objects")
+ public List getObjects() {
+ return objects;
+ }
+
+ @JsonProperty("objects")
+ public void setObjects(List objects) {
+ this.objects = objects;
+ }
+
+ public GetObjectInfoNewParams withObjects(List objects) {
+ this.objects = objects;
+ return this;
+ }
+
+ @JsonProperty("includeMetadata")
+ public Long getIncludeMetadata() {
+ return includeMetadata;
+ }
+
+ @JsonProperty("includeMetadata")
+ public void setIncludeMetadata(Long includeMetadata) {
+ this.includeMetadata = includeMetadata;
+ }
+
+ public GetObjectInfoNewParams withIncludeMetadata(Long includeMetadata) {
+ this.includeMetadata = includeMetadata;
+ return this;
+ }
+
+ @JsonProperty("ignoreErrors")
+ public Long getIgnoreErrors() {
+ return ignoreErrors;
+ }
+
+ @JsonProperty("ignoreErrors")
+ public void setIgnoreErrors(Long ignoreErrors) {
+ this.ignoreErrors = ignoreErrors;
+ }
+
+ public GetObjectInfoNewParams withIgnoreErrors(Long ignoreErrors) {
+ this.ignoreErrors = ignoreErrors;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((((((("GetObjectInfoNewParams"+" [objects=")+ objects)+", includeMetadata=")+ includeMetadata)+", ignoreErrors=")+ ignoreErrors)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetObjectOutput.java b/service/src/main/java/us/kbase/workspace/GetObjectOutput.java
new file mode 100644
index 000000000..06f5a0324
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetObjectOutput.java
@@ -0,0 +1,86 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import us.kbase.common.service.Tuple12;
+import us.kbase.common.service.UObject;
+
+
+/**
+ * Original spec-file type: get_object_output
+ *
+ * Output generated by the "get_object" function. Provided for backwards
+ * compatibility.
+ * UnspecifiedObject data - The object's data.
+ * object_metadata metadata - Metadata for object retrieved/
+ * @deprecated Workspace.ObjectData
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "data",
+ "metadata"
+})
+public class GetObjectOutput {
+
+ @JsonProperty("data")
+ private UObject data;
+ @JsonProperty("metadata")
+ private Tuple12 , Long> metadata;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("data")
+ public UObject getData() {
+ return data;
+ }
+
+ @JsonProperty("data")
+ public void setData(UObject data) {
+ this.data = data;
+ }
+
+ public GetObjectOutput withData(UObject data) {
+ this.data = data;
+ return this;
+ }
+
+ @JsonProperty("metadata")
+ public Tuple12 , Long> getMetadata() {
+ return metadata;
+ }
+
+ @JsonProperty("metadata")
+ public void setMetadata(Tuple12 , Long> metadata) {
+ this.metadata = metadata;
+ }
+
+ public GetObjectOutput withMetadata(Tuple12 , Long> metadata) {
+ this.metadata = metadata;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(java.lang.String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public java.lang.String toString() {
+ return ((((((("GetObjectOutput"+" [data=")+ data)+", metadata=")+ metadata)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetObjectParams.java b/service/src/main/java/us/kbase/workspace/GetObjectParams.java
new file mode 100644
index 000000000..3e9133d24
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetObjectParams.java
@@ -0,0 +1,128 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: get_object_params
+ *
+ * Input parameters for the "get_object" function. Provided for backwards
+ * compatibility.
+ * Required arguments:
+ * ws_name workspace - Name of the workspace containing the object to be
+ * retrieved
+ * obj_name id - Name of the object to be retrieved
+ * Optional arguments:
+ * int instance - Version of the object to be retrieved, enabling
+ * retrieval of any previous version of an object
+ * string auth - the authentication token of the KBase account accessing
+ * the object. Overrides the client provided authorization
+ * credentials if they exist.
+ * @deprecated Workspace.ObjectIdentity
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "id",
+ "workspace",
+ "instance",
+ "auth"
+})
+public class GetObjectParams {
+
+ @JsonProperty("id")
+ private String id;
+ @JsonProperty("workspace")
+ private String workspace;
+ @JsonProperty("instance")
+ private Long instance;
+ @JsonProperty("auth")
+ private String auth;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("id")
+ public String getId() {
+ return id;
+ }
+
+ @JsonProperty("id")
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public GetObjectParams withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ @JsonProperty("workspace")
+ public String getWorkspace() {
+ return workspace;
+ }
+
+ @JsonProperty("workspace")
+ public void setWorkspace(String workspace) {
+ this.workspace = workspace;
+ }
+
+ public GetObjectParams withWorkspace(String workspace) {
+ this.workspace = workspace;
+ return this;
+ }
+
+ @JsonProperty("instance")
+ public Long getInstance() {
+ return instance;
+ }
+
+ @JsonProperty("instance")
+ public void setInstance(Long instance) {
+ this.instance = instance;
+ }
+
+ public GetObjectParams withInstance(Long instance) {
+ this.instance = instance;
+ return this;
+ }
+
+ @JsonProperty("auth")
+ public String getAuth() {
+ return auth;
+ }
+
+ @JsonProperty("auth")
+ public void setAuth(String auth) {
+ this.auth = auth;
+ }
+
+ public GetObjectParams withAuth(String auth) {
+ this.auth = auth;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((((((((("GetObjectParams"+" [id=")+ id)+", workspace=")+ workspace)+", instance=")+ instance)+", auth=")+ auth)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetObjectmetaParams.java b/service/src/main/java/us/kbase/workspace/GetObjectmetaParams.java
new file mode 100644
index 000000000..e4fb49a52
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetObjectmetaParams.java
@@ -0,0 +1,127 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: get_objectmeta_params
+ *
+ * Input parameters for the "get_objectmeta" function.
+ * Required arguments:
+ * ws_name workspace - name of the workspace containing the object for
+ * which metadata is to be retrieved
+ * obj_name id - name of the object for which metadata is to be retrieved
+ * Optional arguments:
+ * int instance - Version of the object for which metadata is to be
+ * retrieved, enabling retrieval of any previous version of an object
+ * string auth - the authentication token of the KBase account requesting
+ * access. Overrides the client provided authorization credentials if
+ * they exist.
+ * @deprecated Workspace.ObjectIdentity
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "id",
+ "workspace",
+ "instance",
+ "auth"
+})
+public class GetObjectmetaParams {
+
+ @JsonProperty("id")
+ private String id;
+ @JsonProperty("workspace")
+ private String workspace;
+ @JsonProperty("instance")
+ private Long instance;
+ @JsonProperty("auth")
+ private String auth;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("id")
+ public String getId() {
+ return id;
+ }
+
+ @JsonProperty("id")
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public GetObjectmetaParams withId(String id) {
+ this.id = id;
+ return this;
+ }
+
+ @JsonProperty("workspace")
+ public String getWorkspace() {
+ return workspace;
+ }
+
+ @JsonProperty("workspace")
+ public void setWorkspace(String workspace) {
+ this.workspace = workspace;
+ }
+
+ public GetObjectmetaParams withWorkspace(String workspace) {
+ this.workspace = workspace;
+ return this;
+ }
+
+ @JsonProperty("instance")
+ public Long getInstance() {
+ return instance;
+ }
+
+ @JsonProperty("instance")
+ public void setInstance(Long instance) {
+ this.instance = instance;
+ }
+
+ public GetObjectmetaParams withInstance(Long instance) {
+ this.instance = instance;
+ return this;
+ }
+
+ @JsonProperty("auth")
+ public String getAuth() {
+ return auth;
+ }
+
+ @JsonProperty("auth")
+ public void setAuth(String auth) {
+ this.auth = auth;
+ }
+
+ public GetObjectmetaParams withAuth(String auth) {
+ this.auth = auth;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((((((((("GetObjectmetaParams"+" [id=")+ id)+", workspace=")+ workspace)+", instance=")+ instance)+", auth=")+ auth)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetObjects2Params.java b/service/src/main/java/us/kbase/workspace/GetObjects2Params.java
new file mode 100644
index 000000000..2084f8f2c
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetObjects2Params.java
@@ -0,0 +1,176 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: GetObjects2Params
+ *
+ * Input parameters for the get_objects2 function.
+ * Required parameters:
+ * list objects - the list of object specifications
+ * for the objects to return (via reference chain and as a subset if
+ * specified).
+ * Optional parameters:
+ * boolean ignoreErrors - Don't throw an exception if an object cannot
+ * be accessed; return null for that object's information instead.
+ * Default false.
+ * boolean infostruct - return the object information as a structure rather than a tuple.
+ * Default false. If true, ObjectData.path will be null as it is provided in
+ * the ObjectInfo data.
+ * boolean no_data - return the provenance, references, and
+ * object_info for this object without the object data. Default false.
+ * boolean skip_external_system_updates - if the objects contain any external IDs, don't
+ * contact external systems to perform any updates for those IDs (often ACL updates,
+ * e.g. for handle / blobstore / sample IDs). In some cases this can speed up fetching the
+ * data. Default false.
+ * boolean batch_external_system_updates - if the objects contain any external IDs,
+ * send all external system updates in a batch to each external system when possible
+ * rather than object by object. This can potentially speed up the updates, but the
+ * drawback is that if the external update fails for any object, all the objects that
+ * required updates for that system will be marked as having a failed update.
+ * Has no effect if skip_external_system_updates is true. Default false.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "objects",
+ "ignoreErrors",
+ "infostruct",
+ "no_data",
+ "skip_external_system_updates",
+ "batch_external_system_updates"
+})
+public class GetObjects2Params {
+
+ @JsonProperty("objects")
+ private List objects;
+ @JsonProperty("ignoreErrors")
+ private Long ignoreErrors;
+ @JsonProperty("infostruct")
+ private Long infostruct;
+ @JsonProperty("no_data")
+ private Long noData;
+ @JsonProperty("skip_external_system_updates")
+ private Long skipExternalSystemUpdates;
+ @JsonProperty("batch_external_system_updates")
+ private Long batchExternalSystemUpdates;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("objects")
+ public List getObjects() {
+ return objects;
+ }
+
+ @JsonProperty("objects")
+ public void setObjects(List objects) {
+ this.objects = objects;
+ }
+
+ public GetObjects2Params withObjects(List objects) {
+ this.objects = objects;
+ return this;
+ }
+
+ @JsonProperty("ignoreErrors")
+ public Long getIgnoreErrors() {
+ return ignoreErrors;
+ }
+
+ @JsonProperty("ignoreErrors")
+ public void setIgnoreErrors(Long ignoreErrors) {
+ this.ignoreErrors = ignoreErrors;
+ }
+
+ public GetObjects2Params withIgnoreErrors(Long ignoreErrors) {
+ this.ignoreErrors = ignoreErrors;
+ return this;
+ }
+
+ @JsonProperty("infostruct")
+ public Long getInfostruct() {
+ return infostruct;
+ }
+
+ @JsonProperty("infostruct")
+ public void setInfostruct(Long infostruct) {
+ this.infostruct = infostruct;
+ }
+
+ public GetObjects2Params withInfostruct(Long infostruct) {
+ this.infostruct = infostruct;
+ return this;
+ }
+
+ @JsonProperty("no_data")
+ public Long getNoData() {
+ return noData;
+ }
+
+ @JsonProperty("no_data")
+ public void setNoData(Long noData) {
+ this.noData = noData;
+ }
+
+ public GetObjects2Params withNoData(Long noData) {
+ this.noData = noData;
+ return this;
+ }
+
+ @JsonProperty("skip_external_system_updates")
+ public Long getSkipExternalSystemUpdates() {
+ return skipExternalSystemUpdates;
+ }
+
+ @JsonProperty("skip_external_system_updates")
+ public void setSkipExternalSystemUpdates(Long skipExternalSystemUpdates) {
+ this.skipExternalSystemUpdates = skipExternalSystemUpdates;
+ }
+
+ public GetObjects2Params withSkipExternalSystemUpdates(Long skipExternalSystemUpdates) {
+ this.skipExternalSystemUpdates = skipExternalSystemUpdates;
+ return this;
+ }
+
+ @JsonProperty("batch_external_system_updates")
+ public Long getBatchExternalSystemUpdates() {
+ return batchExternalSystemUpdates;
+ }
+
+ @JsonProperty("batch_external_system_updates")
+ public void setBatchExternalSystemUpdates(Long batchExternalSystemUpdates) {
+ this.batchExternalSystemUpdates = batchExternalSystemUpdates;
+ }
+
+ public GetObjects2Params withBatchExternalSystemUpdates(Long batchExternalSystemUpdates) {
+ this.batchExternalSystemUpdates = batchExternalSystemUpdates;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((((((((((((("GetObjects2Params"+" [objects=")+ objects)+", ignoreErrors=")+ ignoreErrors)+", infostruct=")+ infostruct)+", noData=")+ noData)+", skipExternalSystemUpdates=")+ skipExternalSystemUpdates)+", batchExternalSystemUpdates=")+ batchExternalSystemUpdates)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetObjects2Results.java b/service/src/main/java/us/kbase/workspace/GetObjects2Results.java
new file mode 100644
index 000000000..5fd0d872b
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetObjects2Results.java
@@ -0,0 +1,64 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: GetObjects2Results
+ *
+ * Results from the get_objects2 function.
+ * list data - the returned objects.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "data"
+})
+public class GetObjects2Results {
+
+ @JsonProperty("data")
+ private List data;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("data")
+ public List getData() {
+ return data;
+ }
+
+ @JsonProperty("data")
+ public void setData(List data) {
+ this.data = data;
+ }
+
+ public GetObjects2Results withData(List data) {
+ this.data = data;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((("GetObjects2Results"+" [data=")+ data)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetPermissionsMassParams.java b/service/src/main/java/us/kbase/workspace/GetPermissionsMassParams.java
new file mode 100644
index 000000000..15dbc764c
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetPermissionsMassParams.java
@@ -0,0 +1,65 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: GetPermissionsMassParams
+ *
+ * Input parameters for the "get_permissions_mass" function.
+ * workspaces - the workspaces for which to return the permissions,
+ * maximum 1000.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "workspaces"
+})
+public class GetPermissionsMassParams {
+
+ @JsonProperty("workspaces")
+ private List workspaces;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("workspaces")
+ public List getWorkspaces() {
+ return workspaces;
+ }
+
+ @JsonProperty("workspaces")
+ public void setWorkspaces(List workspaces) {
+ this.workspaces = workspaces;
+ }
+
+ public GetPermissionsMassParams withWorkspaces(List workspaces) {
+ this.workspaces = workspaces;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((("GetPermissionsMassParams"+" [workspaces=")+ workspaces)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GetWorkspacemetaParams.java b/service/src/main/java/us/kbase/workspace/GetWorkspacemetaParams.java
new file mode 100644
index 000000000..91444e257
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GetWorkspacemetaParams.java
@@ -0,0 +1,108 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: get_workspacemeta_params
+ *
+ * DEPRECATED
+ * Input parameters for the "get_workspacemeta" function. Provided for
+ * backwards compatibility.
+ * One, and only one of:
+ * ws_name workspace - name of the workspace.
+ * ws_id id - the numerical ID of the workspace.
+ * Optional arguments:
+ * string auth - the authentication token of the KBase account accessing
+ * the workspace. Overrides the client provided authorization
+ * credentials if they exist.
+ * @deprecated Workspace.WorkspaceIdentity
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "workspace",
+ "id",
+ "auth"
+})
+public class GetWorkspacemetaParams {
+
+ @JsonProperty("workspace")
+ private String workspace;
+ @JsonProperty("id")
+ private Long id;
+ @JsonProperty("auth")
+ private String auth;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("workspace")
+ public String getWorkspace() {
+ return workspace;
+ }
+
+ @JsonProperty("workspace")
+ public void setWorkspace(String workspace) {
+ this.workspace = workspace;
+ }
+
+ public GetWorkspacemetaParams withWorkspace(String workspace) {
+ this.workspace = workspace;
+ return this;
+ }
+
+ @JsonProperty("id")
+ public Long getId() {
+ return id;
+ }
+
+ @JsonProperty("id")
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public GetWorkspacemetaParams withId(Long id) {
+ this.id = id;
+ return this;
+ }
+
+ @JsonProperty("auth")
+ public String getAuth() {
+ return auth;
+ }
+
+ @JsonProperty("auth")
+ public void setAuth(String auth) {
+ this.auth = auth;
+ }
+
+ public GetWorkspacemetaParams withAuth(String auth) {
+ this.auth = auth;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((((((("GetWorkspacemetaParams"+" [workspace=")+ workspace)+", id=")+ id)+", auth=")+ auth)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/GrantModuleOwnershipParams.java b/service/src/main/java/us/kbase/workspace/GrantModuleOwnershipParams.java
new file mode 100644
index 000000000..8c441d0d0
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/GrantModuleOwnershipParams.java
@@ -0,0 +1,105 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: GrantModuleOwnershipParams
+ *
+ * Parameters for the grant_module_ownership function.
+ * Required arguments:
+ * modulename mod - the module to modify.
+ * username new_owner - the user to add to the module's list of
+ * owners.
+ * Optional arguments:
+ * boolean with_grant_option - true to allow the user to add owners
+ * to the module.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "mod",
+ "new_owner",
+ "with_grant_option"
+})
+public class GrantModuleOwnershipParams {
+
+ @JsonProperty("mod")
+ private String mod;
+ @JsonProperty("new_owner")
+ private String newOwner;
+ @JsonProperty("with_grant_option")
+ private Long withGrantOption;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("mod")
+ public String getMod() {
+ return mod;
+ }
+
+ @JsonProperty("mod")
+ public void setMod(String mod) {
+ this.mod = mod;
+ }
+
+ public GrantModuleOwnershipParams withMod(String mod) {
+ this.mod = mod;
+ return this;
+ }
+
+ @JsonProperty("new_owner")
+ public String getNewOwner() {
+ return newOwner;
+ }
+
+ @JsonProperty("new_owner")
+ public void setNewOwner(String newOwner) {
+ this.newOwner = newOwner;
+ }
+
+ public GrantModuleOwnershipParams withNewOwner(String newOwner) {
+ this.newOwner = newOwner;
+ return this;
+ }
+
+ @JsonProperty("with_grant_option")
+ public Long getWithGrantOption() {
+ return withGrantOption;
+ }
+
+ @JsonProperty("with_grant_option")
+ public void setWithGrantOption(Long withGrantOption) {
+ this.withGrantOption = withGrantOption;
+ }
+
+ public GrantModuleOwnershipParams withWithGrantOption(Long withGrantOption) {
+ this.withGrantOption = withGrantOption;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((((((("GrantModuleOwnershipParams"+" [mod=")+ mod)+", newOwner=")+ newOwner)+", withGrantOption=")+ withGrantOption)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/ListAllTypesParams.java b/service/src/main/java/us/kbase/workspace/ListAllTypesParams.java
new file mode 100644
index 000000000..c300a90d2
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/ListAllTypesParams.java
@@ -0,0 +1,65 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: ListAllTypesParams
+ *
+ * Parameters for list_all_types function.
+ * Optional arguments:
+ * boolean with_empty_modules - include empty module names, optional flag,
+ * default value is false.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "with_empty_modules"
+})
+public class ListAllTypesParams {
+
+ @JsonProperty("with_empty_modules")
+ private Long withEmptyModules;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("with_empty_modules")
+ public Long getWithEmptyModules() {
+ return withEmptyModules;
+ }
+
+ @JsonProperty("with_empty_modules")
+ public void setWithEmptyModules(Long withEmptyModules) {
+ this.withEmptyModules = withEmptyModules;
+ }
+
+ public ListAllTypesParams withWithEmptyModules(Long withEmptyModules) {
+ this.withEmptyModules = withEmptyModules;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((("ListAllTypesParams"+" [withEmptyModules=")+ withEmptyModules)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/ListModuleVersionsParams.java b/service/src/main/java/us/kbase/workspace/ListModuleVersionsParams.java
new file mode 100644
index 000000000..2eec88129
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/ListModuleVersionsParams.java
@@ -0,0 +1,85 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: ListModuleVersionsParams
+ *
+ * Parameters for the list_module_versions function.
+ * Required arguments:
+ * One of:
+ * modulename mod - returns all versions of the module.
+ * type_string type - returns all versions of the module associated with
+ * the type.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "mod",
+ "type"
+})
+public class ListModuleVersionsParams {
+
+ @JsonProperty("mod")
+ private String mod;
+ @JsonProperty("type")
+ private String type;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("mod")
+ public String getMod() {
+ return mod;
+ }
+
+ @JsonProperty("mod")
+ public void setMod(String mod) {
+ this.mod = mod;
+ }
+
+ public ListModuleVersionsParams withMod(String mod) {
+ this.mod = mod;
+ return this;
+ }
+
+ @JsonProperty("type")
+ public String getType() {
+ return type;
+ }
+
+ @JsonProperty("type")
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public ListModuleVersionsParams withType(String type) {
+ this.type = type;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((((("ListModuleVersionsParams"+" [mod=")+ mod)+", type=")+ type)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/ListModulesParams.java b/service/src/main/java/us/kbase/workspace/ListModulesParams.java
new file mode 100644
index 000000000..29a23c5da
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/ListModulesParams.java
@@ -0,0 +1,64 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: ListModulesParams
+ *
+ * Parameters for the list_modules() function.
+ * Optional arguments:
+ * username owner - only list modules owned by this user.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "owner"
+})
+public class ListModulesParams {
+
+ @JsonProperty("owner")
+ private String owner;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("owner")
+ public String getOwner() {
+ return owner;
+ }
+
+ @JsonProperty("owner")
+ public void setOwner(String owner) {
+ this.owner = owner;
+ }
+
+ public ListModulesParams withOwner(String owner) {
+ this.owner = owner;
+ return this;
+ }
+
+ @JsonAnyGetter
+ public Map getAdditionalProperties() {
+ return this.additionalProperties;
+ }
+
+ @JsonAnySetter
+ public void setAdditionalProperties(String name, Object value) {
+ this.additionalProperties.put(name, value);
+ }
+
+ @Override
+ public String toString() {
+ return ((((("ListModulesParams"+" [owner=")+ owner)+", additionalProperties=")+ additionalProperties)+"]");
+ }
+
+}
diff --git a/service/src/main/java/us/kbase/workspace/ListObjectsParams.java b/service/src/main/java/us/kbase/workspace/ListObjectsParams.java
new file mode 100644
index 000000000..037720588
--- /dev/null
+++ b/service/src/main/java/us/kbase/workspace/ListObjectsParams.java
@@ -0,0 +1,461 @@
+
+package us.kbase.workspace;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.annotation.Generated;
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+
+
+/**
+ * Original spec-file type: ListObjectsParams
+ *
+ * Parameters for the 'list_objects' function.
+ * At least one, and no more than 10000, workspaces must be specified in one of the
+ * two following parameters. It is strongly recommended that the list is restricted to
+ * the workspaces of interest, or the results may be very large:
+ * list ids - the numerical IDs of the workspaces of interest.
+ * list workspaces - the names of the workspaces of interest.
+ * Only one of each timestamp/epoch pair may be supplied.
+ * Optional arguments:
+ * type_string type - type of the objects to be listed. Here, omitting
+ * version information will find any objects that match the provided
+ * type - e.g. Foo.Bar-0 will match Foo.Bar-0.X where X is any
+ * existing version.
+ * permission perm - DEPRECATED, no longer useful. Filter on minimum permission by providing
+ * only workspaces with the desired permission levels in the input list(s).
+ * list savedby - filter objects by the user that saved or
+ * copied the object.
+ * usermeta meta - filter objects by the user supplied metadata. NOTE:
+ * only one key/value pair is supported at this time. A full map
+ * is provided as input for the possibility for expansion in the
+ * future.
+ * timestamp after - only return objects that were created after this
+ * date.
+ * timestamp before - only return objects that were created before this
+ * date.
+ * epoch after_epoch - only return objects that were created after this
+ * date.
+ * epoch before_epoch - only return objects that were created before this
+ * date.
+ * string startafter - a reference-like string that determines where the
+ * list of objects will begin. It takes the form X/Y/Z, where X is
+ * the workspace ID, Y the object ID, and Z the version. The version
+ * may be omitted, and the object ID omitted if the version is also
+ * omitted. After a '/' separator either an integer or no characters
+ * at all, including whitespace, may occur. Whitespace strings are
+ * ignored. If startafter is provided, after, before,
+ * after_epoch, before_epoch, savedby, meta, minObjectID, and
+ * maxObjectID may not be provided. Only objects that are ordered
+ * after the reference, exclusive, will be included in the
+ * result, and the resulting list will be sorted by reference.
+ * obj_id minObjectID - only return objects with an object id greater or
+ * equal to this value.
+ * obj_id maxObjectID - only return objects with an object id less than or
+ * equal to this value.
+ * boolean showDeleted - show deleted objects in workspaces to which the
+ * user has write access.
+ * boolean showOnlyDeleted - only show deleted objects in workspaces to
+ * which the user has write access.
+ * boolean showHidden - show hidden objects.
+ * boolean showAllVersions - show all versions of each object that match
+ * the filters rather than only the most recent version.
+ * boolean includeMetadata - include the user provided metadata in the
+ * returned object_info. If false (0 or null), the default, the
+ * metadata will be null.
+ * boolean excludeGlobal - DEPRECATED, no longer useful. Filter on global workspaces by
+ * excluding them from the input workspace list(s).
+ * int limit - limit the output to X objects. Default and maximum value
+ * is 10000. Limit values < 1 are treated as 10000, the default.
+ *
+ *
+ */
+@JsonInclude(JsonInclude.Include.NON_NULL)
+@Generated("com.googlecode.jsonschema2pojo")
+@JsonPropertyOrder({
+ "workspaces",
+ "ids",
+ "type",
+ "perm",
+ "savedby",
+ "meta",
+ "after",
+ "before",
+ "after_epoch",
+ "before_epoch",
+ "startafter",
+ "minObjectID",
+ "maxObjectID",
+ "showDeleted",
+ "showOnlyDeleted",
+ "showHidden",
+ "showAllVersions",
+ "includeMetadata",
+ "excludeGlobal",
+ "limit"
+})
+public class ListObjectsParams {
+
+ @JsonProperty("workspaces")
+ private List workspaces;
+ @JsonProperty("ids")
+ private List ids;
+ @JsonProperty("type")
+ private java.lang.String type;
+ @JsonProperty("perm")
+ private java.lang.String perm;
+ @JsonProperty("savedby")
+ private List savedby;
+ @JsonProperty("meta")
+ private Map meta;
+ @JsonProperty("after")
+ private java.lang.String after;
+ @JsonProperty("before")
+ private java.lang.String before;
+ @JsonProperty("after_epoch")
+ private java.lang.Long afterEpoch;
+ @JsonProperty("before_epoch")
+ private java.lang.Long beforeEpoch;
+ @JsonProperty("startafter")
+ private java.lang.String startafter;
+ @JsonProperty("minObjectID")
+ private java.lang.Long minObjectID;
+ @JsonProperty("maxObjectID")
+ private java.lang.Long maxObjectID;
+ @JsonProperty("showDeleted")
+ private java.lang.Long showDeleted;
+ @JsonProperty("showOnlyDeleted")
+ private java.lang.Long showOnlyDeleted;
+ @JsonProperty("showHidden")
+ private java.lang.Long showHidden;
+ @JsonProperty("showAllVersions")
+ private java.lang.Long showAllVersions;
+ @JsonProperty("includeMetadata")
+ private java.lang.Long includeMetadata;
+ @JsonProperty("excludeGlobal")
+ private java.lang.Long excludeGlobal;
+ @JsonProperty("limit")
+ private java.lang.Long limit;
+ private Map additionalProperties = new HashMap();
+
+ @JsonProperty("workspaces")
+ public List getWorkspaces() {
+ return workspaces;
+ }
+
+ @JsonProperty("workspaces")
+ public void setWorkspaces(List workspaces) {
+ this.workspaces = workspaces;
+ }
+
+ public ListObjectsParams withWorkspaces(List workspaces) {
+ this.workspaces = workspaces;
+ return this;
+ }
+
+ @JsonProperty("ids")
+ public List getIds() {
+ return ids;
+ }
+
+ @JsonProperty("ids")
+ public void setIds(List ids) {
+ this.ids = ids;
+ }
+
+ public ListObjectsParams withIds(List ids) {
+ this.ids = ids;
+ return this;
+ }
+
+ @JsonProperty("type")
+ public java.lang.String getType() {
+ return type;
+ }
+
+ @JsonProperty("type")
+ public void setType(java.lang.String type) {
+ this.type = type;
+ }
+
+ public ListObjectsParams withType(java.lang.String type) {
+ this.type = type;
+ return this;
+ }
+
+ @JsonProperty("perm")
+ public java.lang.String getPerm() {
+ return perm;
+ }
+
+ @JsonProperty("perm")
+ public void setPerm(java.lang.String perm) {
+ this.perm = perm;
+ }
+
+ public ListObjectsParams withPerm(java.lang.String perm) {
+ this.perm = perm;
+ return this;
+ }
+
+ @JsonProperty("savedby")
+ public List getSavedby() {
+ return savedby;
+ }
+
+ @JsonProperty("savedby")
+ public void setSavedby(List savedby) {
+ this.savedby = savedby;
+ }
+
+ public ListObjectsParams withSavedby(List savedby) {
+ this.savedby = savedby;
+ return this;
+ }
+
+ @JsonProperty("meta")
+ public Map getMeta() {
+ return meta;
+ }
+
+ @JsonProperty("meta")
+ public void setMeta(Map