Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
run: make test-mocked

- name: Publish to npm
run: npm publish
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

Expand Down
2 changes: 1 addition & 1 deletion DO_OPENAPI_COMMIT_SHA.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
42e49ab
5d99aef
19 changes: 12 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
LOCAL_SPEC_FILE=./DigitalOcean-public.v2.yaml

.PHONY: help
help:
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'; \
printf "\nNOTE: Run 'SPEC_FILE=path/to/local/spec make generate' to skip the download and use a local spec file.\n"

.PHONY: download-spec
download-spec: ## Download Latest DO Spec
@echo Downloading published spec; \
Expand All @@ -8,7 +13,7 @@ download-spec: ## Download Latest DO Spec


.PHONY: clean
clean: ## Remove kiota generated files and directories
clean: ## Remove kiota generated files and directories
@echo Cleaning up generated files and directories; \
rm -rf src/dots/digitalOceanClient.ts src/dots/digitalOceanClient.js src/dots/models src/dots/v2 src/dots/.kiota.log src/dots/kiota-lock.json

Expand All @@ -17,27 +22,27 @@ dev-dependencies: ## Install development tooling
npm install --only=dev

.PHONY: lint
lint: ##Run linter on code base
lint: ## Run linter on code base
@echo Running typescript linter
npm run lint

.PHONY: test
test: ##Running all test cases
test: ## Running all test cases
@echo Running all test cases
npm test

.PHONY: test-mocked
test-mocked: ##Running mocked test cases
test-mocked: ## Running mocked test cases
@echo Running all mocked test cases
npm run test:mock

.PHONY: test-integration
test-integration: ##Running mocked test cases
test-integration: ## Running mocked test cases
@echo Running all integration test cases
npm run test:integration

.PHONY: test-single
test-single: ##Running single integration test case
test-single: ## Running single integration test case
@echo Running tests/integration/$(file) test cases
npm run test:single tests/integration/$(file)

Expand All @@ -47,7 +52,7 @@ docs_clean: ## Remove generated documents
rm -rf docs

.PHONY: generate-docs
generate-docs: ##generate typescript client documentation
generate-docs: ## generate typescript client documentation
@echo Running typescript linter
npm run docs

Expand Down
44 changes: 43 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,46 @@ Created volume test-volume <ID: 751d0c09-1613-11f0-8aa5-0a58ac147241>
Done!
```

More working examples can be found in `dots/examples`.
More working examples can be found in `dots/examples`.

# **Contributing**

>Visit our [Contribuing Guide](CONTRIBUTING.md) for more information on getting
involved in developing this client.

# **Tests**

>The tests included in this repo are used to validate the generated client.
We use `jest` to define and run the tests.

There are two types of test suites in the `tests/` directory.

#### Mocked Tests: `tests/mocked/`

Tests in the `mocked` directory include:

- tests that validate the generated client has all the expected classes and
methods for the respective API resources and operations.
- tests that exercise individual operations against mocked responses.

These tests do not act against the real API so no real resources are created.

To run mocked tests, run:

```shell
make test-mocked
```
# **Known Issues**

>This selection lists the known issues of the client generator.

## Generates nested value fields for nested arrays

- This is an existing issue with Kiota
- Converts fields which have `default` key to `defaultEscaped`


# **A Full Documentation can be found here**

> https://didactic-spoon-vmgg6zw.pages.github.io/ (Should change the link with some good domain name)

10 changes: 3 additions & 7 deletions changelist.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
## Changelist

Current commit: digitalocean/openapi@b768fe5 (2025-07-08T16:35:09Z)
Target commit: digitalocean/openapi@42e49ab (2025-07-18T18:34:22Z)
Current commit: digitalocean/openapi@42e49ab (2025-07-18T18:34:22Z)
Target commit: digitalocean/openapi@5d99aef (2025-07-23T13:48:40Z)

* digitalocean/openapi#1062: Updated ref branch from github_workflow to prep-0-1-0 - 2025-07-18T18:34:22Z []
* digitalocean/openapi#1061: Added Typescript client gen workflow - 2025-07-15T15:28:47Z []
* digitalocean/openapi#1058: Add GenAI evaluation endpoints and update docs - 2025-07-15T13:16:19Z []
* digitalocean/openapi#1057: Add frequent snapshots and active expire effort properties to Valkey configuration - 2025-07-09T16:50:02Z []
* digitalocean/openapi#1037: Add app platform edge controls - 2025-07-16T04:23:06Z []
* digitalocean/openapi#1064: add docs for new doks cluster options - 2025-07-23T13:48:40Z []

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>createDigitalOceanClient | dots - v1.0.0</title><meta name="description" content="Documentation for dots"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">dots - v1.0.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/digitalOceanClient.html">digitalOceanClient</a></li><li><a href="" aria-current="page">createDigitalOceanClient</a></li></ul><h1>Function createDigitalOceanClient</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="createdigitaloceanclient"><span class="tsd-kind-call-signature">createDigitalOceanClient</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">requestAdapter</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">RequestAdapter</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/digitalOceanClient.DigitalOceanClient.html" class="tsd-signature-type tsd-kind-interface">DigitalOceanClient</a><a href="#createdigitaloceanclient" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Instantiates a new <a href="../interfaces/digitalOceanClient.DigitalOceanClient.html" class="tsd-kind-interface">DigitalOceanClient</a> and sets the default values.</p>
<!DOCTYPE html><html class="default" lang="en" data-base="../"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>createDigitalOceanClient | @api-engineering-digitalocean/dots - v1.0.0</title><meta name="description" content="Documentation for @api-engineering-digitalocean/dots"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="../index.html" class="title">@api-engineering-digitalocean/dots - v1.0.0</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb" aria-label="Breadcrumb"><li><a href="../modules/digitalOceanClient.html">digitalOceanClient</a></li><li><a href="" aria-current="page">createDigitalOceanClient</a></li></ul><h1>Function createDigitalOceanClient</h1></div><section class="tsd-panel"><ul class="tsd-signatures"><li class=""><div class="tsd-signature tsd-anchor-link" id="createdigitaloceanclient"><span class="tsd-kind-call-signature">createDigitalOceanClient</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">requestAdapter</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">RequestAdapter</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/digitalOceanClient.DigitalOceanClient.html" class="tsd-signature-type tsd-kind-interface">DigitalOceanClient</a><a href="#createdigitaloceanclient" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></div><div class="tsd-description"><div class="tsd-comment tsd-typography"><p>Instantiates a new <a href="../interfaces/digitalOceanClient.DigitalOceanClient.html" class="tsd-kind-interface">DigitalOceanClient</a> and sets the default values.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">requestAdapter</span>: <span class="tsd-signature-type">RequestAdapter</span></span><div class="tsd-comment tsd-typography"><p>The request adapter to use to execute the requests.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../interfaces/digitalOceanClient.DigitalOceanClient.html" class="tsd-signature-type tsd-kind-interface">DigitalOceanClient</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/digitalocean/dots/blob/9a819a23bf4a49645482d10968c91f2381d4ae88/src/dots/digitalOceanClient.ts#L22">src/dots/digitalOceanClient.ts:22</a></li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">dots - v1.0.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../interfaces/digitalOceanClient.DigitalOceanClient.html" class="tsd-signature-type tsd-kind-interface">DigitalOceanClient</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/digitalocean/dots/blob/a53e9ff018a35d8707e10c18073b5b5248332804/src/dots/digitalOceanClient.ts#L22">src/dots/digitalOceanClient.ts:22</a></li></ul></aside></div></li></ul></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="../assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html">@api-engineering-digitalocean/dots - v1.0.0</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
Loading
Loading