Skip to content

Commit 406ff4e

Browse files
authored
Generate workspace and account clients (#361)
1 parent 46596b2 commit 406ff4e

File tree

16 files changed

+1167
-74
lines changed

16 files changed

+1167
-74
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const sdk = require("..");
2+
3+
/**
4+
* Example to list account groups on Azure using Azure CLI authentication
5+
*/
6+
async function main() {
7+
const config = new sdk.Config({
8+
host: "https://accounts.azuredatabricks.net/",
9+
authType: "azure-cli",
10+
});
11+
const client = new sdk.AccountClient(config);
12+
13+
console.log(await client.accountGroups.list());
14+
}
15+
16+
main();

packages/databricks-sdk-js/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"watch": "tsc --build --watch",
2222
"clean": "rm -rf dist node_modules",
2323
"openapi:fetch": "./scripts/fetch_openapi.sh 4609d709fc94a1b8dbe79ac78a1cece281fdaeff",
24-
"openapi:generate": "./scripts/generate_openapi.sh v0.2.0 && yarn run build",
24+
"openapi:generate": "./scripts/generate_openapi.sh lowerFirst && yarn run build",
2525
"generate-notice": "../../scripts/generate_notice.sh",
2626
"fix": "eslint src --ext ts --fix && prettier . --write",
2727
"test:lint": "eslint src --ext ts && prettier . -c",

packages/databricks-sdk-js/scripts/generate_openapi.sh

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,4 @@ GO_SDK_HASH=${1:-main}
77
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )
88
OPENAPI=$DIR/all-internal.json
99

10-
pushd $DIR/../../../databricks-sdk-go
11-
git checkout $GO_SDK_HASH || git pull && git checkout $GO_SDK_HASH
12-
go run openapi/gen/main.go -spec $OPENAPI -target $DIR/src/apis
13-
popd
10+
go run github.com/databricks/databricks-sdk-go/openapi/gen@$GO_SDK_HASH -spec $OPENAPI -target $DIR/src
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"formatter": "yarn fix",
3+
"packages": {
4+
".codegen/api.ts.tmpl": "apis/{{.Name}}/api.ts",
5+
".codegen/index.ts.tmpl": "apis/{{.Name}}/index.ts",
6+
".codegen/model.ts.tmpl": "apis/{{.Name}}/model.ts"
7+
},
8+
"batch": {
9+
".codegen/WorkspaceClient.ts.tmpl": "WorkspaceClient.ts",
10+
".codegen/AccountClient.ts.tmpl": "AccountClient.ts"
11+
}
12+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
/* eslint-disable @typescript-eslint/no-unused-vars */
2+
3+
// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
4+
5+
import {Config, ConfigOptions} from "./config/Config";
6+
import {ApiClient, ClientOptions} from "./api-client";
7+
8+
{{range .Packages}}
9+
import * as {{.Name}} from "./apis/{{.Name}}";{{end}}
10+
11+
export class AccountClient {
12+
readonly config: Config;
13+
readonly apiClient: ApiClient;
14+
15+
{{range .Services}}{{if .IsAccounts}}
16+
/**
17+
{{.Comment "* " 80}}
18+
*/
19+
readonly {{if eq .Package.Name "scim" -}}
20+
{{.Name | trimPrefix "Account" | lowerFirst }}
21+
{{- else}}{{.CamelName}}{{end}}: {{.Package.Name}}.{{.PascalName}}Service;
22+
{{end -}}{{end}}
23+
24+
constructor(config: ConfigOptions | Config, options: ClientOptions = {}) {
25+
if (!(config instanceof Config)) {
26+
config = new Config(config);
27+
}
28+
29+
this.config = config as Config;
30+
31+
this.config.ensureResolved();
32+
if (!this.config.accountId || !this.config.isAccountClient()) {
33+
throw new Error("invalid Databricks Account configuration");
34+
}
35+
36+
this.apiClient = new ApiClient(this.config, options);
37+
38+
{{range .Services}}{{if .IsAccounts}}
39+
this.{{if eq .Package.Name "scim" -}}
40+
{{.Name | trimPrefix "Account" | lowerFirst }}
41+
{{- else}}{{.CamelName}}{{end}} = new {{.Package.Name}}.{{.PascalName}}Service(this.apiClient);{{end}}{{end}}
42+
}
43+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/* eslint-disable @typescript-eslint/no-unused-vars */
2+
3+
// Code generated from OpenAPI specs by Databricks SDK Generator. DO NOT EDIT.
4+
5+
import {Config, ConfigOptions} from "./config/Config";
6+
import {ApiClient, ClientOptions} from "./api-client";
7+
8+
{{range .Packages}}
9+
import * as {{.Name}} from "./apis/{{.Name}}";{{end}}
10+
11+
export class WorkspaceClient {
12+
readonly config: Config;
13+
readonly apiClient: ApiClient;
14+
15+
{{range .Services}}{{if not .IsAccounts}}
16+
{{- if eq .Name "CommandExecution" -}}
17+
/**
18+
* This API allows executing commands on running clusters.
19+
*/
20+
readonly commands: commands.CommandExecutionService;
21+
{{else -}}
22+
/**
23+
{{.Comment "* " 80}}
24+
*/
25+
readonly {{.CamelName}}: {{.Package.Name}}.{{.PascalName}}Service;
26+
{{end -}}{{end}}
27+
{{end}}
28+
29+
constructor(config: ConfigOptions | Config, options: ClientOptions = {}) {
30+
if (!(config instanceof Config)) {
31+
config = new Config(config);
32+
}
33+
34+
this.config = config as Config;
35+
this.apiClient = new ApiClient(this.config, options);
36+
37+
{{range .Services}}{{if not .IsAccounts}}
38+
{{- if eq .Name "CommandExecution" -}}
39+
this.commands = new commands.CommandExecutionService(this.apiClient);
40+
{{else -}}
41+
this.{{.CamelName}} = new {{.Package.Name}}.{{.PascalName}}Service(this.apiClient);
42+
{{end -}}{{end}}{{end}}
43+
}
44+
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
AccountClient.ts linguist-generated=true
2+
WorkspaceClient.ts linguist-generated=true
3+
apis/billing/api.ts linguist-generated=true
4+
apis/billing/index.ts linguist-generated=true
5+
apis/billing/model.ts linguist-generated=true
6+
apis/clusterpolicies/api.ts linguist-generated=true
7+
apis/clusterpolicies/index.ts linguist-generated=true
8+
apis/clusterpolicies/model.ts linguist-generated=true
9+
apis/clusters/api.ts linguist-generated=true
10+
apis/clusters/index.ts linguist-generated=true
11+
apis/clusters/model.ts linguist-generated=true
12+
apis/commands/api.ts linguist-generated=true
13+
apis/commands/index.ts linguist-generated=true
14+
apis/commands/model.ts linguist-generated=true
15+
apis/dbfs/api.ts linguist-generated=true
16+
apis/dbfs/index.ts linguist-generated=true
17+
apis/dbfs/model.ts linguist-generated=true
18+
apis/deployment/api.ts linguist-generated=true
19+
apis/deployment/index.ts linguist-generated=true
20+
apis/deployment/model.ts linguist-generated=true
21+
apis/gitcredentials/api.ts linguist-generated=true
22+
apis/gitcredentials/index.ts linguist-generated=true
23+
apis/gitcredentials/model.ts linguist-generated=true
24+
apis/globalinitscripts/api.ts linguist-generated=true
25+
apis/globalinitscripts/index.ts linguist-generated=true
26+
apis/globalinitscripts/model.ts linguist-generated=true
27+
apis/instancepools/api.ts linguist-generated=true
28+
apis/instancepools/index.ts linguist-generated=true
29+
apis/instancepools/model.ts linguist-generated=true
30+
apis/ipaccesslists/api.ts linguist-generated=true
31+
apis/ipaccesslists/index.ts linguist-generated=true
32+
apis/ipaccesslists/model.ts linguist-generated=true
33+
apis/jobs/api.ts linguist-generated=true
34+
apis/jobs/index.ts linguist-generated=true
35+
apis/jobs/model.ts linguist-generated=true
36+
apis/libraries/api.ts linguist-generated=true
37+
apis/libraries/index.ts linguist-generated=true
38+
apis/libraries/model.ts linguist-generated=true
39+
apis/mlflow/api.ts linguist-generated=true
40+
apis/mlflow/index.ts linguist-generated=true
41+
apis/mlflow/model.ts linguist-generated=true
42+
apis/permissions/api.ts linguist-generated=true
43+
apis/permissions/index.ts linguist-generated=true
44+
apis/permissions/model.ts linguist-generated=true
45+
apis/pipelines/api.ts linguist-generated=true
46+
apis/pipelines/index.ts linguist-generated=true
47+
apis/pipelines/model.ts linguist-generated=true
48+
apis/repos/api.ts linguist-generated=true
49+
apis/repos/index.ts linguist-generated=true
50+
apis/repos/model.ts linguist-generated=true
51+
apis/scim/api.ts linguist-generated=true
52+
apis/scim/index.ts linguist-generated=true
53+
apis/scim/model.ts linguist-generated=true
54+
apis/secrets/api.ts linguist-generated=true
55+
apis/secrets/index.ts linguist-generated=true
56+
apis/secrets/model.ts linguist-generated=true
57+
apis/sql/api.ts linguist-generated=true
58+
apis/sql/index.ts linguist-generated=true
59+
apis/sql/model.ts linguist-generated=true
60+
apis/tokenmanagement/api.ts linguist-generated=true
61+
apis/tokenmanagement/index.ts linguist-generated=true
62+
apis/tokenmanagement/model.ts linguist-generated=true
63+
apis/tokens/api.ts linguist-generated=true
64+
apis/tokens/index.ts linguist-generated=true
65+
apis/tokens/model.ts linguist-generated=true
66+
apis/unitycatalog/api.ts linguist-generated=true
67+
apis/unitycatalog/index.ts linguist-generated=true
68+
apis/unitycatalog/model.ts linguist-generated=true
69+
apis/workspace/api.ts linguist-generated=true
70+
apis/workspace/index.ts linguist-generated=true
71+
apis/workspace/model.ts linguist-generated=true
72+
apis/workspaceconf/api.ts linguist-generated=true
73+
apis/workspaceconf/index.ts linguist-generated=true
74+
apis/workspaceconf/model.ts linguist-generated=true

0 commit comments

Comments
 (0)