diff --git a/.release-please-manifest.json b/.release-please-manifest.json index b56c3d0..e8285b7 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.1.0-alpha.4" + ".": "0.1.0-alpha.5" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index f0d8544..2b23ced 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 6 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-19b0d17ba368f32827ee322d15a7f4ff7e1f3bbf66606fad227b3465f8ffc5ab.yml -openapi_spec_hash: 4a3cb766898e8a134ef99fe6c4c87736 +configured_endpoints: 7 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/kernel%2Fkernel-c9d64df733f286f09d2203f4e3d820ce57e8d4c629c5e2db4e2bfac91fbc1598.yml +openapi_spec_hash: fa407611fc566d55f403864fbfaa6c23 config_hash: 4dfa4d870ce0e23e31ce33ab6a53dd21 diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ac757e..aa7757d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 0.1.0-alpha.5 (2025-05-20) + +Full Changelog: [v0.1.0-alpha.4...v0.1.0-alpha.5](https://github.com/onkernel/kernel-go-sdk/compare/v0.1.0-alpha.4...v0.1.0-alpha.5) + +### Features + +* **api:** update via SDK Studio ([2f5051e](https://github.com/onkernel/kernel-go-sdk/commit/2f5051e328b157c2836d93fcd1e957c315f9d4e7)) +* **api:** update via SDK Studio ([368ec0a](https://github.com/onkernel/kernel-go-sdk/commit/368ec0a4e3eb54fd5634327f6234d9b4f0a83a95)) + ## 0.1.0-alpha.4 (2025-05-20) Full Changelog: [v0.1.0-alpha.3...v0.1.0-alpha.4](https://github.com/onkernel/kernel-go-sdk/compare/v0.1.0-alpha.3...v0.1.0-alpha.4) diff --git a/README.md b/README.md index 5ec3f4e..a544e04 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ Or to pin the version: ```sh -go get -u 'github.com/onkernel/kernel-go-sdk@v0.1.0-alpha.4' +go get -u 'github.com/onkernel/kernel-go-sdk@v0.1.0-alpha.5' ``` diff --git a/api.md b/api.md index 1452129..eb9c93c 100644 --- a/api.md +++ b/api.md @@ -1,5 +1,13 @@ # Apps +Response Types: + +- kernel.AppListResponse + +Methods: + +- client.Apps.List(ctx context.Context, query kernel.AppListParams) ([]kernel.AppListResponse, error) + ## Deployments Response Types: diff --git a/app.go b/app.go index a5d6f7a..c3d26dc 100644 --- a/app.go +++ b/app.go @@ -3,7 +3,16 @@ package kernel import ( + "context" + "net/http" + "net/url" + + "github.com/onkernel/kernel-go-sdk/internal/apijson" + "github.com/onkernel/kernel-go-sdk/internal/apiquery" + "github.com/onkernel/kernel-go-sdk/internal/requestconfig" "github.com/onkernel/kernel-go-sdk/option" + "github.com/onkernel/kernel-go-sdk/packages/param" + "github.com/onkernel/kernel-go-sdk/packages/respjson" ) // AppService contains methods and other services that help with interacting with @@ -28,3 +37,58 @@ func NewAppService(opts ...option.RequestOption) (r AppService) { r.Invocations = NewAppInvocationService(opts...) return } + +// List application versions for the authenticated user. Optionally filter by app +// name and/or version label. +func (r *AppService) List(ctx context.Context, query AppListParams, opts ...option.RequestOption) (res *[]AppListResponse, err error) { + opts = append(r.Options[:], opts...) + path := "apps" + err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, query, &res, opts...) + return +} + +// Summary of an application version. +type AppListResponse struct { + // Unique identifier for the app version + ID string `json:"id,required"` + // Name of the application + AppName string `json:"app_name,required"` + // Deployment region code + Region string `json:"region,required"` + // Version label for the application + Version string `json:"version,required"` + // Environment variables configured for this app version + EnvVars map[string]string `json:"env_vars"` + // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. + JSON struct { + ID respjson.Field + AppName respjson.Field + Region respjson.Field + Version respjson.Field + EnvVars respjson.Field + ExtraFields map[string]respjson.Field + raw string + } `json:"-"` +} + +// Returns the unmodified JSON received from the API +func (r AppListResponse) RawJSON() string { return r.JSON.raw } +func (r *AppListResponse) UnmarshalJSON(data []byte) error { + return apijson.UnmarshalRoot(data, r) +} + +type AppListParams struct { + // Filter results by application name. + AppName param.Opt[string] `query:"app_name,omitzero" json:"-"` + // Filter results by version label. + Version param.Opt[string] `query:"version,omitzero" json:"-"` + paramObj +} + +// URLQuery serializes [AppListParams]'s query parameters as `url.Values`. +func (r AppListParams) URLQuery() (v url.Values, err error) { + return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ + ArrayFormat: apiquery.ArrayQueryFormatComma, + NestedFormat: apiquery.NestedQueryFormatBrackets, + }) +} diff --git a/app_test.go b/app_test.go new file mode 100644 index 0000000..0b9b741 --- /dev/null +++ b/app_test.go @@ -0,0 +1,40 @@ +// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. + +package kernel_test + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/onkernel/kernel-go-sdk" + "github.com/onkernel/kernel-go-sdk/internal/testutil" + "github.com/onkernel/kernel-go-sdk/option" +) + +func TestAppListWithOptionalParams(t *testing.T) { + t.Skip("skipped: tests are disabled for the time being") + baseURL := "http://localhost:4010" + if envURL, ok := os.LookupEnv("TEST_API_BASE_URL"); ok { + baseURL = envURL + } + if !testutil.CheckTestServer(t, baseURL) { + return + } + client := kernel.NewClient( + option.WithBaseURL(baseURL), + option.WithAPIKey("My API Key"), + ) + _, err := client.Apps.List(context.TODO(), kernel.AppListParams{ + AppName: kernel.String("app_name"), + Version: kernel.String("version"), + }) + if err != nil { + var apierr *kernel.Error + if errors.As(err, &apierr) { + t.Log(string(apierr.DumpRequest(true))) + } + t.Fatalf("err should be nil: %s", err.Error()) + } +} diff --git a/internal/version.go b/internal/version.go index 5469df6..2aad167 100644 --- a/internal/version.go +++ b/internal/version.go @@ -2,4 +2,4 @@ package internal -const PackageVersion = "0.1.0-alpha.4" // x-release-please-version +const PackageVersion = "0.1.0-alpha.5" // x-release-please-version