diff --git a/.github/workflows/sdk-drift-check.yml b/.github/workflows/sdk-drift-check.yml new file mode 100644 index 000000000..5a233f7b6 --- /dev/null +++ b/.github/workflows/sdk-drift-check.yml @@ -0,0 +1,89 @@ +name: SDK Drift Check + +on: + pull_request: + branches: [main] + paths: + - 'components/ambient-sdk/generator/**' + - 'components/ambient-sdk/go-sdk/**' + - 'components/ambient-sdk/python-sdk/**' + - 'components/ambient-sdk/ts-sdk/**' + - 'components/ambient-api-server/openapi/**' + - '.github/workflows/sdk-drift-check.yml' + + push: + branches: [main] + paths: + - 'components/ambient-sdk/generator/**' + - 'components/ambient-sdk/go-sdk/**' + - 'components/ambient-sdk/python-sdk/**' + - 'components/ambient-sdk/ts-sdk/**' + - 'components/ambient-api-server/openapi/**' + - '.github/workflows/sdk-drift-check.yml' + + workflow_dispatch: + +concurrency: + group: sdk-drift-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + check-drift: + name: SDK Generator Drift + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version-file: components/ambient-sdk/generator/go.mod + cache-dependency-path: components/ambient-sdk/generator/go.sum + + - name: Regenerate SDK from OpenAPI spec + working-directory: components/ambient-sdk/generator + run: | + go run . \ + -spec ../../ambient-api-server/openapi/openapi.yaml \ + -go-out ../go-sdk \ + -python-out ../python-sdk/ambient_platform \ + -ts-out ../ts-sdk + + - name: Run gofmt on generated Go code + working-directory: components/ambient-sdk/go-sdk + run: go fmt ./... + + - name: Fix trailing newlines (match pre-commit end-of-file-fixer) + run: | + find components/ambient-sdk/go-sdk components/ambient-sdk/python-sdk components/ambient-sdk/ts-sdk \ + -type f \( -name '*.go' -o -name '*.py' -o -name '*.ts' \) \ + -exec sed -i -e :a -e '/^\n*$/{$d;N;ba' -e '}' {} + + + - name: Check for drift + run: | + # Ignore timestamp and hash lines (they change every run) + # Patterns cover both // (Go/TS) and # (Python) comment styles + DRIFT=$(git diff \ + --ignore-matching-lines='Spec SHA256:' \ + --ignore-matching-lines='Generated:' \ + -- components/ambient-sdk/go-sdk/ \ + components/ambient-sdk/python-sdk/ \ + components/ambient-sdk/ts-sdk/) + + if [ -n "$DRIFT" ]; then + echo "❌ SDK drift detected — regenerated code differs from committed code." + echo "" + echo "This means either:" + echo " 1. A generator template was updated but the SDK was not regenerated" + echo " 2. The OpenAPI spec changed but the SDK was not regenerated" + echo " 3. Generated files were hand-edited (update the templates instead)" + echo "" + echo "Fix: cd components/ambient-sdk && make generate-sdk" + echo "" + echo "Diff:" + echo "$DRIFT" + exit 1 + fi + + echo "✅ No SDK drift detected" diff --git a/components/ambient-api-server/openapi/openapi.sessions.yaml b/components/ambient-api-server/openapi/openapi.sessions.yaml index 00b5e8743..370a644e3 100644 --- a/components/ambient-api-server/openapi/openapi.sessions.yaml +++ b/components/ambient-api-server/openapi/openapi.sessions.yaml @@ -177,6 +177,37 @@ paths: application/json: schema: $ref: 'openapi.yaml#/components/schemas/Error' + delete: + summary: Delete a session by id + security: + - Bearer: [] + responses: + '204': + description: Session deleted successfully + '401': + description: Auth token is invalid + content: + application/json: + schema: + $ref: 'openapi.yaml#/components/schemas/Error' + '403': + description: Unauthorized to perform operation + content: + application/json: + schema: + $ref: 'openapi.yaml#/components/schemas/Error' + '404': + description: No session with specified id exists + content: + application/json: + schema: + $ref: 'openapi.yaml#/components/schemas/Error' + '500': + description: Unexpected error deleting session + content: + application/json: + schema: + $ref: 'openapi.yaml#/components/schemas/Error' parameters: - $ref: '#/components/parameters/id' /api/ambient/v1/sessions/{id}/status: diff --git a/components/ambient-sdk/generator/main.go b/components/ambient-sdk/generator/main.go index 0f2099800..2f7386ff8 100644 --- a/components/ambient-sdk/generator/main.go +++ b/components/ambient-sdk/generator/main.go @@ -341,13 +341,15 @@ func loadTemplate(path string) (*template.Template, error) { } func executeTemplate(tmpl *template.Template, outPath string, data interface{}) error { - f, err := os.Create(outPath) - if err != nil { + var buf strings.Builder + if err := tmpl.Execute(&buf, data); err != nil { return err } - defer func() { _ = f.Close() }() - return tmpl.Execute(f, data) + // Ensure file ends with exactly one newline (match pre-commit end-of-file-fixer) + content := strings.TrimRight(buf.String(), "\n") + "\n" + + return os.WriteFile(outPath, []byte(content), 0644) } func computeSpecHash(specPath string) (string, error) { diff --git a/components/ambient-sdk/generator/templates/go/http_client.go.tmpl b/components/ambient-sdk/generator/templates/go/http_client.go.tmpl index c6ac0db7e..d453246b2 100644 --- a/components/ambient-sdk/generator/templates/go/http_client.go.tmpl +++ b/components/ambient-sdk/generator/templates/go/http_client.go.tmpl @@ -8,6 +8,7 @@ package client import ( "bytes" "context" + "crypto/tls" "encoding/json" "fmt" "io" @@ -23,12 +24,13 @@ import ( ) type Client struct { - httpClient *http.Client - baseURL string - token string - project string - logger *slog.Logger - userAgent string + httpClient *http.Client + baseURL string + token string + project string + logger *slog.Logger + userAgent string + insecureSkipVerify bool } type ClientOption func(*Client) @@ -39,6 +41,23 @@ func WithTimeout(timeout time.Duration) ClientOption { } } +func WithInsecureSkipVerify() ClientOption { + return func(c *Client) { + c.insecureSkipVerify = true + t, ok := c.httpClient.Transport.(*http.Transport) + if !ok || t == nil { + t = http.DefaultTransport.(*http.Transport).Clone() + } else { + t = t.Clone() + } + if t.TLSClientConfig == nil { + t.TLSClientConfig = &tls.Config{MinVersion: tls.VersionTLS12} + } + t.TLSClientConfig.InsecureSkipVerify = true //nolint:gosec + c.httpClient.Transport = t + } +} + func WithLogger(logger *slog.Logger) ClientOption { return func(c *Client) { c.logger = logger @@ -226,7 +245,8 @@ func validateURL(rawURL string) error { return nil } +var bearerTokenPattern = regexp.MustCompile(`([Bb]earer\s+)[a-zA-Z0-9\-_~.+/=]+`) + func sanitizeLogURL(rawURL string) string { - tokenPattern := regexp.MustCompile(`([Bb]earer\s+)[a-zA-Z0-9\-_~.+/=]+`) - return tokenPattern.ReplaceAllString(rawURL, "${1}[REDACTED]") + return bearerTokenPattern.ReplaceAllString(rawURL, "${1}[REDACTED]") } diff --git a/components/ambient-sdk/generator/templates/go/types.go.tmpl b/components/ambient-sdk/generator/templates/go/types.go.tmpl index 4d9e02774..8339e8810 100644 --- a/components/ambient-sdk/generator/templates/go/types.go.tmpl +++ b/components/ambient-sdk/generator/templates/go/types.go.tmpl @@ -44,8 +44,7 @@ func (b *{{$.Resource.Name}}Builder) {{.GoName}}(v {{.GoType}}) *{{$.Resource.Na b.resource.{{.GoName}} = v return b } -{{end}}{{end}} - +{{end}}{{- end}} func (b *{{.Resource.Name}}Builder) Build() (*{{.Resource.Name}}, error) { {{- range .Resource.Fields}} {{- if .Required}} @@ -78,7 +77,6 @@ func (b *{{$.Resource.Name}}PatchBuilder) {{.GoName}}(v {{.GoType}}) *{{$.Resour return b } {{end}} - func (b *{{.Resource.Name}}PatchBuilder) Build() map[string]any { return b.patch } @@ -97,7 +95,6 @@ func (b *{{$.Resource.Name}}StatusPatchBuilder) {{.GoName}}(v {{.GoType}}) *{{$. return b } {{end}} - func (b *{{.Resource.Name}}StatusPatchBuilder) Build() map[string]any { return b.patch } diff --git a/components/ambient-sdk/go-sdk/client/client.go b/components/ambient-sdk/go-sdk/client/client.go index 54ff98453..6cca77ad9 100644 --- a/components/ambient-sdk/go-sdk/client/client.go +++ b/components/ambient-sdk/go-sdk/client/client.go @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z package client @@ -44,9 +44,17 @@ func WithTimeout(timeout time.Duration) ClientOption { func WithInsecureSkipVerify() ClientOption { return func(c *Client) { c.insecureSkipVerify = true - c.httpClient.Transport = &http.Transport{ - TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, //nolint:gosec + t, ok := c.httpClient.Transport.(*http.Transport) + if !ok || t == nil { + t = http.DefaultTransport.(*http.Transport).Clone() + } else { + t = t.Clone() } + if t.TLSClientConfig == nil { + t.TLSClientConfig = &tls.Config{MinVersion: tls.VersionTLS12} + } + t.TLSClientConfig.InsecureSkipVerify = true //nolint:gosec + c.httpClient.Transport = t } } diff --git a/components/ambient-sdk/go-sdk/client/iterator.go b/components/ambient-sdk/go-sdk/client/iterator.go index b68626ba8..19ce4792c 100644 --- a/components/ambient-sdk/go-sdk/client/iterator.go +++ b/components/ambient-sdk/go-sdk/client/iterator.go @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z package client diff --git a/components/ambient-sdk/go-sdk/client/project_api.go b/components/ambient-sdk/go-sdk/client/project_api.go index 7c056024a..6ed4efd15 100644 --- a/components/ambient-sdk/go-sdk/client/project_api.go +++ b/components/ambient-sdk/go-sdk/client/project_api.go @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z package client diff --git a/components/ambient-sdk/go-sdk/client/project_settings_api.go b/components/ambient-sdk/go-sdk/client/project_settings_api.go index 9e44d7689..a3b56b05b 100644 --- a/components/ambient-sdk/go-sdk/client/project_settings_api.go +++ b/components/ambient-sdk/go-sdk/client/project_settings_api.go @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z package client diff --git a/components/ambient-sdk/go-sdk/client/session_api.go b/components/ambient-sdk/go-sdk/client/session_api.go index d9813651c..f3a995dce 100644 --- a/components/ambient-sdk/go-sdk/client/session_api.go +++ b/components/ambient-sdk/go-sdk/client/session_api.go @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z package client @@ -62,6 +62,10 @@ func (a *SessionAPI) Update(ctx context.Context, id string, patch map[string]any return &result, nil } +func (a *SessionAPI) Delete(ctx context.Context, id string) error { + return a.client.do(ctx, http.MethodDelete, "/sessions/"+url.PathEscape(id), nil, http.StatusNoContent, nil) +} + func (a *SessionAPI) UpdateStatus(ctx context.Context, id string, patch map[string]any) (*types.Session, error) { body, err := json.Marshal(patch) if err != nil { @@ -90,10 +94,6 @@ func (a *SessionAPI) Stop(ctx context.Context, id string) (*types.Session, error return &result, nil } -func (a *SessionAPI) Delete(ctx context.Context, id string) error { - return a.client.do(ctx, http.MethodDelete, "/sessions/"+url.PathEscape(id), nil, http.StatusNoContent, nil) -} - func (a *SessionAPI) ListAll(ctx context.Context, opts *types.ListOptions) *Iterator[types.Session] { return NewIterator(func(page int) (*types.SessionList, error) { o := *opts diff --git a/components/ambient-sdk/go-sdk/client/user_api.go b/components/ambient-sdk/go-sdk/client/user_api.go index 350614fe2..9372dbd9d 100644 --- a/components/ambient-sdk/go-sdk/client/user_api.go +++ b/components/ambient-sdk/go-sdk/client/user_api.go @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z package client diff --git a/components/ambient-sdk/go-sdk/types/base.go b/components/ambient-sdk/go-sdk/types/base.go index d01695811..d6f1759bd 100644 --- a/components/ambient-sdk/go-sdk/types/base.go +++ b/components/ambient-sdk/go-sdk/types/base.go @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z package types diff --git a/components/ambient-sdk/go-sdk/types/list_options.go b/components/ambient-sdk/go-sdk/types/list_options.go index eaecd50f8..710b44b4b 100644 --- a/components/ambient-sdk/go-sdk/types/list_options.go +++ b/components/ambient-sdk/go-sdk/types/list_options.go @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z package types diff --git a/components/ambient-sdk/go-sdk/types/project.go b/components/ambient-sdk/go-sdk/types/project.go index 6ff664ad0..ada129b05 100644 --- a/components/ambient-sdk/go-sdk/types/project.go +++ b/components/ambient-sdk/go-sdk/types/project.go @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z package types diff --git a/components/ambient-sdk/go-sdk/types/project_settings.go b/components/ambient-sdk/go-sdk/types/project_settings.go index f6703f679..c9ba36d1b 100644 --- a/components/ambient-sdk/go-sdk/types/project_settings.go +++ b/components/ambient-sdk/go-sdk/types/project_settings.go @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z package types diff --git a/components/ambient-sdk/go-sdk/types/session.go b/components/ambient-sdk/go-sdk/types/session.go index 2dbb69f43..3ce84678c 100644 --- a/components/ambient-sdk/go-sdk/types/session.go +++ b/components/ambient-sdk/go-sdk/types/session.go @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z package types diff --git a/components/ambient-sdk/go-sdk/types/user.go b/components/ambient-sdk/go-sdk/types/user.go index 5a2b4893b..f7db7f644 100644 --- a/components/ambient-sdk/go-sdk/types/user.go +++ b/components/ambient-sdk/go-sdk/types/user.go @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z package types diff --git a/components/ambient-sdk/python-sdk/ambient_platform/__init__.py b/components/ambient-sdk/python-sdk/ambient_platform/__init__.py index 18bb4e16d..674dbfe2f 100644 --- a/components/ambient-sdk/python-sdk/ambient_platform/__init__.py +++ b/components/ambient-sdk/python-sdk/ambient_platform/__init__.py @@ -1,7 +1,7 @@ # Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. # Source: ../../ambient-api-server/openapi/openapi.yaml -# Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -# Generated: 2026-03-05T04:28:57Z +# Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +# Generated: 2026-03-11T15:04:40Z """Ambient Platform SDK for Python.""" diff --git a/components/ambient-sdk/python-sdk/ambient_platform/_base.py b/components/ambient-sdk/python-sdk/ambient_platform/_base.py index f6f6f155f..6cb31f3c8 100644 --- a/components/ambient-sdk/python-sdk/ambient_platform/_base.py +++ b/components/ambient-sdk/python-sdk/ambient_platform/_base.py @@ -1,7 +1,7 @@ # Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. # Source: ../../ambient-api-server/openapi/openapi.yaml -# Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -# Generated: 2026-03-05T04:28:57Z +# Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +# Generated: 2026-03-11T15:04:40Z from __future__ import annotations diff --git a/components/ambient-sdk/python-sdk/ambient_platform/_iterator.py b/components/ambient-sdk/python-sdk/ambient_platform/_iterator.py index e71c28cb8..fa23fd19d 100644 --- a/components/ambient-sdk/python-sdk/ambient_platform/_iterator.py +++ b/components/ambient-sdk/python-sdk/ambient_platform/_iterator.py @@ -1,7 +1,7 @@ # Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. # Source: ../../ambient-api-server/openapi/openapi.yaml -# Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -# Generated: 2026-03-05T04:28:57Z +# Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +# Generated: 2026-03-11T15:04:40Z from __future__ import annotations diff --git a/components/ambient-sdk/python-sdk/ambient_platform/_project_api.py b/components/ambient-sdk/python-sdk/ambient_platform/_project_api.py index ccc2d00b7..b2113d00f 100644 --- a/components/ambient-sdk/python-sdk/ambient_platform/_project_api.py +++ b/components/ambient-sdk/python-sdk/ambient_platform/_project_api.py @@ -1,7 +1,7 @@ # Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. # Source: ../../ambient-api-server/openapi/openapi.yaml -# Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -# Generated: 2026-03-05T04:28:57Z +# Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +# Generated: 2026-03-11T15:04:40Z from __future__ import annotations diff --git a/components/ambient-sdk/python-sdk/ambient_platform/_project_settings_api.py b/components/ambient-sdk/python-sdk/ambient_platform/_project_settings_api.py index 4bc320300..ce60f4c86 100644 --- a/components/ambient-sdk/python-sdk/ambient_platform/_project_settings_api.py +++ b/components/ambient-sdk/python-sdk/ambient_platform/_project_settings_api.py @@ -1,7 +1,7 @@ # Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. # Source: ../../ambient-api-server/openapi/openapi.yaml -# Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -# Generated: 2026-03-05T04:28:57Z +# Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +# Generated: 2026-03-11T15:04:40Z from __future__ import annotations diff --git a/components/ambient-sdk/python-sdk/ambient_platform/_session_api.py b/components/ambient-sdk/python-sdk/ambient_platform/_session_api.py index 645283b0a..a680c7996 100644 --- a/components/ambient-sdk/python-sdk/ambient_platform/_session_api.py +++ b/components/ambient-sdk/python-sdk/ambient_platform/_session_api.py @@ -1,7 +1,7 @@ # Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. # Source: ../../ambient-api-server/openapi/openapi.yaml -# Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -# Generated: 2026-03-05T04:28:57Z +# Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +# Generated: 2026-03-11T15:04:40Z from __future__ import annotations @@ -35,6 +35,9 @@ def update(self, resource_id: str, patch: Any) -> Session: resp = self._client._request("PATCH", f"/sessions/{resource_id}", json=data) return Session.from_dict(resp) + def delete(self, resource_id: str) -> None: + self._client._request("DELETE", f"/sessions/{resource_id}", expect_json=False) + def update_status(self, resource_id: str, patch: Any) -> Session: data = patch.to_dict() if hasattr(patch, "to_dict") else patch resp = self._client._request("PATCH", f"/sessions/{resource_id}/status", json=data) diff --git a/components/ambient-sdk/python-sdk/ambient_platform/_user_api.py b/components/ambient-sdk/python-sdk/ambient_platform/_user_api.py index 32318a66d..f68b2e865 100644 --- a/components/ambient-sdk/python-sdk/ambient_platform/_user_api.py +++ b/components/ambient-sdk/python-sdk/ambient_platform/_user_api.py @@ -1,7 +1,7 @@ # Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. # Source: ../../ambient-api-server/openapi/openapi.yaml -# Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -# Generated: 2026-03-05T04:28:57Z +# Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +# Generated: 2026-03-11T15:04:40Z from __future__ import annotations diff --git a/components/ambient-sdk/python-sdk/ambient_platform/client.py b/components/ambient-sdk/python-sdk/ambient_platform/client.py index cd8f7fa01..afc2ce91d 100644 --- a/components/ambient-sdk/python-sdk/ambient_platform/client.py +++ b/components/ambient-sdk/python-sdk/ambient_platform/client.py @@ -1,7 +1,7 @@ # Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. # Source: ../../ambient-api-server/openapi/openapi.yaml -# Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -# Generated: 2026-03-05T04:28:57Z +# Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +# Generated: 2026-03-11T15:04:40Z from __future__ import annotations diff --git a/components/ambient-sdk/python-sdk/ambient_platform/project.py b/components/ambient-sdk/python-sdk/ambient_platform/project.py index eb408bd10..c35137b82 100644 --- a/components/ambient-sdk/python-sdk/ambient_platform/project.py +++ b/components/ambient-sdk/python-sdk/ambient_platform/project.py @@ -1,7 +1,7 @@ # Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. # Source: ../../ambient-api-server/openapi/openapi.yaml -# Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -# Generated: 2026-03-05T04:28:57Z +# Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +# Generated: 2026-03-11T15:04:40Z from __future__ import annotations @@ -132,4 +132,3 @@ def status(self, value: str) -> ProjectPatch: def to_dict(self) -> dict: return dict(self._data) - diff --git a/components/ambient-sdk/python-sdk/ambient_platform/project_settings.py b/components/ambient-sdk/python-sdk/ambient_platform/project_settings.py index 4fcaa6368..0a032e3b0 100644 --- a/components/ambient-sdk/python-sdk/ambient_platform/project_settings.py +++ b/components/ambient-sdk/python-sdk/ambient_platform/project_settings.py @@ -1,7 +1,7 @@ # Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. # Source: ../../ambient-api-server/openapi/openapi.yaml -# Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -# Generated: 2026-03-05T04:28:57Z +# Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +# Generated: 2026-03-11T15:04:40Z from __future__ import annotations @@ -102,4 +102,3 @@ def repositories(self, value: str) -> ProjectSettingsPatch: def to_dict(self) -> dict: return dict(self._data) - diff --git a/components/ambient-sdk/python-sdk/ambient_platform/session.py b/components/ambient-sdk/python-sdk/ambient_platform/session.py index 4889cbd81..a1b3e1a73 100644 --- a/components/ambient-sdk/python-sdk/ambient_platform/session.py +++ b/components/ambient-sdk/python-sdk/ambient_platform/session.py @@ -1,7 +1,7 @@ # Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. # Source: ../../ambient-api-server/openapi/openapi.yaml -# Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -# Generated: 2026-03-05T04:28:57Z +# Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +# Generated: 2026-03-11T15:04:40Z from __future__ import annotations @@ -311,4 +311,3 @@ def start_time(self, value: Optional[datetime]) -> SessionStatusPatch: def to_dict(self) -> dict: return dict(self._data) - diff --git a/components/ambient-sdk/python-sdk/ambient_platform/user.py b/components/ambient-sdk/python-sdk/ambient_platform/user.py index ff080d997..92eb5133b 100644 --- a/components/ambient-sdk/python-sdk/ambient_platform/user.py +++ b/components/ambient-sdk/python-sdk/ambient_platform/user.py @@ -1,7 +1,7 @@ # Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. # Source: ../../ambient-api-server/openapi/openapi.yaml -# Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -# Generated: 2026-03-05T04:28:57Z +# Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +# Generated: 2026-03-11T15:04:40Z from __future__ import annotations @@ -104,4 +104,3 @@ def username(self, value: str) -> UserPatch: def to_dict(self) -> dict: return dict(self._data) - diff --git a/components/ambient-sdk/ts-sdk/src/base.ts b/components/ambient-sdk/ts-sdk/src/base.ts index 85f8f7908..c600e4200 100644 --- a/components/ambient-sdk/ts-sdk/src/base.ts +++ b/components/ambient-sdk/ts-sdk/src/base.ts @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z export type ObjectReference = { id: string; diff --git a/components/ambient-sdk/ts-sdk/src/client.ts b/components/ambient-sdk/ts-sdk/src/client.ts index 12f539b47..f24151a38 100644 --- a/components/ambient-sdk/ts-sdk/src/client.ts +++ b/components/ambient-sdk/ts-sdk/src/client.ts @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z import type { AmbientClientConfig } from './base'; import { ProjectAPI } from './project_api'; diff --git a/components/ambient-sdk/ts-sdk/src/index.ts b/components/ambient-sdk/ts-sdk/src/index.ts index 545b23cd0..79356a97e 100644 --- a/components/ambient-sdk/ts-sdk/src/index.ts +++ b/components/ambient-sdk/ts-sdk/src/index.ts @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z export { AmbientClient } from './client'; export type { AmbientClientConfig, ListOptions, RequestOptions, ObjectReference, ListMeta, APIError } from './base'; @@ -22,4 +22,3 @@ export { SessionAPI } from './session_api'; export type { User, UserList, UserCreateRequest, UserPatchRequest } from './user'; export { UserBuilder, UserPatchBuilder } from './user'; export { UserAPI } from './user_api'; - diff --git a/components/ambient-sdk/ts-sdk/src/project.ts b/components/ambient-sdk/ts-sdk/src/project.ts index ab8f4b4fb..27e1bdf02 100644 --- a/components/ambient-sdk/ts-sdk/src/project.ts +++ b/components/ambient-sdk/ts-sdk/src/project.ts @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z import type { ObjectReference, ListMeta } from './base'; @@ -116,4 +116,3 @@ export class ProjectPatchBuilder { return this.data as ProjectPatchRequest; } } - diff --git a/components/ambient-sdk/ts-sdk/src/project_api.ts b/components/ambient-sdk/ts-sdk/src/project_api.ts index 1bc083540..ea8bee773 100644 --- a/components/ambient-sdk/ts-sdk/src/project_api.ts +++ b/components/ambient-sdk/ts-sdk/src/project_api.ts @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z import type { AmbientClientConfig, ListOptions, RequestOptions } from './base'; import { ambientFetch, buildQueryString } from './base'; diff --git a/components/ambient-sdk/ts-sdk/src/project_settings.ts b/components/ambient-sdk/ts-sdk/src/project_settings.ts index e81f23c64..aa130e434 100644 --- a/components/ambient-sdk/ts-sdk/src/project_settings.ts +++ b/components/ambient-sdk/ts-sdk/src/project_settings.ts @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z import type { ObjectReference, ListMeta } from './base'; @@ -77,4 +77,3 @@ export class ProjectSettingsPatchBuilder { return this.data as ProjectSettingsPatchRequest; } } - diff --git a/components/ambient-sdk/ts-sdk/src/project_settings_api.ts b/components/ambient-sdk/ts-sdk/src/project_settings_api.ts index 8e02c069c..fb00fa795 100644 --- a/components/ambient-sdk/ts-sdk/src/project_settings_api.ts +++ b/components/ambient-sdk/ts-sdk/src/project_settings_api.ts @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z import type { AmbientClientConfig, ListOptions, RequestOptions } from './base'; import { ambientFetch, buildQueryString } from './base'; diff --git a/components/ambient-sdk/ts-sdk/src/session.ts b/components/ambient-sdk/ts-sdk/src/session.ts index 19e806459..e9338770d 100644 --- a/components/ambient-sdk/ts-sdk/src/session.ts +++ b/components/ambient-sdk/ts-sdk/src/session.ts @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z import type { ObjectReference, ListMeta } from './base'; @@ -337,4 +337,3 @@ export class SessionStatusPatchBuilder { return this.data as SessionStatusPatchRequest; } } - diff --git a/components/ambient-sdk/ts-sdk/src/session_api.ts b/components/ambient-sdk/ts-sdk/src/session_api.ts index 99a2fb5ac..0a4a73b60 100644 --- a/components/ambient-sdk/ts-sdk/src/session_api.ts +++ b/components/ambient-sdk/ts-sdk/src/session_api.ts @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z import type { AmbientClientConfig, ListOptions, RequestOptions } from './base'; import { ambientFetch, buildQueryString } from './base'; @@ -26,6 +26,10 @@ export class SessionAPI { return ambientFetch(this.config, 'PATCH', `/sessions/${id}`, patch, opts); } + async delete(id: string, opts?: RequestOptions): Promise { + return ambientFetch(this.config, 'DELETE', `/sessions/${id}`, undefined, opts); + } + async updateStatus(id: string, patch: SessionStatusPatchRequest, opts?: RequestOptions): Promise { return ambientFetch(this.config, 'PATCH', `/sessions/${id}/status`, patch, opts); } diff --git a/components/ambient-sdk/ts-sdk/src/user.ts b/components/ambient-sdk/ts-sdk/src/user.ts index ef665bb6c..a0bb3bf64 100644 --- a/components/ambient-sdk/ts-sdk/src/user.ts +++ b/components/ambient-sdk/ts-sdk/src/user.ts @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z import type { ObjectReference, ListMeta } from './base'; @@ -80,4 +80,3 @@ export class UserPatchBuilder { return this.data as UserPatchRequest; } } - diff --git a/components/ambient-sdk/ts-sdk/src/user_api.ts b/components/ambient-sdk/ts-sdk/src/user_api.ts index dacbd7afb..800085cf5 100644 --- a/components/ambient-sdk/ts-sdk/src/user_api.ts +++ b/components/ambient-sdk/ts-sdk/src/user_api.ts @@ -1,7 +1,7 @@ // Code generated by ambient-sdk-generator from openapi.yaml — DO NOT EDIT. // Source: ../../ambient-api-server/openapi/openapi.yaml -// Spec SHA256: f729ebc11ad1c453eeb0a679fa5c14eb1bc0096450cd18ca79e7c9b7b5c81acf -// Generated: 2026-03-05T04:28:57Z +// Spec SHA256: e075948095ee35d154a54e2d77a597f4fe48ef50e84ce30baeb5bc3f2bc2025a +// Generated: 2026-03-11T15:04:40Z import type { AmbientClientConfig, ListOptions, RequestOptions } from './base'; import { ambientFetch, buildQueryString } from './base';