diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml new file mode 100644 index 00000000..3b173112 --- /dev/null +++ b/.github/workflows/release-please.yml @@ -0,0 +1,20 @@ +name: Release Please +on: + push: + branches: + - main + +permissions: + contents: write + pull-requests: write + +jobs: + release-please: + if: github.repository == 'kernel/kernel-node-sdk' + runs-on: ubuntu-latest + + steps: + - uses: googleapis/release-please-action@5c625bfb5d1ff62eadeeb3772007f7f66fdcf071 # v4.4.1 + id: release + with: + token: ${{ secrets.RELEASE_PLEASE_TOKEN }} diff --git a/.stats.yml b/.stats.yml index fcd634ae..71c320fc 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1 @@ configured_endpoints: 127 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-3fc18876d59a47ed6993892cc5f69d7461fe2ca6a94fad43905677955a5adc55.yml -openapi_spec_hash: 75d990158aeb0dac3d3ef8da476e86b9 -config_hash: 77ee715aa17061166f9a02b264a21b8d diff --git a/api.md b/api.md index d5d74e88..c5ab27bb 100644 --- a/api.md +++ b/api.md @@ -128,6 +128,8 @@ Types: - BrowserTelemetryCategoryConfig - BrowserTelemetryConfig - BrowserTelemetryEvent +- BrowserTelemetryExportConfig +- BrowserTelemetryOtlpExportConfig - TelemetryEventsResponse - TelemetryStreamResponse diff --git a/release-please-config.json b/release-please-config.json index 1ebd0bde..7458a44d 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -2,11 +2,11 @@ "packages": { ".": {} }, - "$schema": "https://raw.githubusercontent.com/stainless-api/release-please/main/schemas/config.json", + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", "include-v-in-tag": true, "include-component-in-tag": false, "versioning": "prerelease", - "prerelease": true, + "prerelease": false, "bump-minor-pre-major": true, "bump-patch-for-minor-pre-major": false, "pull-request-header": "Automated Release PR", diff --git a/scripts/utils/upload-artifact.sh b/scripts/utils/upload-artifact.sh index efeeb16a..3c19ab7a 100755 --- a/scripts/utils/upload-artifact.sh +++ b/scripts/utils/upload-artifact.sh @@ -20,7 +20,7 @@ UPLOAD_RESPONSE=$(curl -v -X PUT \ if echo "$UPLOAD_RESPONSE" | grep -q "HTTP/[0-9.]* 200"; then echo -e "\033[32mUploaded build to Stainless storage.\033[0m" - echo -e "\033[32mInstallation: npm install 'https://pkg.stainless.com/s/kernel-typescript/$SHA'\033[0m" + echo -e "\033[32mInstallation: npm install 'https://pkg.stainless.com/s/kernel-node-sdk-staging/$SHA'\033[0m" else echo -e "\033[31mFailed to upload artifact.\033[0m" exit 1 diff --git a/src/resources/auth/connections.ts b/src/resources/auth/connections.ts index d444b125..b4ac01ca 100644 --- a/src/resources/auth/connections.ts +++ b/src/resources/auth/connections.ts @@ -553,6 +553,63 @@ export namespace ManagedAuth { * create. enabled=false cannot be combined with browser category settings. */ enabled?: boolean; + + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export?: BrowserTelemetry.Export; + } + + export namespace BrowserTelemetry { + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export interface Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + otlp?: Export.Otlp; + } + + export namespace Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + export interface Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + destination?: Otlp.Destination; + + /** + * Whether to export captured telemetry over OTLP. Setting destination implies + * enabled=true, so this only needs to be set explicitly to disable export + * (enabled=false with a destination is rejected). + */ + enabled?: boolean; + } + + export namespace Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + export interface Destination { + /** + * OTLP destination ID + */ + id?: string; + + /** + * OTLP destination name + */ + name?: string; + } + } + } } /** @@ -916,6 +973,63 @@ export namespace ManagedAuthCreateRequest { * create. enabled=false cannot be combined with browser category settings. */ enabled?: boolean; + + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export?: BrowserTelemetry.Export; + } + + export namespace BrowserTelemetry { + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export interface Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + otlp?: Export.Otlp; + } + + export namespace Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + export interface Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + destination?: Otlp.Destination; + + /** + * Whether to export captured telemetry over OTLP. Setting destination implies + * enabled=true, so this only needs to be set explicitly to disable export + * (enabled=false with a destination is rejected). + */ + enabled?: boolean; + } + + export namespace Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + export interface Destination { + /** + * OTLP destination ID + */ + id?: string; + + /** + * OTLP destination name + */ + name?: string; + } + } + } } /** @@ -1155,6 +1269,63 @@ export namespace ManagedAuthUpdateRequest { * create. enabled=false cannot be combined with browser category settings. */ enabled?: boolean; + + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export?: BrowserTelemetry.Export; + } + + export namespace BrowserTelemetry { + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export interface Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + otlp?: Export.Otlp; + } + + export namespace Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + export interface Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + destination?: Otlp.Destination; + + /** + * Whether to export captured telemetry over OTLP. Setting destination implies + * enabled=true, so this only needs to be set explicitly to disable export + * (enabled=false with a destination is rejected). + */ + enabled?: boolean; + } + + export namespace Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + export interface Destination { + /** + * OTLP destination ID + */ + id?: string; + + /** + * OTLP destination name + */ + name?: string; + } + } + } } /** @@ -1705,6 +1876,63 @@ export namespace ConnectionCreateParams { * create. enabled=false cannot be combined with browser category settings. */ enabled?: boolean; + + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export?: BrowserTelemetry.Export; + } + + export namespace BrowserTelemetry { + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export interface Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + otlp?: Export.Otlp; + } + + export namespace Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + export interface Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + destination?: Otlp.Destination; + + /** + * Whether to export captured telemetry over OTLP. Setting destination implies + * enabled=true, so this only needs to be set explicitly to disable export + * (enabled=false with a destination is rejected). + */ + enabled?: boolean; + } + + export namespace Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + export interface Destination { + /** + * OTLP destination ID + */ + id?: string; + + /** + * OTLP destination name + */ + name?: string; + } + } + } } /** @@ -1856,6 +2084,63 @@ export namespace ConnectionUpdateParams { * create. enabled=false cannot be combined with browser category settings. */ enabled?: boolean; + + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export?: BrowserTelemetry.Export; + } + + export namespace BrowserTelemetry { + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export interface Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + otlp?: Export.Otlp; + } + + export namespace Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + export interface Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + destination?: Otlp.Destination; + + /** + * Whether to export captured telemetry over OTLP. Setting destination implies + * enabled=true, so this only needs to be set explicitly to disable export + * (enabled=false with a destination is rejected). + */ + enabled?: boolean; + } + + export namespace Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + export interface Destination { + /** + * OTLP destination ID + */ + id?: string; + + /** + * OTLP destination name + */ + name?: string; + } + } + } } /** @@ -1977,6 +2262,63 @@ export namespace ConnectionLoginParams { * create. enabled=false cannot be combined with browser category settings. */ enabled?: boolean; + + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export?: BrowserTelemetry.Export; + } + + export namespace BrowserTelemetry { + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export interface Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + otlp?: Export.Otlp; + } + + export namespace Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + export interface Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + destination?: Otlp.Destination; + + /** + * Whether to export captured telemetry over OTLP. Setting destination implies + * enabled=true, so this only needs to be set explicitly to disable export + * (enabled=false with a destination is rejected). + */ + enabled?: boolean; + } + + export namespace Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + export interface Destination { + /** + * OTLP destination ID + */ + id?: string; + + /** + * OTLP destination name + */ + name?: string; + } + } + } } /** diff --git a/src/resources/browser-pools.ts b/src/resources/browser-pools.ts index 4b2d9c40..e649cbbb 100644 --- a/src/resources/browser-pools.ts +++ b/src/resources/browser-pools.ts @@ -648,6 +648,63 @@ export namespace BrowserPoolCreateParams { * create. enabled=false cannot be combined with browser category settings. */ enabled?: boolean; + + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export?: Telemetry.Export; + } + + export namespace Telemetry { + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export interface Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + otlp?: Export.Otlp; + } + + export namespace Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + export interface Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + destination?: Otlp.Destination; + + /** + * Whether to export captured telemetry over OTLP. Setting destination implies + * enabled=true, so this only needs to be set explicitly to disable export + * (enabled=false with a destination is rejected). + */ + enabled?: boolean; + } + + export namespace Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + export interface Destination { + /** + * OTLP destination ID + */ + id?: string; + + /** + * OTLP destination name + */ + name?: string; + } + } + } } } @@ -833,6 +890,63 @@ export namespace BrowserPoolUpdateParams { * create. enabled=false cannot be combined with browser category settings. */ enabled?: boolean; + + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export?: Telemetry.Export; + } + + export namespace Telemetry { + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export interface Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + otlp?: Export.Otlp; + } + + export namespace Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + export interface Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + destination?: Otlp.Destination; + + /** + * Whether to export captured telemetry over OTLP. Setting destination implies + * enabled=true, so this only needs to be set explicitly to disable export + * (enabled=false with a destination is rejected). + */ + enabled?: boolean; + } + + export namespace Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + export interface Destination { + /** + * OTLP destination ID + */ + id?: string; + + /** + * OTLP destination name + */ + name?: string; + } + } + } } } @@ -939,6 +1053,63 @@ export namespace BrowserPoolAcquireParams { * create. enabled=false cannot be combined with browser category settings. */ enabled?: boolean; + + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export?: Telemetry.Export; + } + + export namespace Telemetry { + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export interface Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + otlp?: Export.Otlp; + } + + export namespace Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + export interface Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + destination?: Otlp.Destination; + + /** + * Whether to export captured telemetry over OTLP. Setting destination implies + * enabled=true, so this only needs to be set explicitly to disable export + * (enabled=false with a destination is rejected). + */ + enabled?: boolean; + } + + export namespace Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + export interface Destination { + /** + * OTLP destination ID + */ + id?: string; + + /** + * OTLP destination name + */ + name?: string; + } + } + } } } diff --git a/src/resources/browsers/browsers.ts b/src/resources/browsers/browsers.ts index 3644b97c..40ca5cde 100644 --- a/src/resources/browsers/browsers.ts +++ b/src/resources/browsers/browsers.ts @@ -91,6 +91,8 @@ import { BrowserTelemetryCategoryConfig, BrowserTelemetryConfig, BrowserTelemetryEvent, + BrowserTelemetryExportConfig, + BrowserTelemetryOtlpExportConfig, Telemetry as TelemetryAPITelemetry, TelemetryEventsParams, TelemetryEventsResponse, @@ -1037,6 +1039,63 @@ export namespace BrowserCreateParams { * create. enabled=false cannot be combined with browser category settings. */ enabled?: boolean; + + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export?: Telemetry.Export; + } + + export namespace Telemetry { + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export interface Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + otlp?: Export.Otlp; + } + + export namespace Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + export interface Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + destination?: Otlp.Destination; + + /** + * Whether to export captured telemetry over OTLP. Setting destination implies + * enabled=true, so this only needs to be set explicitly to disable export + * (enabled=false with a destination is rejected). + */ + enabled?: boolean; + } + + export namespace Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + export interface Destination { + /** + * OTLP destination ID + */ + id?: string; + + /** + * OTLP destination name + */ + name?: string; + } + } + } } } @@ -1128,6 +1187,63 @@ export namespace BrowserUpdateParams { * create. enabled=false cannot be combined with browser category settings. */ enabled?: boolean; + + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export?: Telemetry.Export; + } + + export namespace Telemetry { + /** + * Where to export this session's captured telemetry. Omit to capture without + * exporting. + */ + export interface Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + otlp?: Export.Otlp; + } + + export namespace Export { + /** + * Export captured telemetry over OTLP to one of the org's configured destinations. + */ + export interface Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + destination?: Otlp.Destination; + + /** + * Whether to export captured telemetry over OTLP. Setting destination implies + * enabled=true, so this only needs to be set explicitly to disable export + * (enabled=false with a destination is rejected). + */ + enabled?: boolean; + } + + export namespace Otlp { + /** + * OTLP destination to export this session's captured telemetry to. Provide either + * id or name. Requires telemetry capture to be enabled. + */ + export interface Destination { + /** + * OTLP destination ID + */ + id?: string; + + /** + * OTLP destination name + */ + name?: string; + } + } + } } /** @@ -1152,7 +1268,7 @@ export interface BrowserListParams extends OffsetPaginationParams { include_deleted?: boolean; /** - * Search browsers by name, session ID, profile ID, proxy ID, or pool name. + * Search browsers by name, session ID, profile name or ID, proxy ID, or pool name. */ query?: string; @@ -1292,6 +1408,8 @@ export declare namespace Browsers { type BrowserTelemetryCategoryConfig as BrowserTelemetryCategoryConfig, type BrowserTelemetryConfig as BrowserTelemetryConfig, type BrowserTelemetryEvent as BrowserTelemetryEvent, + type BrowserTelemetryExportConfig as BrowserTelemetryExportConfig, + type BrowserTelemetryOtlpExportConfig as BrowserTelemetryOtlpExportConfig, type TelemetryEventsResponse as TelemetryEventsResponse, type TelemetryStreamResponse as TelemetryStreamResponse, type TelemetryEventsResponsesOffsetPagination as TelemetryEventsResponsesOffsetPagination, diff --git a/src/resources/browsers/index.ts b/src/resources/browsers/index.ts index dc9aed87..b11be82f 100644 --- a/src/resources/browsers/index.ts +++ b/src/resources/browsers/index.ts @@ -120,6 +120,8 @@ export { type BrowserTelemetryCategoryConfig, type BrowserTelemetryConfig, type BrowserTelemetryEvent, + type BrowserTelemetryExportConfig, + type BrowserTelemetryOtlpExportConfig, type TelemetryEventsResponse, type TelemetryStreamResponse, type TelemetryEventsParams, diff --git a/src/resources/browsers/telemetry.ts b/src/resources/browsers/telemetry.ts index 7b41c677..350d3853 100644 --- a/src/resources/browsers/telemetry.ts +++ b/src/resources/browsers/telemetry.ts @@ -1965,6 +1965,12 @@ export interface BrowserTelemetryConfig { * Per-category enable/disable flags. */ browser?: BrowserTelemetryCategoriesConfig; + + /** + * Where the session's captured telemetry is being exported. Omitted when the + * export state is unknown. + */ + export?: BrowserTelemetryExportConfig; } /** @@ -2009,6 +2015,32 @@ export type BrowserTelemetryEvent = | BrowserSystemOomKillEvent | BrowserServiceCrashedEvent; +/** + * Active export state for a session's captured telemetry, by protocol. + */ +export interface BrowserTelemetryExportConfig { + /** + * Active OTLP export state. + */ + otlp?: BrowserTelemetryOtlpExportConfig; +} + +/** + * Active OTLP export state for a browser session. + */ +export interface BrowserTelemetryOtlpExportConfig { + /** + * ID of the OTLP destination the session is bound to. Omitted when the session is + * not exporting. + */ + destination?: string; + + /** + * Whether the session is exporting captured telemetry over OTLP. + */ + enabled?: boolean; +} + /** * Envelope wrapping a browser telemetry event with its monotonic sequence number. * Each SSE data: frame carries one envelope as JSON. The seq value is also emitted @@ -2158,6 +2190,8 @@ export declare namespace Telemetry { type BrowserTelemetryCategoryConfig as BrowserTelemetryCategoryConfig, type BrowserTelemetryConfig as BrowserTelemetryConfig, type BrowserTelemetryEvent as BrowserTelemetryEvent, + type BrowserTelemetryExportConfig as BrowserTelemetryExportConfig, + type BrowserTelemetryOtlpExportConfig as BrowserTelemetryOtlpExportConfig, type TelemetryEventsResponse as TelemetryEventsResponse, type TelemetryStreamResponse as TelemetryStreamResponse, type TelemetryEventsResponsesOffsetPagination as TelemetryEventsResponsesOffsetPagination, diff --git a/tests/api-resources/auth/connections.test.ts b/tests/api-resources/auth/connections.test.ts index 6094561e..f3d0cf4e 100644 --- a/tests/api-resources/auth/connections.test.ts +++ b/tests/api-resources/auth/connections.test.ts @@ -43,6 +43,12 @@ describe('resource connections', () => { system: { enabled: true }, }, enabled: true, + export: { + otlp: { + destination: { id: 'id', name: 'name' }, + enabled: true, + }, + }, }, credential: { auto: true, @@ -168,6 +174,12 @@ describe('resource connections', () => { system: { enabled: true }, }, enabled: true, + export: { + otlp: { + destination: { id: 'id', name: 'name' }, + enabled: true, + }, + }, }, proxy: { id: 'id', name: 'name' }, record_session: true, diff --git a/tests/api-resources/browser-pools.test.ts b/tests/api-resources/browser-pools.test.ts index 362a190c..1e66bbe4 100644 --- a/tests/api-resources/browser-pools.test.ts +++ b/tests/api-resources/browser-pools.test.ts @@ -48,6 +48,12 @@ describe('resource browserPools', () => { system: { enabled: true }, }, enabled: true, + export: { + otlp: { + destination: { id: 'id', name: 'name' }, + enabled: true, + }, + }, }, timeout_seconds: 10, viewport: { diff --git a/tests/api-resources/browsers/browsers.test.ts b/tests/api-resources/browsers/browsers.test.ts index 689bf85b..7521f5e2 100644 --- a/tests/api-resources/browsers/browsers.test.ts +++ b/tests/api-resources/browsers/browsers.test.ts @@ -55,6 +55,12 @@ describe('resource browsers', () => { system: { enabled: true }, }, enabled: true, + export: { + otlp: { + destination: { id: 'id', name: 'name' }, + enabled: true, + }, + }, }, timeout_seconds: 10, viewport: {