Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
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.37.0"
".": "0.38.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: 647
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-fb64ef91c12781d682cbc845f5a4640859f270c08a85ba13b83213fec2e4a14e.yml
openapi_spec_hash: f2fe832b9215e2af7118835cfe833d18
config_hash: edde4fda674dd197930f89cdf732c63b
configured_endpoints: 650
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gcore%2Fgcore-bdb3b4d668f81b13e6efe02f12c8bd9282bcb8ac0a5ffe1ffc6eb9818fb4383c.yml
openapi_spec_hash: 35c08e4518648985dfc11c5a49dcf579
config_hash: 672a7b10c4d79ac7c95a730251493432
3 changes: 0 additions & 3 deletions .vscode/settings.json

This file was deleted.

25 changes: 25 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,30 @@
# Changelog

## 0.38.0 (2026-03-13)

Full Changelog: [v0.37.0...v0.38.0](https://github.com/G-Core/gcore-python/compare/v0.37.0...v0.38.0)

### Features

* **api:** aggregated API specs update ([b150a8b](https://github.com/G-Core/gcore-python/commit/b150a8b912a9f3253f2d8138fa8c93f5530c331d))
* **api:** aggregated API specs update ([c1fb24e](https://github.com/G-Core/gcore-python/commit/c1fb24e6132dcd89b9b84a2e369d327a57f187e2))
* **api:** aggregated API specs update ([eb53954](https://github.com/G-Core/gcore-python/commit/eb5395427eae979ee0f64ebcc79aa11455cd3d62))
* **api:** aggregated API specs update ([152f7b0](https://github.com/G-Core/gcore-python/commit/152f7b010e3de9e11b74fa0e9d25c2e3c46edd7c))
* **api:** aggregated API specs update ([e203f21](https://github.com/G-Core/gcore-python/commit/e203f2110410c15524fabbf45c813cd7b7113308))
* **cloud:** add get, update, delete methods to baremetal servers ([46de113](https://github.com/G-Core/gcore-python/commit/46de113fe4f394a353ea06199533b30c9fa42df9))
* **cloud:** add update method to GPU Baremetal clusters ([3aaae61](https://github.com/G-Core/gcore-python/commit/3aaae61423f266ceca10a2a44aab05fb11875b9f))


### Bug Fixes

* **fastedge:** rename path parameters to match updated OpenAPI spec ([2c17154](https://github.com/G-Core/gcore-python/commit/2c17154346bd0f1663ecccadf5a444e0b21c6134))


### Chores

* **examples:** suppress pyright deprecation warnings in storage examples ([81806bb](https://github.com/G-Core/gcore-python/commit/81806bbe78c871a60e6ca613e7b24c3442293f90))
* remove .vscode/ ([8490ade](https://github.com/G-Core/gcore-python/commit/8490ade7834974693fa6e9df0dd44edabe4050e7))

## 0.37.0 (2026-03-09)

Full Changelog: [v0.36.0...v0.37.0](https://github.com/G-Core/gcore-python/compare/v0.36.0...v0.37.0)
Expand Down
4 changes: 2 additions & 2 deletions examples/storage/basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ def create_storage(*, client: Gcore) -> int:

def list_storages(*, client: Gcore) -> None:
print("\n=== LIST STORAGES ===")
storages = client.storage.list()
storages = client.storage.list() # pyright: ignore[reportDeprecated]
for count, storage in enumerate(storages, 1):
print(
f" {count}. Storage: ID={storage.id}, Name={storage.name}, Type={storage.type}, Location={storage.location}, Status={storage.provisioning_status}"
Expand All @@ -47,7 +47,7 @@ def list_storages(*, client: Gcore) -> None:

def get_storage(*, client: Gcore, storage_id: int) -> None:
print("\n=== GET STORAGE ===")
storage = client.storage.get(storage_id=storage_id)
storage = client.storage.get(storage_id=storage_id) # pyright: ignore[reportDeprecated]
print(
f"Storage: ID={storage.id}, Name={storage.name}, Type={storage.type}, Location={storage.location}, Status={storage.provisioning_status}"
)
Expand Down
4 changes: 2 additions & 2 deletions examples/storage/basic_async.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ async def create_storage(*, client: AsyncGcore) -> int:

async def list_storages(*, client: AsyncGcore) -> None:
print("\n=== LIST STORAGES ===")
storages = client.storage.list()
storages = client.storage.list() # pyright: ignore[reportDeprecated]
count = 1
async for storage in storages:
print(
Expand All @@ -50,7 +50,7 @@ async def list_storages(*, client: AsyncGcore) -> None:

async def get_storage(*, client: AsyncGcore, storage_id: int) -> None:
print("\n=== GET STORAGE ===")
storage = await client.storage.get(storage_id=storage_id)
storage = await client.storage.get(storage_id=storage_id) # pyright: ignore[reportDeprecated]
print(
f"Storage: ID={storage.id}, Name={storage.name}, Type={storage.type}, Location={storage.location}, Status={storage.provisioning_status}"
)
Expand Down
4 changes: 2 additions & 2 deletions examples/storage/credentials.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def wait_for_storage_provisioning(
"""Wait for a single storage to be provisioned"""
elapsed = 0
while elapsed < max_wait:
storage = client.storage.get(storage_id=storage_id)
storage = client.storage.get(storage_id=storage_id) # pyright: ignore[reportDeprecated]
if storage.provisioning_status == "ok":
print(f"Storage {storage_id} is ready")
return
Expand All @@ -80,7 +80,7 @@ def wait_for_storage_provisioning(
def get_storage(*, client: Gcore, storage_id: int) -> None:
"""Get and display details for a single storage"""
print("\n=== GET STORAGE DETAILS ===")
storage = client.storage.get(storage_id=storage_id)
storage = client.storage.get(storage_id=storage_id) # pyright: ignore[reportDeprecated]
print(
f"Storage: ID={storage.id}, Name={storage.name}, Type={storage.type}, Location={storage.location}, Status={storage.provisioning_status}"
)
Expand Down
4 changes: 2 additions & 2 deletions examples/storage/credentials_async.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ async def wait_for_storage_provisioning(
"""Wait for a single storage to be provisioned"""
elapsed = 0
while elapsed < max_wait:
storage = await client.storage.get(storage_id=storage_id)
storage = await client.storage.get(storage_id=storage_id) # pyright: ignore[reportDeprecated]
if storage.provisioning_status == "ok":
print(f"Storage {storage_id} is ready")
return
Expand All @@ -81,7 +81,7 @@ async def wait_for_storage_provisioning(
async def get_storage(*, client: AsyncGcore, storage_id: int) -> None:
"""Get and display details for a single storage"""
print("\n=== GET STORAGE DETAILS ===")
storage = await client.storage.get(storage_id=storage_id)
storage = await client.storage.get(storage_id=storage_id) # pyright: ignore[reportDeprecated]
print(
f"Storage: ID={storage.id}, Name={storage.name}, Type={storage.type}, Location={storage.location}, Status={storage.provisioning_status}"
)
Expand Down
2 changes: 1 addition & 1 deletion examples/storage/s3_buckets.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ def wait_for_storage_provisioning(*, client: Gcore, storage_id: int) -> None:
wait_interval = 2
elapsed = 0
while elapsed < max_wait:
storage = client.storage.get(storage_id=storage_id)
storage = client.storage.get(storage_id=storage_id) # pyright: ignore[reportDeprecated]
if storage.provisioning_status == "ok":
print(f"Storage {storage_id} is ready")
print("=====================================")
Expand Down
2 changes: 1 addition & 1 deletion examples/storage/s3_buckets_async.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ async def wait_for_storage_provisioning(*, client: AsyncGcore, storage_id: int)
wait_interval = 2
elapsed = 0
while elapsed < max_wait:
storage = await client.storage.get(storage_id=storage_id)
storage = await client.storage.get(storage_id=storage_id) # pyright: ignore[reportDeprecated]
if storage.provisioning_status == "ok":
print(f"Storage {storage_id} is ready")
print("=====================================")
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "gcore"
version = "0.37.0"
version = "0.38.0"
description = "The official Python library for the gcore API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/gcore/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "gcore"
__version__ = "0.37.0" # x-release-please-version
__version__ = "0.38.0" # x-release-please-version
24 changes: 18 additions & 6 deletions src/gcore/resources/cdn/logs_uploader/targets.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ def create(
self,
*,
config: target_create_params.Config,
storage_type: Literal["s3_gcore", "s3_amazon", "s3_oss", "s3_other", "s3_v1", "ftp", "sftp", "http"],
storage_type: Literal[
"s3_gcore", "s3_amazon", "s3_oss", "s3_other", "s3_v1", "ftp", "sftp", "http", "azure_blob"
],
description: str | Omit = omit,
name: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
Expand Down Expand Up @@ -117,7 +119,9 @@ def update(
config: target_update_params.Config | Omit = omit,
description: str | Omit = omit,
name: str | Omit = omit,
storage_type: Literal["s3_gcore", "s3_amazon", "s3_oss", "s3_other", "s3_v1", "ftp", "sftp", "http"]
storage_type: Literal[
"s3_gcore", "s3_amazon", "s3_oss", "s3_other", "s3_v1", "ftp", "sftp", "http", "azure_blob"
]
| Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
Expand Down Expand Up @@ -282,7 +286,9 @@ def replace(
id: int,
*,
config: target_replace_params.Config,
storage_type: Literal["s3_gcore", "s3_amazon", "s3_oss", "s3_other", "s3_v1", "ftp", "sftp", "http"],
storage_type: Literal[
"s3_gcore", "s3_amazon", "s3_oss", "s3_other", "s3_v1", "ftp", "sftp", "http", "azure_blob"
],
description: str | Omit = omit,
name: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
Expand Down Expand Up @@ -393,7 +399,9 @@ async def create(
self,
*,
config: target_create_params.Config,
storage_type: Literal["s3_gcore", "s3_amazon", "s3_oss", "s3_other", "s3_v1", "ftp", "sftp", "http"],
storage_type: Literal[
"s3_gcore", "s3_amazon", "s3_oss", "s3_other", "s3_v1", "ftp", "sftp", "http", "azure_blob"
],
description: str | Omit = omit,
name: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
Expand Down Expand Up @@ -447,7 +455,9 @@ async def update(
config: target_update_params.Config | Omit = omit,
description: str | Omit = omit,
name: str | Omit = omit,
storage_type: Literal["s3_gcore", "s3_amazon", "s3_oss", "s3_other", "s3_v1", "ftp", "sftp", "http"]
storage_type: Literal[
"s3_gcore", "s3_amazon", "s3_oss", "s3_other", "s3_v1", "ftp", "sftp", "http", "azure_blob"
]
| Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
# The extra values given here take precedence over values defined on the client or passed to this method.
Expand Down Expand Up @@ -612,7 +622,9 @@ async def replace(
id: int,
*,
config: target_replace_params.Config,
storage_type: Literal["s3_gcore", "s3_amazon", "s3_oss", "s3_other", "s3_v1", "ftp", "sftp", "http"],
storage_type: Literal[
"s3_gcore", "s3_amazon", "s3_oss", "s3_other", "s3_v1", "ftp", "sftp", "http", "azure_blob"
],
description: str | Omit = omit,
name: str | Omit = omit,
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
Expand Down
5 changes: 4 additions & 1 deletion src/gcore/resources/cloud/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -657,7 +657,10 @@ from gcore.types.cloud.baremetal import (
Methods:

- <code title="post /cloud/v1/bminstances/{project_id}/{region_id}">client.cloud.baremetal.servers.<a href="./src/gcore/resources/cloud/baremetal/servers.py">create</a>(\*, project_id, region_id, \*\*<a href="src/gcore/types/cloud/baremetal/server_create_params.py">params</a>) -> <a href="./src/gcore/types/cloud/task_id_list.py">TaskIDList</a></code>
- <code title="patch /cloud/v1/bminstances/{project_id}/{region_id}/{server_id}">client.cloud.baremetal.servers.<a href="./src/gcore/resources/cloud/baremetal/servers.py">update</a>(server_id, \*, project_id, region_id, \*\*<a href="src/gcore/types/cloud/baremetal/server_update_params.py">params</a>) -> <a href="./src/gcore/types/cloud/baremetal/baremetal_server.py">BaremetalServer</a></code>
- <code title="get /cloud/v1/bminstances/{project_id}/{region_id}">client.cloud.baremetal.servers.<a href="./src/gcore/resources/cloud/baremetal/servers.py">list</a>(\*, project_id, region_id, \*\*<a href="src/gcore/types/cloud/baremetal/server_list_params.py">params</a>) -> <a href="./src/gcore/types/cloud/baremetal/baremetal_server.py">SyncOffsetPage[BaremetalServer]</a></code>
- <code title="delete /cloud/v1/bminstances/{project_id}/{region_id}/{server_id}">client.cloud.baremetal.servers.<a href="./src/gcore/resources/cloud/baremetal/servers.py">delete</a>(server_id, \*, project_id, region_id, \*\*<a href="src/gcore/types/cloud/baremetal/server_delete_params.py">params</a>) -> <a href="./src/gcore/types/cloud/task_id_list.py">TaskIDList</a></code>
- <code title="get /cloud/v1/bminstances/{project_id}/{region_id}/{server_id}">client.cloud.baremetal.servers.<a href="./src/gcore/resources/cloud/baremetal/servers.py">get</a>(server_id, \*, project_id, region_id) -> <a href="./src/gcore/types/cloud/baremetal/baremetal_server.py">BaremetalServer</a></code>
- <code title="post /cloud/v1/bminstances/{project_id}/{region_id}/{server_id}/rebuild">client.cloud.baremetal.servers.<a href="./src/gcore/resources/cloud/baremetal/servers.py">rebuild</a>(server_id, \*, project_id, region_id, \*\*<a href="src/gcore/types/cloud/baremetal/server_rebuild_params.py">params</a>) -> <a href="./src/gcore/types/cloud/task_id_list.py">TaskIDList</a></code>

## Registries
Expand Down Expand Up @@ -786,9 +789,9 @@ from gcore.types.cloud.gpu_baremetal import GPUBaremetalCluster
Methods:

- <code title="post /cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters">client.cloud.gpu_baremetal.clusters.<a href="./src/gcore/resources/cloud/gpu_baremetal/clusters/clusters.py">create</a>(\*, project_id, region_id, \*\*<a href="src/gcore/types/cloud/gpu_baremetal/cluster_create_params.py">params</a>) -> <a href="./src/gcore/types/cloud/task_id_list.py">TaskIDList</a></code>
- <code title="patch /cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}">client.cloud.gpu_baremetal.clusters.<a href="./src/gcore/resources/cloud/gpu_baremetal/clusters/clusters.py">update</a>(cluster_id, \*, project_id, region_id, \*\*<a href="src/gcore/types/cloud/gpu_baremetal/cluster_update_params.py">params</a>) -> <a href="./src/gcore/types/cloud/gpu_baremetal/gpu_baremetal_cluster.py">GPUBaremetalCluster</a></code>
- <code title="get /cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters">client.cloud.gpu_baremetal.clusters.<a href="./src/gcore/resources/cloud/gpu_baremetal/clusters/clusters.py">list</a>(\*, project_id, region_id, \*\*<a href="src/gcore/types/cloud/gpu_baremetal/cluster_list_params.py">params</a>) -> <a href="./src/gcore/types/cloud/gpu_baremetal/gpu_baremetal_cluster.py">SyncOffsetPage[GPUBaremetalCluster]</a></code>
- <code title="delete /cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}">client.cloud.gpu_baremetal.clusters.<a href="./src/gcore/resources/cloud/gpu_baremetal/clusters/clusters.py">delete</a>(cluster_id, \*, project_id, region_id, \*\*<a href="src/gcore/types/cloud/gpu_baremetal/cluster_delete_params.py">params</a>) -> <a href="./src/gcore/types/cloud/task_id_list.py">TaskIDList</a></code>
- <code title="post /cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}/action">client.cloud.gpu_baremetal.clusters.<a href="./src/gcore/resources/cloud/gpu_baremetal/clusters/clusters.py">action</a>(cluster_id, \*, project_id, region_id, \*\*<a href="src/gcore/types/cloud/gpu_baremetal/cluster_action_params.py">params</a>) -> <a href="./src/gcore/types/cloud/task_id_list.py">TaskIDList</a></code>
- <code title="get /cloud/v3/gpu/baremetal/{project_id}/{region_id}/clusters/{cluster_id}">client.cloud.gpu_baremetal.clusters.<a href="./src/gcore/resources/cloud/gpu_baremetal/clusters/clusters.py">get</a>(cluster_id, \*, project_id, region_id) -> <a href="./src/gcore/types/cloud/gpu_baremetal/gpu_baremetal_cluster.py">GPUBaremetalCluster</a></code>
- <code title="post /cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/powercycle">client.cloud.gpu_baremetal.clusters.<a href="./src/gcore/resources/cloud/gpu_baremetal/clusters/clusters.py">powercycle_all_servers</a>(cluster_id, \*, project_id, region_id) -> <a href="./src/gcore/types/cloud/gpu_baremetal/clusters/gpu_baremetal_cluster_server_v1_list.py">GPUBaremetalClusterServerV1List</a></code>
- <code title="post /cloud/v2/ai/clusters/{project_id}/{region_id}/{cluster_id}/reboot">client.cloud.gpu_baremetal.clusters.<a href="./src/gcore/resources/cloud/gpu_baremetal/clusters/clusters.py">reboot_all_servers</a>(cluster_id, \*, project_id, region_id) -> <a href="./src/gcore/types/cloud/gpu_baremetal/clusters/gpu_baremetal_cluster_server_v1_list.py">GPUBaremetalClusterServerV1List</a></code>
Expand Down
Loading
Loading