Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
bd91bd3
feat(api): aggregated API specs update
stainless-app[bot] Jan 2, 2026
7d99890
feat(api): aggregated API specs update
stainless-app[bot] Jan 6, 2026
529b30a
codegen metadata
stainless-app[bot] Jan 6, 2026
7c7a8fa
feat(cloud): add support for volume snapshots
stainless-app[bot] Jan 6, 2026
0aa60dc
feat(cloud): add polling methods to volume snapshot
pedrodeoliveira Jan 6, 2026
93bdc99
codegen metadata
stainless-app[bot] Jan 7, 2026
f526e50
feat(api): aggregated API specs update
stainless-app[bot] Jan 7, 2026
e2cdc36
fix(cloud): extraction of clusterID in NewAndPoll for GPU virtual clu…
pedrodeoliveira Jan 7, 2026
cfee27f
codegen metadata
stainless-app[bot] Jan 7, 2026
f4105db
feat(api): aggregated API specs update
stainless-app[bot] Jan 8, 2026
9c9fef9
codegen metadata
stainless-app[bot] Jan 8, 2026
9b8f671
feat(api): aggregated API specs update
stainless-app[bot] Jan 12, 2026
07744bb
feat(api): aggregated API specs update
stainless-app[bot] Jan 12, 2026
4484199
fix(cloud)!: rename instance flavor model
stainless-app[bot] Jan 12, 2026
16c7802
feat(api): aggregated API specs update
stainless-app[bot] Jan 13, 2026
13c4492
feat(api): aggregated API specs update
stainless-app[bot] Jan 14, 2026
5350d10
feat(api): aggregated API specs update
stainless-app[bot] Jan 14, 2026
1c0ea66
fix: use correct collection models
stainless-app[bot] Jan 15, 2026
829c406
feat(api): aggregated API specs update
stainless-app[bot] Jan 15, 2026
c56cdab
codegen metadata
stainless-app[bot] Jan 16, 2026
317a1f1
chore(internal): update `actions/checkout` version
stainless-app[bot] Jan 16, 2026
ca0d973
fix(docs): add missing pointer prefix to api.md return types
stainless-app[bot] Jan 16, 2026
2de2422
release: 0.29.0
stainless-app[bot] Jan 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Setup go
uses: actions/setup-go@v5
Expand All @@ -35,7 +35,7 @@ jobs:
runs-on: ${{ github.repository == 'stainless-sdks/gcore-go' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- name: Setup go
uses: actions/setup-go@v5
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/detect-breaking-changes.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
run: |
echo "FETCH_DEPTH=$(expr ${{ github.event.pull_request.commits }} + 1)" >> $GITHUB_ENV

- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
# Ensure we can check out the pull request base in the script below.
fetch-depth: ${{ env.FETCH_DEPTH }}
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.28.0"
".": "0.29.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 641
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-2c3abe1f1637f97f6bc750aff6eb77efc45ac2b527376541ac2af6b9626b35af.yml
openapi_spec_hash: ff74a4ccd9ec5ddb1a65963d52e709ba
config_hash: df463160c27e4de887be7c27454ac4e0
configured_endpoints: 645
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-bec46ce28212cf90388fa9ba8094b471b922ae78b92e0f5fa80c083cd3017319.yml
openapi_spec_hash: bc1b58805168a142ca35aa5dfab5a03f
config_hash: 7085751e6bd8f3fd13cfebe04bb99fed
36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,41 @@
# Changelog

## 0.29.0 (2026-01-16)

Full Changelog: [v0.28.0...v0.29.0](https://github.com/G-Core/gcore-go/compare/v0.28.0...v0.29.0)

### ⚠ BREAKING CHANGES

* **cloud:** rename instance flavor model

### Features

* **api:** aggregated API specs update ([829c406](https://github.com/G-Core/gcore-go/commit/829c406aef99ac36dd667639dada8500d0dbd803))
* **api:** aggregated API specs update ([5350d10](https://github.com/G-Core/gcore-go/commit/5350d10163c171a8a3e697ba1aecae76b0366172))
* **api:** aggregated API specs update ([13c4492](https://github.com/G-Core/gcore-go/commit/13c4492cbe751c60b87939edf2750b032212fa62))
* **api:** aggregated API specs update ([16c7802](https://github.com/G-Core/gcore-go/commit/16c78022030fca1b64099515b2571915ba05a94e))
* **api:** aggregated API specs update ([07744bb](https://github.com/G-Core/gcore-go/commit/07744bb2d3c14169ba90a5c3e71a3a9e8b0f2c8c))
* **api:** aggregated API specs update ([9b8f671](https://github.com/G-Core/gcore-go/commit/9b8f67124e06e83d649bb2816934ec9a39d29112))
* **api:** aggregated API specs update ([f4105db](https://github.com/G-Core/gcore-go/commit/f4105db3d1260f731a66b7f80cd33dbb8a49d781))
* **api:** aggregated API specs update ([f526e50](https://github.com/G-Core/gcore-go/commit/f526e509221674076b2b615cc2b40d80a81c6d86))
* **api:** aggregated API specs update ([7d99890](https://github.com/G-Core/gcore-go/commit/7d9989033eea0989ecd5334c5bed86d1115f38e7))
* **api:** aggregated API specs update ([bd91bd3](https://github.com/G-Core/gcore-go/commit/bd91bd3f02b8a689058b1150cd44ef071a4396af))
* **cloud:** add polling methods to volume snapshot ([0aa60dc](https://github.com/G-Core/gcore-go/commit/0aa60dc8e4df070fd2c5144c5dc963a0be01260c))
* **cloud:** add support for volume snapshots ([7c7a8fa](https://github.com/G-Core/gcore-go/commit/7c7a8faf4ea08b72fff7ac4df9419dbb40c134df))


### Bug Fixes

* **cloud:** extraction of clusterID in NewAndPoll for GPU virtual clusters ([e2cdc36](https://github.com/G-Core/gcore-go/commit/e2cdc3628601d46184f384275b85100a43545f29))
* **cloud:** rename instance flavor model ([4484199](https://github.com/G-Core/gcore-go/commit/448419907f0f4fd5061e6835656ac3c747923b06))
* **docs:** add missing pointer prefix to api.md return types ([ca0d973](https://github.com/G-Core/gcore-go/commit/ca0d973156ff4d0952e22213b01dcdbe291d05c4))
* use correct collection models ([1c0ea66](https://github.com/G-Core/gcore-go/commit/1c0ea661f6c16594adfe40c3b9279f2a7e96c62c))


### Chores

* **internal:** update `actions/checkout` version ([317a1f1](https://github.com/G-Core/gcore-go/commit/317a1f136861cc1acb279a18e74749a6a0200942))

## 0.28.0 (2025-12-30)

Full Changelog: [v0.27.0...v0.28.0](https://github.com/G-Core/gcore-go/compare/v0.27.0...v0.28.0)
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2025 Gcore
Copyright 2026 Gcore

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Or to pin the version:
<!-- x-release-please-start-version -->

```sh
go get -u 'github.com/G-Core/gcore-go@v0.28.0'
go get -u 'github.com/G-Core/gcore-go@v0.29.0'
```

<!-- x-release-please-end -->
Expand Down
1,118 changes: 565 additions & 553 deletions api.md

Large diffs are not rendered by default.

191 changes: 162 additions & 29 deletions cdn/logsuploaderpolicy.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,17 @@ type LogsUploaderPolicy struct {
DateFormat string `json:"date_format"`
// Description of the policy.
Description string `json:"description"`
// When set to true, the service sanitizes string values by escaping characters
// that may be unsafe for transport, logging, or downstream processing.
//
// The following categories of characters are escaped:
//
// - Control and non-printable characters
// - Quotation marks and escape characters
// - Characters outside the standard ASCII range
//
// The resulting output contains only printable ASCII characters.
EscapeSpecialCharacters bool `json:"escape_special_characters"`
// Field delimiter for logs.
FieldDelimiter string `json:"field_delimiter"`
// Field separator for logs.
Expand All @@ -118,7 +129,15 @@ type LogsUploaderPolicy struct {
// Template for log file name.
FileNameTemplate string `json:"file_name_template"`
// Format type for logs.
FormatType string `json:"format_type"`
//
// Possible values:
//
// - **""** - empty, it means it will apply the format configurations from the
// policy.
// - **"json"** - output the logs as json lines.
//
// Any of "json", "".
FormatType LogsUploaderPolicyFormatType `json:"format_type"`
// Include empty logs in the upload.
IncludeEmptyLogs bool `json:"include_empty_logs"`
// Include logs from origin shielding in the upload.
Expand All @@ -143,28 +162,29 @@ type LogsUploaderPolicy struct {
Updated time.Time `json:"updated" format:"date-time"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
ClientID respjson.Field
Created respjson.Field
DateFormat respjson.Field
Description respjson.Field
FieldDelimiter respjson.Field
FieldSeparator respjson.Field
Fields respjson.Field
FileNameTemplate respjson.Field
FormatType respjson.Field
IncludeEmptyLogs respjson.Field
IncludeShieldLogs respjson.Field
Name respjson.Field
RelatedUploaderConfigs respjson.Field
RetryIntervalMinutes respjson.Field
RotateIntervalMinutes respjson.Field
RotateThresholdLines respjson.Field
RotateThresholdMB respjson.Field
Tags respjson.Field
Updated respjson.Field
ExtraFields map[string]respjson.Field
raw string
ID respjson.Field
ClientID respjson.Field
Created respjson.Field
DateFormat respjson.Field
Description respjson.Field
EscapeSpecialCharacters respjson.Field
FieldDelimiter respjson.Field
FieldSeparator respjson.Field
Fields respjson.Field
FileNameTemplate respjson.Field
FormatType respjson.Field
IncludeEmptyLogs respjson.Field
IncludeShieldLogs respjson.Field
Name respjson.Field
RelatedUploaderConfigs respjson.Field
RetryIntervalMinutes respjson.Field
RotateIntervalMinutes respjson.Field
RotateThresholdLines respjson.Field
RotateThresholdMB respjson.Field
Tags respjson.Field
Updated respjson.Field
ExtraFields map[string]respjson.Field
raw string
} `json:"-"`
}

Expand All @@ -174,6 +194,20 @@ func (r *LogsUploaderPolicy) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, r)
}

// Format type for logs.
//
// Possible values:
//
// - **""** - empty, it means it will apply the format configurations from the
// policy.
// - **"json"** - output the logs as json lines.
type LogsUploaderPolicyFormatType string

const (
LogsUploaderPolicyFormatTypeJson LogsUploaderPolicyFormatType = "json"
LogsUploaderPolicyFormatTypeEmpty LogsUploaderPolicyFormatType = ""
)

type LogsUploaderPolicyList []LogsUploaderPolicy

type LogsUploaderPolicyNewParams struct {
Expand All @@ -183,14 +217,23 @@ type LogsUploaderPolicyNewParams struct {
DateFormat param.Opt[string] `json:"date_format,omitzero"`
// Description of the policy.
Description param.Opt[string] `json:"description,omitzero"`
// When set to true, the service sanitizes string values by escaping characters
// that may be unsafe for transport, logging, or downstream processing.
//
// The following categories of characters are escaped:
//
// - Control and non-printable characters
// - Quotation marks and escape characters
// - Characters outside the standard ASCII range
//
// The resulting output contains only printable ASCII characters.
EscapeSpecialCharacters param.Opt[bool] `json:"escape_special_characters,omitzero"`
// Field delimiter for logs.
FieldDelimiter param.Opt[string] `json:"field_delimiter,omitzero"`
// Field separator for logs.
FieldSeparator param.Opt[string] `json:"field_separator,omitzero"`
// Template for log file name.
FileNameTemplate param.Opt[string] `json:"file_name_template,omitzero"`
// Format type for logs.
FormatType param.Opt[string] `json:"format_type,omitzero"`
// Include empty logs in the upload.
IncludeEmptyLogs param.Opt[bool] `json:"include_empty_logs,omitzero"`
// Include logs from origin shielding in the upload.
Expand All @@ -205,6 +248,16 @@ type LogsUploaderPolicyNewParams struct {
RotateThresholdLines param.Opt[int64] `json:"rotate_threshold_lines,omitzero"`
// List of fields to include in logs.
Fields []string `json:"fields,omitzero"`
// Format type for logs.
//
// Possible values:
//
// - **""** - empty, it means it will apply the format configurations from the
// policy.
// - **"json"** - output the logs as json lines.
//
// Any of "json", "".
FormatType LogsUploaderPolicyNewParamsFormatType `json:"format_type,omitzero"`
// Tags allow for dynamic decoration of logs by adding predefined fields to the log
// format. These tags serve as customizable key-value pairs that can be included in
// log entries to enhance context and readability.
Expand All @@ -220,21 +273,44 @@ func (r *LogsUploaderPolicyNewParams) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, r)
}

// Format type for logs.
//
// Possible values:
//
// - **""** - empty, it means it will apply the format configurations from the
// policy.
// - **"json"** - output the logs as json lines.
type LogsUploaderPolicyNewParamsFormatType string

const (
LogsUploaderPolicyNewParamsFormatTypeJson LogsUploaderPolicyNewParamsFormatType = "json"
LogsUploaderPolicyNewParamsFormatTypeEmpty LogsUploaderPolicyNewParamsFormatType = ""
)

type LogsUploaderPolicyUpdateParams struct {
// Threshold in MB to rotate logs.
RotateThresholdMB param.Opt[int64] `json:"rotate_threshold_mb,omitzero"`
// Date format for logs.
DateFormat param.Opt[string] `json:"date_format,omitzero"`
// Description of the policy.
Description param.Opt[string] `json:"description,omitzero"`
// When set to true, the service sanitizes string values by escaping characters
// that may be unsafe for transport, logging, or downstream processing.
//
// The following categories of characters are escaped:
//
// - Control and non-printable characters
// - Quotation marks and escape characters
// - Characters outside the standard ASCII range
//
// The resulting output contains only printable ASCII characters.
EscapeSpecialCharacters param.Opt[bool] `json:"escape_special_characters,omitzero"`
// Field delimiter for logs.
FieldDelimiter param.Opt[string] `json:"field_delimiter,omitzero"`
// Field separator for logs.
FieldSeparator param.Opt[string] `json:"field_separator,omitzero"`
// Template for log file name.
FileNameTemplate param.Opt[string] `json:"file_name_template,omitzero"`
// Format type for logs.
FormatType param.Opt[string] `json:"format_type,omitzero"`
// Include empty logs in the upload.
IncludeEmptyLogs param.Opt[bool] `json:"include_empty_logs,omitzero"`
// Include logs from origin shielding in the upload.
Expand All @@ -249,6 +325,16 @@ type LogsUploaderPolicyUpdateParams struct {
RotateThresholdLines param.Opt[int64] `json:"rotate_threshold_lines,omitzero"`
// List of fields to include in logs.
Fields []string `json:"fields,omitzero"`
// Format type for logs.
//
// Possible values:
//
// - **""** - empty, it means it will apply the format configurations from the
// policy.
// - **"json"** - output the logs as json lines.
//
// Any of "json", "".
FormatType LogsUploaderPolicyUpdateParamsFormatType `json:"format_type,omitzero"`
// Tags allow for dynamic decoration of logs by adding predefined fields to the log
// format. These tags serve as customizable key-value pairs that can be included in
// log entries to enhance context and readability.
Expand All @@ -264,6 +350,20 @@ func (r *LogsUploaderPolicyUpdateParams) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, r)
}

// Format type for logs.
//
// Possible values:
//
// - **""** - empty, it means it will apply the format configurations from the
// policy.
// - **"json"** - output the logs as json lines.
type LogsUploaderPolicyUpdateParamsFormatType string

const (
LogsUploaderPolicyUpdateParamsFormatTypeJson LogsUploaderPolicyUpdateParamsFormatType = "json"
LogsUploaderPolicyUpdateParamsFormatTypeEmpty LogsUploaderPolicyUpdateParamsFormatType = ""
)

type LogsUploaderPolicyListParams struct {
// Search by policy name or id.
Search param.Opt[string] `query:"search,omitzero" json:"-"`
Expand All @@ -288,14 +388,23 @@ type LogsUploaderPolicyReplaceParams struct {
DateFormat param.Opt[string] `json:"date_format,omitzero"`
// Description of the policy.
Description param.Opt[string] `json:"description,omitzero"`
// When set to true, the service sanitizes string values by escaping characters
// that may be unsafe for transport, logging, or downstream processing.
//
// The following categories of characters are escaped:
//
// - Control and non-printable characters
// - Quotation marks and escape characters
// - Characters outside the standard ASCII range
//
// The resulting output contains only printable ASCII characters.
EscapeSpecialCharacters param.Opt[bool] `json:"escape_special_characters,omitzero"`
// Field delimiter for logs.
FieldDelimiter param.Opt[string] `json:"field_delimiter,omitzero"`
// Field separator for logs.
FieldSeparator param.Opt[string] `json:"field_separator,omitzero"`
// Template for log file name.
FileNameTemplate param.Opt[string] `json:"file_name_template,omitzero"`
// Format type for logs.
FormatType param.Opt[string] `json:"format_type,omitzero"`
// Include empty logs in the upload.
IncludeEmptyLogs param.Opt[bool] `json:"include_empty_logs,omitzero"`
// Include logs from origin shielding in the upload.
Expand All @@ -310,6 +419,16 @@ type LogsUploaderPolicyReplaceParams struct {
RotateThresholdLines param.Opt[int64] `json:"rotate_threshold_lines,omitzero"`
// List of fields to include in logs.
Fields []string `json:"fields,omitzero"`
// Format type for logs.
//
// Possible values:
//
// - **""** - empty, it means it will apply the format configurations from the
// policy.
// - **"json"** - output the logs as json lines.
//
// Any of "json", "".
FormatType LogsUploaderPolicyReplaceParamsFormatType `json:"format_type,omitzero"`
// Tags allow for dynamic decoration of logs by adding predefined fields to the log
// format. These tags serve as customizable key-value pairs that can be included in
// log entries to enhance context and readability.
Expand All @@ -324,3 +443,17 @@ func (r LogsUploaderPolicyReplaceParams) MarshalJSON() (data []byte, err error)
func (r *LogsUploaderPolicyReplaceParams) UnmarshalJSON(data []byte) error {
return apijson.UnmarshalRoot(data, r)
}

// Format type for logs.
//
// Possible values:
//
// - **""** - empty, it means it will apply the format configurations from the
// policy.
// - **"json"** - output the logs as json lines.
type LogsUploaderPolicyReplaceParamsFormatType string

const (
LogsUploaderPolicyReplaceParamsFormatTypeJson LogsUploaderPolicyReplaceParamsFormatType = "json"
LogsUploaderPolicyReplaceParamsFormatTypeEmpty LogsUploaderPolicyReplaceParamsFormatType = ""
)
Loading