diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 47dd76c..ad502a4 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.84.0" + ".": "0.85.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 748759e..e1475ca 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 127 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-904fd6fd50970ea07ec05c51b1ae0819ffb64cbf0921fff9daed6792b64f1dc9.yml -openapi_spec_hash: cbd6626bdac7beaa768abb346e03fb74 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel/kernel-7b03462454d6fa8390eaebc1b411d3e160501bf96abb93b75d38dfc382d4ce51.yml +openapi_spec_hash: ba55400aafb4759cc06ec139fe528dfc config_hash: 77ee715aa17061166f9a02b264a21b8d diff --git a/CHANGELOG.md b/CHANGELOG.md index 417a4f6..f000179 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.85.0 (2026-07-29) + +Full Changelog: [v0.84.0...v0.85.0](https://github.com/kernel/kernel-go-sdk/compare/v0.84.0...v0.85.0) + +### Features + +* Add encrypted per-proxy CA bundle for BYO MITM proxies ([b0a77ec](https://github.com/kernel/kernel-go-sdk/commit/b0a77ecf220c82d05b3e1a31d7dc7cba5a01e21f)) +* Stabilize project lifecycle error codes ([778c389](https://github.com/kernel/kernel-go-sdk/commit/778c3890f53b2e1e5b8d31cc31a367fbc387ff49)) + ## 0.84.0 (2026-07-27) Full Changelog: [v0.83.0...v0.84.0](https://github.com/kernel/kernel-go-sdk/compare/v0.83.0...v0.84.0) diff --git a/README.md b/README.md index 9373360..355839c 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Or to pin the version: ```sh -go get -u 'github.com/kernel/kernel-go-sdk@v0.84.0' +go get -u 'github.com/kernel/kernel-go-sdk@v0.85.0' ``` diff --git a/client.go b/client.go index 4239afa..48b3721 100644 --- a/client.go +++ b/client.go @@ -40,7 +40,9 @@ type Client struct { BrowserPools BrowserPoolService // Create and manage credentials for authentication. Credentials CredentialService - // Create and manage projects for resource isolation within an organization. + // Create and manage projects for resource isolation within an organization. When + // projects are disabled for the organization, project operations return `404` with + // code `projects_disabled`. Projects ProjectService Organization OrganizationService // Read audit log records for the authenticated organization. diff --git a/internal/version.go b/internal/version.go index 1d3ad33..df9bb02 100644 --- a/internal/version.go +++ b/internal/version.go @@ -2,4 +2,4 @@ package internal -const PackageVersion = "0.84.0" // x-release-please-version +const PackageVersion = "0.85.0" // x-release-please-version diff --git a/project.go b/project.go index 75d6247..fdac65b 100644 --- a/project.go +++ b/project.go @@ -21,7 +21,9 @@ import ( "github.com/kernel/kernel-go-sdk/packages/respjson" ) -// Create and manage projects for resource isolation within an organization. +// Create and manage projects for resource isolation within an organization. When +// projects are disabled for the organization, project operations return `404` with +// code `projects_disabled`. // // ProjectService contains methods and other services that help with interacting // with the kernel API. @@ -31,7 +33,9 @@ import ( // the [NewProjectService] method instead. type ProjectService struct { Options []option.RequestOption - // Create and manage projects for resource isolation within an organization. + // Create and manage projects for resource isolation within an organization. When + // projects are disabled for the organization, project operations return `404` with + // code `projects_disabled`. Limits ProjectLimitService } diff --git a/projectlimit.go b/projectlimit.go index ac288fd..964901a 100644 --- a/projectlimit.go +++ b/projectlimit.go @@ -17,7 +17,9 @@ import ( "github.com/kernel/kernel-go-sdk/packages/respjson" ) -// Create and manage projects for resource isolation within an organization. +// Create and manage projects for resource isolation within an organization. When +// projects are disabled for the organization, project operations return `404` with +// code `projects_disabled`. // // ProjectLimitService contains methods and other services that help with // interacting with the kernel API. diff --git a/proxy.go b/proxy.go index fdb2fbf..4f2f179 100644 --- a/proxy.go +++ b/proxy.go @@ -211,6 +211,8 @@ type ProxyNewResponseConfigUnion struct { // This field is from variant [ProxyNewResponseConfigCustom]. Port int64 `json:"port"` // This field is from variant [ProxyNewResponseConfigCustom]. + HasCaBundle bool `json:"has_ca_bundle"` + // This field is from variant [ProxyNewResponseConfigCustom]. HasPassword bool `json:"has_password"` // This field is from variant [ProxyNewResponseConfigCustom]. Username string `json:"username"` @@ -223,6 +225,7 @@ type ProxyNewResponseConfigUnion struct { Zip respjson.Field Host respjson.Field Port respjson.Field + HasCaBundle respjson.Field HasPassword respjson.Field Username respjson.Field raw string @@ -365,6 +368,8 @@ type ProxyNewResponseConfigCustom struct { Host string `json:"host" api:"required"` // Proxy port. Port int64 `json:"port" api:"required"` + // Whether the proxy has a custom CA bundle configured. + HasCaBundle bool `json:"has_ca_bundle"` // Whether the proxy has a password. HasPassword bool `json:"has_password"` // Username for proxy authentication. @@ -373,6 +378,7 @@ type ProxyNewResponseConfigCustom struct { JSON struct { Host respjson.Field Port respjson.Field + HasCaBundle respjson.Field HasPassword respjson.Field Username respjson.Field ExtraFields map[string]respjson.Field @@ -483,6 +489,8 @@ type ProxyGetResponseConfigUnion struct { // This field is from variant [ProxyGetResponseConfigCustom]. Port int64 `json:"port"` // This field is from variant [ProxyGetResponseConfigCustom]. + HasCaBundle bool `json:"has_ca_bundle"` + // This field is from variant [ProxyGetResponseConfigCustom]. HasPassword bool `json:"has_password"` // This field is from variant [ProxyGetResponseConfigCustom]. Username string `json:"username"` @@ -495,6 +503,7 @@ type ProxyGetResponseConfigUnion struct { Zip respjson.Field Host respjson.Field Port respjson.Field + HasCaBundle respjson.Field HasPassword respjson.Field Username respjson.Field raw string @@ -637,6 +646,8 @@ type ProxyGetResponseConfigCustom struct { Host string `json:"host" api:"required"` // Proxy port. Port int64 `json:"port" api:"required"` + // Whether the proxy has a custom CA bundle configured. + HasCaBundle bool `json:"has_ca_bundle"` // Whether the proxy has a password. HasPassword bool `json:"has_password"` // Username for proxy authentication. @@ -645,6 +656,7 @@ type ProxyGetResponseConfigCustom struct { JSON struct { Host respjson.Field Port respjson.Field + HasCaBundle respjson.Field HasPassword respjson.Field Username respjson.Field ExtraFields map[string]respjson.Field @@ -755,6 +767,8 @@ type ProxyUpdateResponseConfigUnion struct { // This field is from variant [ProxyUpdateResponseConfigCustom]. Port int64 `json:"port"` // This field is from variant [ProxyUpdateResponseConfigCustom]. + HasCaBundle bool `json:"has_ca_bundle"` + // This field is from variant [ProxyUpdateResponseConfigCustom]. HasPassword bool `json:"has_password"` // This field is from variant [ProxyUpdateResponseConfigCustom]. Username string `json:"username"` @@ -767,6 +781,7 @@ type ProxyUpdateResponseConfigUnion struct { Zip respjson.Field Host respjson.Field Port respjson.Field + HasCaBundle respjson.Field HasPassword respjson.Field Username respjson.Field raw string @@ -909,6 +924,8 @@ type ProxyUpdateResponseConfigCustom struct { Host string `json:"host" api:"required"` // Proxy port. Port int64 `json:"port" api:"required"` + // Whether the proxy has a custom CA bundle configured. + HasCaBundle bool `json:"has_ca_bundle"` // Whether the proxy has a password. HasPassword bool `json:"has_password"` // Username for proxy authentication. @@ -917,6 +934,7 @@ type ProxyUpdateResponseConfigCustom struct { JSON struct { Host respjson.Field Port respjson.Field + HasCaBundle respjson.Field HasPassword respjson.Field Username respjson.Field ExtraFields map[string]respjson.Field @@ -1027,6 +1045,8 @@ type ProxyListResponseConfigUnion struct { // This field is from variant [ProxyListResponseConfigCustom]. Port int64 `json:"port"` // This field is from variant [ProxyListResponseConfigCustom]. + HasCaBundle bool `json:"has_ca_bundle"` + // This field is from variant [ProxyListResponseConfigCustom]. HasPassword bool `json:"has_password"` // This field is from variant [ProxyListResponseConfigCustom]. Username string `json:"username"` @@ -1039,6 +1059,7 @@ type ProxyListResponseConfigUnion struct { Zip respjson.Field Host respjson.Field Port respjson.Field + HasCaBundle respjson.Field HasPassword respjson.Field Username respjson.Field raw string @@ -1181,6 +1202,8 @@ type ProxyListResponseConfigCustom struct { Host string `json:"host" api:"required"` // Proxy port. Port int64 `json:"port" api:"required"` + // Whether the proxy has a custom CA bundle configured. + HasCaBundle bool `json:"has_ca_bundle"` // Whether the proxy has a password. HasPassword bool `json:"has_password"` // Username for proxy authentication. @@ -1189,6 +1212,7 @@ type ProxyListResponseConfigCustom struct { JSON struct { Host respjson.Field Port respjson.Field + HasCaBundle respjson.Field HasPassword respjson.Field Username respjson.Field ExtraFields map[string]respjson.Field @@ -1299,6 +1323,8 @@ type ProxyCheckResponseConfigUnion struct { // This field is from variant [ProxyCheckResponseConfigCustom]. Port int64 `json:"port"` // This field is from variant [ProxyCheckResponseConfigCustom]. + HasCaBundle bool `json:"has_ca_bundle"` + // This field is from variant [ProxyCheckResponseConfigCustom]. HasPassword bool `json:"has_password"` // This field is from variant [ProxyCheckResponseConfigCustom]. Username string `json:"username"` @@ -1311,6 +1337,7 @@ type ProxyCheckResponseConfigUnion struct { Zip respjson.Field Host respjson.Field Port respjson.Field + HasCaBundle respjson.Field HasPassword respjson.Field Username respjson.Field raw string @@ -1453,6 +1480,8 @@ type ProxyCheckResponseConfigCustom struct { Host string `json:"host" api:"required"` // Proxy port. Port int64 `json:"port" api:"required"` + // Whether the proxy has a custom CA bundle configured. + HasCaBundle bool `json:"has_ca_bundle"` // Whether the proxy has a password. HasPassword bool `json:"has_password"` // Username for proxy authentication. @@ -1461,6 +1490,7 @@ type ProxyCheckResponseConfigCustom struct { JSON struct { Host respjson.Field Port respjson.Field + HasCaBundle respjson.Field HasPassword respjson.Field Username respjson.Field ExtraFields map[string]respjson.Field @@ -1607,6 +1637,14 @@ func (u ProxyNewParamsConfigUnion) GetPort() *int64 { return nil } +// Returns a pointer to the underlying variant's property, if present. +func (u ProxyNewParamsConfigUnion) GetCaBundle() *string { + if vt := u.OfCustom; vt != nil && vt.CaBundle.Valid() { + return &vt.CaBundle.Value + } + return nil +} + // Returns a pointer to the underlying variant's property, if present. func (u ProxyNewParamsConfigUnion) GetPassword() *string { if vt := u.OfCustom; vt != nil && vt.Password.Valid() { @@ -1750,6 +1788,10 @@ type ProxyNewParamsConfigCustom struct { Host string `json:"host" api:"required"` // Proxy port. Port int64 `json:"port" api:"required"` + // PEM-encoded CA certificate bundle the proxy re-signs upstream TLS with. Provide + // when the proxy terminates TLS (MITM) so the browser trusts its certificates. May + // contain multiple concatenated certificates. + CaBundle param.Opt[string] `json:"ca_bundle,omitzero"` // Password for proxy authentication. Password param.Opt[string] `json:"password,omitzero"` // Username for proxy authentication.