Skip to content

Commit

Permalink
build(openapi): phase 2 - generate kotlin clients
Browse files Browse the repository at this point in the history
   Primary Changes
   --------------
   1. Updated package.json files of several packages to include kotlin code
      generation script
   2. Updated the ghpkg-all-kotlin-api-clients-publish.yaml to include
      the plugins updated in 1)

   package.json updated for the following plugins to incorporate 1)
   ----------------------------------------------------------------
   a. packages/cactus-cmd-api-server
   b. packages/cactus-core-api
   c. packages/cactus-plugin-consortium-manual
   d. packages/cactus-plugin-keychain-aws-sm
   e. packages/cactus-plugin-keychain-azure-kv
   f. packages/cactus-plugin-keychain-google-sm
   g. packages/cactus-plugin-keychain-memory
   h. packages/cactus-plugin-keychain-memory-wasm
   i. packages/cactus-plugin-keychain-vault
   j. packages/cactus-plugin-ledger-connector-fabric
   k. packages/cactus-plugin-odap-hermes
   l. examples/cactus-example-carbon-accounting-business-logic-plugin
   m. examples/cactus-example-supply-chain-business-logic-plugin
   n. extensions/cactus-plugin-object-store-ipfs

   package.json updated for future incorporation of 1)
   --------------------------------------------------
   a. packages/cactus-plugin-htlc-eth-besu
   b. packages/cactus-plugin-htlc-eth-besu-erc20
   c. packages/cactus-plugin-ledger-connector-iroha
   d. packages/cactus-plugin-ledger-connector-iroha2
   e. packages/cactus-plugin-ledger-connector-quorum
   f. packages/cactus-plugin-ledger-connector-xdai
   g. extensions/cactus-plugin-htlc-coordinator-besu

Fixes hyperledger-cacti#468

Signed-off-by: jagpreetsinghsasan <[email protected]>
  • Loading branch information
jagpreetsinghsasan committed Jan 24, 2023
1 parent b0eb921 commit 256bbdb
Show file tree
Hide file tree
Showing 841 changed files with 35,840 additions and 144 deletions.
196 changes: 196 additions & 0 deletions .github/workflows/ghpkg-all-kotlin-api-clients-publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -58,3 +58,199 @@ jobs:
with:
name: cactus-plugin-ledger-connector-corda-kotlin-client-${{ env.GITVERSION }}.jar
path: packages/cactus-plugin-ledger-connector-corda/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-cmd-api-server-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/packages/cactus-cmd-api-server/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-cmd-api-server-kotlin-client
uses: actions/[email protected]
with:
name: cactus-cmd-api-server-kotlin-client-${{ env.GITVERSION }}.jar
path: packages/cactus-cmd-api-server/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-core-api-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/packages/cactus-core-api/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-core-api-kotlin-client
uses: actions/[email protected]
with:
name: cactus-core-api-kotlin-client-${{ env.GITVERSION }}.jar
path: packages/cactus-core-api/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-plugin-consortium-manual-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/packages/cactus-plugin-consortium-manual/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-plugin-consortium-manual-kotlin-client
uses: actions/[email protected]
with:
name: cactus-plugin-consortium-manual-kotlin-client-${{ env.GITVERSION }}.jar
path: packages/cactus-plugin-consortium-manual/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-plugin-keychain-google-sm-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/packages/cactus-plugin-keychain-google-sm/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-plugin-keychain-google-sm-kotlin-client
uses: actions/[email protected]
with:
name: cactus-plugin-keychain-google-sm-kotlin-client-${{ env.GITVERSION }}.jar
path: packages/cactus-plugin-keychain-google-sm/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-plugin-keychain-aws-sm-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/packages/cactus-plugin-keychain-aws-sm/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-plugin-keychain-aws-sm-kotlin-client
uses: actions/[email protected]
with:
name: cactus-plugin-keychain-aws-sm-kotlin-client-${{ env.GITVERSION }}.jar
path: packages/cactus-plugin-keychain-aws-sm/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-plugin-keychain-azure-kv-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/packages/cactus-plugin-keychain-azure-kv/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-plugin-keychain-azure-kv-kotlin-client
uses: actions/[email protected]
with:
name: cactus-plugin-keychain-azure-kv-kotlin-client-${{ env.GITVERSION }}.jar
path: packages/cactus-plugin-keychain-azure-kv/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-plugin-keychain-memory-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/packages/cactus-plugin-keychain-memory/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-plugin-keychain-memory-kotlin-client
uses: actions/[email protected]
with:
name: cactus-plugin-keychain-memory-kotlin-client-${{ env.GITVERSION }}.jar
path: packages/cactus-plugin-keychain-memory/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-plugin-keychain-vault-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/packages/cactus-plugin-keychain-vault/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-plugin-keychain-vault-kotlin-client
uses: actions/[email protected]
with:
name: cactus-plugin-keychain-vault-kotlin-client-${{ env.GITVERSION }}.jar
path: packages/cactus-plugin-keychain-vault/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-plugin-ledger-connector-fabric-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/packages/cactus-plugin-ledger-connector-fabric/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-plugin-ledger-connector-fabric-kotlin-client
uses: actions/[email protected]
with:
name: cactus-plugin-ledger-connector-fabric-kotlin-client-${{ env.GITVERSION }}.jar
path: packages/cactus-plugin-ledger-connector-fabric/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-plugin-keychain-memory-wasm-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/packages/cactus-plugin-keychain-memory-wasm/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-plugin-keychain-memory-wasm-kotlin-client
uses: actions/[email protected]
with:
name: cactus-plugin-keychain-memory-wasm-kotlin-client-${{ env.GITVERSION }}.jar
path: packages/cactus-plugin-keychain-memory-wasm/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-plugin-odap-hermes-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/packages/cactus-plugin-odap-hermes/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-plugin-odap-hermes-kotlin-client
uses: actions/[email protected]
with:
name: cactus-plugin-odap-hermes-kotlin-client-${{ env.GITVERSION }}.jar
path: packages/cactus-plugin-odap-hermes/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-example-supply-chain-business-logic-plugin-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/examples/cactus-example-supply-chain-business-logic-plugin/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-example-supply-chain-business-logic-plugin-kotlin-client
uses: actions/[email protected]
with:
name: cactus-example-supply-chain-business-logic-plugin-kotlin-client-${{ env.GITVERSION }}.jar
path: examples/cactus-example-supply-chain-business-logic-plugin/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-example-carbon-accounting-business-logic-plugin-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/examples/cactus-example-carbon-accounting-business-logic-plugin/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-example-carbon-accounting-business-logic-plugin-kotlin-client
uses: actions/[email protected]
with:
name: cactus-example-carbon-accounting-business-logic-plugin-kotlin-client-${{ env.GITVERSION }}.jar
path: examples/cactus-example-carbon-accounting-business-logic-plugin/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar

- name: build-cactus-plugin-object-store-ipfs-kotlin-client
run: |
WDIR=`pwd`
cd ${WDIR}/extensions/cactus-plugin-object-store-ipfs/src/main/kotlin/generated/openapi/kotlin-client
chmod +x gradlew
./gradlew clean
./gradlew build
- name: publish-cactus-plugin-object-store-ipfs-kotlin-client
uses: actions/[email protected]
with:
name: cactus-plugin-object-store-ipfs-kotlin-client-${{ env.GITVERSION }}.jar
path: extensions/cactus-plugin-object-store-ipfs/src/main/kotlin/generated/openapi/kotlin-client/build/libs/kotlin-client-1.0.0.jar
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,9 @@
"scripts": {
"codegen": "run-p 'codegen:*'",
"codegen:openapi": "npm run generate-sdk",
"generate-sdk": "openapi-generator-cli generate -i ./src/main/json/openapi.json -g typescript-axios -o ./src/main/typescript/generated/openapi/typescript-axios --reserved-words-mappings protected=protected",
"generate-sdk": "run-p generate-sdk:*",
"generate-sdk:typescript-axios": "openapi-generator-cli generate -i ./src/main/json/openapi.json -g typescript-axios -o ./src/main/typescript/generated/openapi/typescript-axios --reserved-words-mappings protected=protected",
"generate-sdk:kotlin": "openapi-generator-cli generate -i ./src/main/json/openapi.json -g kotlin -o ./src/main/kotlin/generated/openapi/kotlin-client/ --reserved-words-mappings protected=protected",
"watch": "npm-watch",
"webpack": "npm-run-all webpack:dev",
"webpack:dev": "npm-run-all webpack:dev:node webpack:dev:web",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# OpenAPI Generator Ignore
# Generated by openapi-generator https://github.com/openapitools/openapi-generator

# Use this file to prevent files from being overwritten by the generator.
# The patterns follow closely to .gitignore or .dockerignore.

# As an example, the C# client generator defines ApiClient.cs.
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
#ApiClient.cs

# You can match any string of characters against a directory, file or extension with a single asterisk (*):
#foo/*/qux
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux

# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
#foo/**/qux
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux

# You can also negate patterns with an exclamation (!).
# For example, you can ignore all files in a docs folder with the file extension .md:
#docs/*.md
# Then explicitly reverse the ignore rule for a single file:
#!docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
README.md
build.gradle
docs/AuthzJwtClaim.md
docs/AuthzScope.md
docs/Checkpoint.md
docs/DaoTokenGetAllowanceNotFoundResponse.md
docs/DaoTokenGetAllowanceRequest.md
docs/DaoTokenGetAllowanceResponse.md
docs/DefaultApi.md
docs/EnrollAdminInfo.md
docs/EnrollAdminV1Request.md
docs/EnrollAdminV1Response.md
gradle/wrapper/gradle-wrapper.jar
gradle/wrapper/gradle-wrapper.properties
gradlew
gradlew.bat
settings.gradle
src/main/kotlin/org/openapitools/client/apis/DefaultApi.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApiAbstractions.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApiClient.kt
src/main/kotlin/org/openapitools/client/infrastructure/ApiInfrastructureResponse.kt
src/main/kotlin/org/openapitools/client/infrastructure/BigDecimalAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/BigIntegerAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/ByteArrayAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/Errors.kt
src/main/kotlin/org/openapitools/client/infrastructure/LocalDateAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/LocalDateTimeAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/OffsetDateTimeAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/RequestConfig.kt
src/main/kotlin/org/openapitools/client/infrastructure/RequestMethod.kt
src/main/kotlin/org/openapitools/client/infrastructure/ResponseExtensions.kt
src/main/kotlin/org/openapitools/client/infrastructure/Serializer.kt
src/main/kotlin/org/openapitools/client/infrastructure/URIAdapter.kt
src/main/kotlin/org/openapitools/client/infrastructure/UUIDAdapter.kt
src/main/kotlin/org/openapitools/client/models/AuthzJwtClaim.kt
src/main/kotlin/org/openapitools/client/models/AuthzScope.kt
src/main/kotlin/org/openapitools/client/models/Checkpoint.kt
src/main/kotlin/org/openapitools/client/models/DaoTokenGetAllowanceNotFoundResponse.kt
src/main/kotlin/org/openapitools/client/models/DaoTokenGetAllowanceRequest.kt
src/main/kotlin/org/openapitools/client/models/DaoTokenGetAllowanceResponse.kt
src/main/kotlin/org/openapitools/client/models/EnrollAdminInfo.kt
src/main/kotlin/org/openapitools/client/models/EnrollAdminV1Request.kt
src/main/kotlin/org/openapitools/client/models/EnrollAdminV1Response.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5.2.1
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# org.openapitools.client - Kotlin client library for Hyperledger Cactus Example - Carbon Accounting App

## Requires

* Kotlin 1.4.30
* Gradle 6.8.3

## Build

First, create the gradle wrapper script:

```
gradle wrapper
```

Then, run:

```
./gradlew check assemble
```

This runs all tests and packages the library.

## Features/Implementation Notes

* Supports JSON inputs/outputs, File inputs, and Form inputs.
* Supports collection formats for query parameters: csv, tsv, ssv, pipes.
* Some Kotlin and Java types are fully qualified to avoid conflicts with types defined in OpenAPI definitions.
* Implementation of ApiClient is intended to reduce method counts, specifically to benefit Android targets.

<a name="documentation-for-api-endpoints"></a>
## Documentation for API Endpoints

All URIs are relative to *http://localhost*

Class | Method | HTTP request | Description
------------ | ------------- | ------------- | -------------
*DefaultApi* | [**daoTokenGetAllowanceV1**](docs/DefaultApi.md#daotokengetallowancev1) | **POST** /api/v1/plugins/@hyperledger/cactus-example-carbon-accounting-backend/dao-token/get-allowance | Get the number of tokens `spender` is approved to spend on behalf of `account`
*DefaultApi* | [**enrollAdminV1**](docs/DefaultApi.md#enrolladminv1) | **POST** /api/v1/utilityemissionchannel/registerEnroll/admin | Registers an admin account within the Fabric organization specified.


<a name="documentation-for-models"></a>
## Documentation for Models

- [org.openapitools.client.models.AuthzJwtClaim](docs/AuthzJwtClaim.md)
- [org.openapitools.client.models.AuthzScope](docs/AuthzScope.md)
- [org.openapitools.client.models.Checkpoint](docs/Checkpoint.md)
- [org.openapitools.client.models.DaoTokenGetAllowanceNotFoundResponse](docs/DaoTokenGetAllowanceNotFoundResponse.md)
- [org.openapitools.client.models.DaoTokenGetAllowanceRequest](docs/DaoTokenGetAllowanceRequest.md)
- [org.openapitools.client.models.DaoTokenGetAllowanceResponse](docs/DaoTokenGetAllowanceResponse.md)
- [org.openapitools.client.models.EnrollAdminInfo](docs/EnrollAdminInfo.md)
- [org.openapitools.client.models.EnrollAdminV1Request](docs/EnrollAdminV1Request.md)
- [org.openapitools.client.models.EnrollAdminV1Response](docs/EnrollAdminV1Response.md)


<a name="documentation-for-authorization"></a>
## Documentation for Authorization

All endpoints do not require authorization.
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
group 'org.openapitools'
version '1.0.0'

wrapper {
gradleVersion = '6.8.3'
distributionUrl = "https://services.gradle.org/distributions/gradle-$gradleVersion-all.zip"
}

buildscript {
ext.kotlin_version = '1.5.10'

repositories {
maven { url "https://repo1.maven.org/maven2" }
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}

apply plugin: 'kotlin'

repositories {
maven { url "https://repo1.maven.org/maven2" }
}

test {
useJUnitPlatform()
}

dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
implementation "com.squareup.moshi:moshi-kotlin:1.12.0"
implementation "com.squareup.moshi:moshi-adapters:1.12.0"
implementation "com.squareup.okhttp3:okhttp:4.9.1"
testImplementation "io.kotlintest:kotlintest-runner-junit5:3.4.2"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@

# AuthzJwtClaim

## Enum


* `iss` (value: `"Hyperledger Labs - Carbon Accounting Tool"`)



Loading

0 comments on commit 256bbdb

Please sign in to comment.